시스템 개발 및 관리/프로젝트 구조 설정

파이썬 MLOps 프로젝트 디렉토리 구조 알아보기

Data Jun 2025. 4. 2. 15:49

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 전환도 훨씬 수월해진다!