weather-collector/
│ ├── src/
│ ├── __init__.py
│ ├── fetcher.py
│ ├── parser.py
│ └── saver.py
│ ├── data/
├── main.py
├── requirements.txt
└── .gitignore
과 같이 프로젝트 구조를 설계하였다.
src/는 source의 약자로 실제 동작하는 핵심 코드를 모아두는 폴더이다. main.py와 코드를 깔끔하게 관리하기 위해 만든다.
핵심 로직은 src에 있다고 협업할 때 알 수 있다.
data/는 API를 통해 가져온 날씨 데이터를 CSV나 JSON으로 저장할 공간이다.
main.py는 프로그램을 구동 시킬 때 필요한 파일이다.
프로그램을 실행할 때 python main.py로 실행할 수 있다.
전체 흐름을 여기서 조율하고 세부 로직은 src안에 있는 파일들이 담당한다.
src/__init__.py src폴더가 파이썬 패키지 폴더라는 것을 알려주는 파일이다. 내용은 비어있어도 되는데 이게 있어야 main.py에서 src에 있는 파일들을 불러올 수 있다.
src/fetcher.py API호출만 담당하는 파일이다. 날씨 데이터를 가져오는 것을 담당한다. 나중에 API주소가 바뀌면 이 파일만 수정하면 된다.
src/parser.py 데이터 파싱만 담당한다. API에서 받아온 데이터는 복잡한 JSON형태인데 그걸 우리가 원하는 형태로 가공하는 역할을 한다. 데이터 구조가 바뀌면 이 파일만 수정하면 된다.
src/saver.py 데이터를 저장할 때 사용한다. 파싱된 데이터를 CSV나 JSON으로 저장하는 역할이다. 나중에 DB와 연결한다면 CSV 대신 PostgreSQL에 저장하도록 이 파일만 수정하면 된다.
이렇게 역할을 나누는 것을 단일 책임 원칙 이라고 한다. 하나의 파일은 하나의 역할만 한다는 것을 의미한다.
협업 할 때 한 담당씩 맡아서 작업할 수 있다.
'Project' 카테고리의 다른 글
| [Project] 카카오 API 사용을 위한 카카오 개발자계정 만드는법 (0) | 2026.04.01 |
|---|