Skip to content

Instantly share code, notes, and snippets.

@jinto
Last active July 1, 2025 15:24
Show Gist options
  • Save jinto/bc012e6924f4f4cad8b774421551ffdf to your computer and use it in GitHub Desktop.
Save jinto/bc012e6924f4f4cad8b774421551ffdf to your computer and use it in GitHub Desktop.

Django 프로젝트 보일러플레이트 생성

페르소나 (Persona)

당신은 최신 기술 스택에 정통한 시니어 백엔드 개발자입니다. 생산성과 개발자 경험(DevEx)을 극대화하는 모범 사례를 따르며, 확장 가능하고 유지보수가 용이한 프로젝트 구조를 설계하는 데 능숙합니다.

프로젝트 비전 (Project Vision)

실무에 바로 투입할 수 있는 현대적인 Django 프로젝트의 기반(Boilerplate)을 구축합니다. 이 프로젝트는 초기 설정의 번거로움을 최소화하고, 팀원이 즉시 개발에 집중할 수 있도록 견고한 구조와 자동화된 개발 환경을 갖춰야 합니다.

핵심 기능 명세 (Core Feature Specifications)

아래의 핵심 요구사항을 바탕으로, 당신의 전문적인 판단에 따라 최적의 구조와 코드를 완성해 주세요. 전체 파일 구조와 각 파일의 완전한 코드를 제공해야 합니다.

1. 기술 스택 및 초기화

  • 패키지 매니저: **uv**를 사용하여 프로젝트를 초기화하고 모든 의존성을 관리합니다.
  • 핵심 프레임워크: Django 최신 버전을 사용합니다.
  • 프로젝트 구조: config라는 이름의 프로젝트를 현재 디렉토리(.)에 생성해 주세요.

2. 유연한 설정 관리

  • 환경 분리: 개발(local), 운영(prod) 환경을 분리하여 관리할 수 있도록 config/settings 디렉토리 구조를 만들어주세요. (base.py, local.py, prod.py 패턴)
  • 보안: SECRET_KEYDATABASE_URL 같은 민감 정보는 .env 파일을 통해 관리하도록 **python-dotenv**를 적용해 주세요. manage.py 등 관련 파일들이 환경 변수(ENV_NAME)에 따라 적절한 설정 파일을 로드하도록 지능적으로 처리해야 합니다.

3. 사용자 관리 시스템

  • 인증: 강력하고 확장성 있는 사용자 인증을 위해 **django-allauth**를 도입합니다.
  • 커스텀 모델: member 앱을 생성하고, AbstractUser를 상속받는 커스텀 User 모델을 구현해 주세요. 이 모델이 프로젝트의 기본 AUTH_USER_MODEL이 되도록 설정은 필수입니다. SITE_ID와 같은 allauth 필수 설정도 잊지 마세요.

4. 모던 프론트엔드 스타일링

  • 스타일링: Tailwind CSS를 사용하여 현대적인 UI를 구현합니다.
  • 통합: django-tailwind 라이브러리를 사용하여 Django 템플릿과 완벽하게 통합해 주세요. theme 앱을 생성하여 관리하고, templates 디렉토리 내의 모든 HTML 파일에서 Tailwind 클래스가 동작하도록 설정해야 합니다.

5. 기본 애플리케이션 및 라우팅

  • main 앱을 만들고, 프로젝트의 루트 URL(/)에 접속했을 때 "Hello, World!" 와 같은 간단한 환영 메시지를 보여주는 페이지를 렌더링하도록 설정해 주세요.
  • 재사용성을 위해 templates 디렉토리는 프로젝트 루트에 두고, base.html을 만들어 다른 템플릿들이 상속받는 구조로 만들어 주세요. index.html은 Tailwind CSS 클래스를 사용하여 멋지게 스타일링된 상태여야 합니다.

6. 개발자 경험(DevEx) 향상

  • 코드 품질: black(포매터), ruff(린터), pytest(테스터)를 개발 의존성으로 추가하고, pyproject.toml에 합리적인 기본 설정을 적용해 주세요.
  • 자동화: **lefthook**을 사용하여 Git pre-commit 시점에 자동으로 코드 포매팅과 린팅, 테스트가 실행되도록 설정해 주세요. 개발자가 코드 품질에 신경 쓰지 않아도 일관성이 유지되어야 합니다.
  • 기타: 실용적인 .gitignore 파일을 포함해 주세요.

7. 최종 산출물 및 문서화

  • 마이그레이션: 모든 설정이 완료된 후, 즉시 migratecreatesuperuser를 할 수 있는 상태여야 합니다.
  • README.md: 새로운 팀원이 이 프로젝트를 받고 5분 안에 로컬 개발 환경을 세팅하고 서버를 실행할 수 있도록 명확하고 간결한 README.md를 작성해 주세요. (설치, .env 설정, 서버 실행, 테스트 방법 포함)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment