클래스와 모듈화 - 코드를 나눠서 정리하기
클래스(class)
역할별로 묶은 함수+데이터 묶음입니다. 비유하면:
TransactionRepository= 가계부 본체 (내역 추가/찾기/수정/삭제 담당)CategoryStore= 카테고리 관리 담당자BudgetStore= 예산 관리 담당자
각각 자기 일만 맡아서 처리하면 코드가 깔끔해집니다.
요구사항: 최소 2개 이상의 클래스 사용
모듈(module) 분리
모듈 = 코드 파일 하나. 한 파일에 다 몰아넣지 말고 역할별로 나누라는 뜻입니다.
budget_app/
├── __init__.py ← 이 폴더가 파이썬 패키지임을 표시
├── __main__.py ← python -m budget_app 으로 실행될 때 시작점
├── cli.py ← 화면과 대화하는 부분 (입력받고 출력)
├── models.py ← Transaction 같은 데이터 상자 정의
├── storage.py ← 파일 읽고 쓰는 부분 (저장소 계층)
└── services.py ← 실제 로직 (검색, 요약, 예산 판정 등)계층(layer) 개념: 사용자와 마주보는 곳(CLI) → 판단하는 곳(Service) → 저장하는 곳(Storage) → 데이터 모양(Model). 위에서 아래로만 호출하면 나중에 고치기 쉬워집니다.
요구사항: 최소 3개 이상 모듈로 분리
출처: Codyssey-B1/B2-1