목차
🕵️ 사건 발생! 10만 줄짜리 Python 파일의 저주
어느 날.
당신은 회사에 입사한 지 3개월 된 Python 개발자입니다.
팀장님이 다급하게 부릅니다.
"긴급 수정 건이 들어왔어요!"
당신은 자신 있게 대답합니다.
"어디 수정하면 되나요?"
팀장님이 파일 하나를 열어줍니다.
파일명
main.py파일 크기
127,843 Line당신
😨
스크롤을 내립니다.
계속 내립니다.
아직도 끝이 안 보입니다.
5분 후
아직도 스크롤 중...
10분 후
여전히 함수 찾는 중...
그 순간 깨닫습니다.
"이건 프로그램이 아니라 미로잖아!"
1. 프로그래머들의 오래된 고민
초기 개발자들은
모든 코드를 하나의 파일에 작성했습니다.
예시
login()
logout()
register()
send_email()
payment()
chat()
notification()
inventory()
ai()프로젝트가 커질수록
1,000줄
10,000줄
50,000줄
100,000줄그리고 결국
아무도 관리할 수 없는 괴물이 됩니다.
2. 현실 세계를 떠올려 보자
만약 도서관이 있다고 가정합시다.
책 100만 권이 있습니다.
그런데 모든 책을
하나의 방에 쌓아놓았습니다.
찾아보세요.
Python 입문서몇 시간 걸릴까요?
아마 며칠 걸릴 수도 있습니다.
그래서 도서관은
분류를 합니다.
IT
역사
경제
소설
과학그리고 다시 세부 분류
IT
├ Python
├ Java
├ JavaScript
└ LinuxPython도 똑같습니다.
3. 모듈(Module)이란?
모듈은
하나의 Python 파일입니다.
예를 들어
계산기 기능을 만들었다고 가정합시다.
파일명
calculator.py내용
def add(a, b):
return a + b
def sub(a, b):
return a - b이것이 모듈입니다.
즉
Python 파일 = 모듈4. 모듈 불러오기
이제 main.py에서 사용해봅시다.
import calculator사용
print(
calculator.add(10, 20)
)결과
30마치 다른 파일에 있는 직원을 호출하는 것과 같습니다.
5. 회사 조직도로 이해하기
회사
개발팀
운영팀
보안팀
인사팀각 팀은
자기 업무만 담당합니다.
Python도 마찬가지
auth.py
payment.py
chat.py
user.py각 파일이
각자의 역할을 수행합니다.
6. import의 진짜 의미
많은 초보자가
import를 단순 문법이라고 생각합니다.
사실은
"다른 팀에 업무 요청"과 같습니다.
import payment의 의미
"결제팀 도움 좀 주세요"7. 필요한 것만 가져오기
전체 팀을 부를 필요는 없습니다.
from calculator import add사용
print(add(10, 20))이제
calculator.add()
를 쓰지 않아도 됩니다.
8. 패키지(Package)의 등장
그런데 프로젝트가 더 커집니다.
쇼핑몰 서비스
auth.py
login.py
register.py
user.py
profile.py
password.py파일 수
500개
또 다시 혼란 시작
😱
그래서 등장한 것이
Package입니다.
9. 패키지는 폴더다
예시
project/
├ auth/
│ ├ login.py
│ ├ register.py
│ └ profile.py
├ payment/
│ ├ card.py
│ ├ transfer.py
│ └ refund.py
└ chat/
├ room.py
└ message.py모듈은 파일
패키지는 폴더
이렇게 기억하면 됩니다.
10. 대기업 프로젝트 구조 체험
실제 서비스
amazon/내부
payment/
product/
customer/
order/
notification/
analytics/
ai/실제로 수천 개의 파일이 존재합니다.
패키지가 없다면?
개발자는 매일 길을 잃습니다.
11. 실무에서 보는 import
예를 들어
payment/card.py안의 함수 사용
from payment.card import pay사용
pay()실제 업무에서도
매일 사용하는 패턴입니다.
12. Python 표준 라이브러리도 패키지다
여러분이 이미 사용했던
import randomimport osimport math사실 모두 모듈입니다.
Python은 기본적으로
수백 개의 모듈을 제공합니다.
마치
Python 공구 상자같은 개념입니다.
13. pip가 왜 필요한가?
어느 날
AI 개발을 하게 됩니다.
import pandasimport numpyimport tensorflow없다고 나옵니다.
왜?
설치하지 않았기 때문입니다.
pip install pandaspip는
Python 앱스토어같은 역할을 합니다.
14. ChatGPT도 모듈 천국이다
만약 ChatGPT를 만든다면?
chat/
model/
memory/
search/
image/
voice/
security/
billing/모두 별도 패키지로 분리됩니다.
그렇지 않다면
수천만 줄의 코드가
하나의 파일에 들어가야 합니다.
😱
15. 초보자가 가장 많이 하는 실수
파일명 충돌
random.py파일 생성
import random문제 발생
Python이
내 파일을 불러올지
기본 random 모듈을 불러올지
헷갈립니다.
import *
from math import *가능은 하지만
실무에서는 거의 사용하지 않습니다.
어디서 온 함수인지
알기 어렵기 때문입니다.
16. 모듈과 패키지를 이해한 개발자
초보 프로젝트
main.py모든 기능
하나의 파일
6개월 후
main.py50,000줄
유지보수 지옥
🔥
숙련 개발자
project/
├ auth/
├ payment/
├ user/
├ api/
├ db/
├ service/기능별 정리
협업 가능
확장 가능
17. 프로그래밍 세계의 LEGO
레고를 생각해 봅시다.
부품을
한 상자에 넣어두면
필요한 조각 찾기
매우 어렵습니다.
하지만
바퀴 상자
창문 상자
문 상자
지붕 상자분류하면
엄청 편해집니다.
모듈과 패키지도
똑같습니다.
18. 오늘 배운 내용을 한 문장으로 정리하면
모듈(Module)은
"하나의 기능을 담은 Python 파일"
패키지(Package)는
"관련 모듈을 모아놓은 폴더"
그리고
둘은 대규모 프로젝트를 가능하게 만드는 핵심 도구입니다.
19. 당신은 이제 중급 개발자의 문턱에 섰다
변수
조건문
반복문
함수
클래스
상속
다형성
지금까지는
코드를 "작성"하는 방법을 배웠습니다.
모듈과 패키지부터는
코드를 "관리"하는 방법을 배우게 됩니다.
실제 회사에서는
코드 작성보다
코드 관리가 더 중요해지는 순간이 옵니다.
🚀 다음 편 예고
다음 시간에는
"[Python 완전정복 시리즈 #19] JSON 완벽 이해하기 | 웹 API와 AI가 사랑하는 데이터 형식"
을 배워보겠습니다.
ChatGPT,
Claude,
Gemini,
REST API,
MongoDB,
Elasticsearch까지...
현대 IT 시스템을 연결하는 공용 언어 JSON의 세계로 들어가 보겠습니다.
