본문 바로가기
프로그래밍 언어(Programming Languages)/파이썬(Python)

[파이썬 Python] 최고로 효율적인 Python 프로젝트를 빠르게 설정하는 방법 🐍

by 데이터 벌집 2024. 11. 3.
반응형

Python 프로젝트를 처음 설정할 때, 파일 구조를 짜는 것부터 시작해서 환경을 설정하는 모든 과정이 꽤 시간이 걸릴 수 있어요. 하지만 이 모든 과정을 간편하게 만들어주는 도구가 있다면? 😊 오늘은 그런 마법 같은 도구, 바로 Cookiecutter를 소개해드릴게요! 💡

[파이썬 Python] 최고로 효율적인 Python 프로젝트를 빠르게 설정하는 방법 🐍

 

Cookiecutter란 무엇인가요?

Cookiecutter는 명령줄에서 프로젝트 템플릿을 기반으로 새 프로젝트를 자동으로 생성해주는 유틸리티예요. 🛠️ 즉, 디렉토리 구조와 여러 설정 파일들을 미리 정의해둔 템플릿을 바탕으로 프로젝트를 만들어주는 거죠. 이로 인해 프로젝트를 설정하는 시간을 줄이고, 일관성을 유지할 수 있어요! 🤖

 

https://cookiecutter.readthedocs.io/en/stable/

https://github.com/cookiecutter/cookiecutter

 

GitHub - cookiecutter/cookiecutter: A cross-platform command-line utility that creates projects from cookiecutters (project temp

A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects. - cookiecutter/cookiecutter

github.com

 

 

Machine Learning 프로젝트에 Cookiecutter 활용하기

기계 학습 프로젝트를 위해 가장 많이 사용되는 템플릿 중 하나는 cookiecutter-data-science 템플릿입니다. 이 템플릿은 DrivenData에서 유지 관리하며 데이터 과학 및 기계 학습 응용 프로그램에 맞게 표준화된 프로젝트 구조를 제공해요. 사용 방법은 다음과 같아요:

  1. Cookiecutter를 먼저 설치합니다:
pip install cookiecutter
  1. cookiecutter-data-science 템플릿을 사용하여 Cookiecutter를 실행합니다:
cookiecutter https://github.com/drivendata/cookiecutter-data-science

그럼 터미널에 몇 가지 질문이 나타날 거예요. 프로젝트 이름, 작성자 이름 등의 정보를 입력하면 맞춤화된 프로젝트 구조가 만들어집니다! 😃✨

 

프로젝트 구조

Cookiecutter를 이용하면 다음과 같은 디렉토리 구조를 가진 프로젝트가 생성됩니다:

📂 data/: 데이터셋과 원본 데이터 파일을 저장하는 디렉토리.

📂 notebooks/: 데이터 탐색, 분석, 모델 개발을 위한 Jupyter 노트북을 저장하는 디렉토리.

📂 src/: 데이터 전처리, 모델 훈련 및 평가를 위한 Python 스크립트가 들어가는 디렉토리.

📂 models/: 훈련된 기계 학습 모델을 저장하는 디렉토리.

📂 reports/: 생성된 보고서, 시각화, 문서 등을 저장하는 디렉토리.

📂 configs/: YAML이나 JSON 파일 등 하이퍼파라미터와 실험 설정을 위한 구성 파일을 저장하는 디렉토리.

📂 docs/: 프로젝트 설명, README 파일 등을 포함한 문서 자료를 저장하는 디렉토리.

Cookiecutter의 장점

💼 표준화: Cookiecutter는 표준화된 프로젝트 구조를 적용하여 팀원들이 프로젝트를 쉽게 이해하고 협업할 수 있게 합니다.

⏱️ 시간 절약: 프로젝트 설정을 자동화하여, 디렉토리 생성이나 파일 설정에 시간을 낭비하지 않게 해줍니다.

🔁 재현성: 일관된 프로젝트 구조와 의존성 설정으로, 기계 학습 실험의 재현성을 높여줍니다.

🌐 커뮤니티 템플릿: 다양한 용도의 템플릿이 커뮤니티에 의해 유지 관리되며, 여러 프로젝트 유형에 활용할 수 있습니다.

 

다른 Cookiecutter 템플릿 활용 사례

1️⃣ 웹 개발: Django나 Flask 같은 백엔드 프레임워크, React나 Vue.js 같은 프론트엔드 프레임워크를 포함한 웹 개발 프로젝트의 구조를 만들어주는 템플릿도 있어요. 예를 들어, cookiecutter-django는 Django 프로젝트를 손쉽게 설정할 수 있게 해줍니다.

cookiecutter https://github.com/pydanny/cookiecutter-django

2️⃣ API 개발: cookiecutter-fastapi 같은 템플릿을 사용하면 FastAPI 기반의 RESTful API 프로젝트를 빠르게 시작할 수 있습니다.

cookiecutter gh:arthurhenrique/cookiecutter-fastapi

3️⃣ 인프라 코드(IaC): Terraform이나 AWS CloudFormation 같은 인프라 코드 도구를 위한 템플릿도 있어요. 이런 템플릿은 서버, 데이터베이스, 네트워킹 구성 요소와 같은 인프라 리소스를 설정하는 과정을 간소화해줍니다.

cookiecutter https://github.com/antonbabenko/cookiecutter-terraform

 

 

Cookiecutter는 Python 프로젝트를 설정하는 데 있어 매우 유용한 도구입니다. 🎉 표준화된 프로젝트 구조를 제공하고, 설정 작업을 자동화하며, 일관성을 유지하도록 도와줍니다. Cookiecutter를 사용하면 생산성과 프로젝트 관리가 크게 향상되므로, 소프트웨어 개발의 모범 사례 중 하나로 고려해 볼 만해요! 🏆✨

 

이 글이 도움이 되셨다면, 여러분도 Cookiecutter를 사용해 보세요! 😉

반응형