MLOps 프로젝트를 시작할 때 디렉토리 구조를 체계적으로 잡는 것은 굉장히 중요하다.
이 글에서는 MLOpsStudy라는 예시 프로젝트를 기준으로, 실무와 협업에 적합한 ML 프로젝트 폴더 구조를 소개한다.
전체 구조
MlopsStudy/
├── data/
├── scripts/
│ └── main.py
├── src/
│ ├── __init__.py
│ ├── ml_pipeline.py
│ └── utils.py
├── tests/
│ └── test_ml_pipeline.py
├── requirements.txt
├── README.md
└── setup.py
각 폴더와 파일 설명
data/
- 원본(raw), 전처리된(processed) 데이터 저장용
- 버전 관리 대상에서 제외하거나, .gitkeep 파일로 구조만 유지
- 실제 데이터는 DVC 등으로 관리하는 경우도 많음
scripts/
- 실행용 스크립트 저장소
- 예: main.py, run.py, CLI 실행 파일
- 실제로는 이곳에서 src/의 모듈을 불러 사용
src/
- **핵심 로직(ML pipeline)**이 담긴 디렉토리
- 재사용 가능하고, 테스트 가능한 코드는 여기에!
tests/
- 유닛 테스트 파일 저장소
- pytest 또는 unittest 기반 테스트를 통해 코드 안정성 확보
requirements.txt
- 프로젝트 실행에 필요한 패키지 목록
- pip install -r requirements.txt로 설치 가능
README.md
- 프로젝트 개요, 사용법, 구조 설명 등 문서화
setup.py
- 프로젝트를 파이썬 패키지로 설치 가능하게 만드는 메타 정보
- 나중에 pip install .로 내부 모듈을 외부에서 사용할 수 있도록 해줌
왜 이런 구조가 중요할까?
- 코드의 재사용성과 유지보수성 향상
- 협업 시 의사소통 최소화 (어디에 어떤 코드가 있는지 명확)
- 유닛 테스트, 자동화(MLOps), CI/CD 파이프라인 구성에 최적화
마무리
이러한 구조를 미리 잡아두면,
- 실험을 체계적으로 관리하고,
- 협업자들과 코드 구조를 공유하며,
- 나중에 서비스를 위한 MLOps 전환도 훨씬 수월해진다!
'시스템 개발 및 관리 > 프로젝트 구조 설정' 카테고리의 다른 글
pyproject.toml vs setup.py: 파이썬 패키징 방식의 변화 (0) | 2025.04.05 |
---|---|
파이썬 프로젝트의 템플릿과 패키징, 간단 정리! (0) | 2025.04.05 |
파이썬 프로젝트에서 src/는 왜 쓰는 걸까? 패키지는 어디에 두어야 할까? (0) | 2025.04.05 |
MLOps 프로젝트를 패키지로 만들기 – setup.py 완전 이해하기 (0) | 2025.04.02 |
MLOps 프로젝트 디렉토리 구조 – 필수 폴더 vs 선택적 폴더 정리 (0) | 2025.04.02 |