Django - Mini Project - End

김기훈·2025년 12월 3일

부트캠프 프로젝트

목록 보기
14/39

구조

설치: brew install tree
현재 디렉토리 구조: tree -L 4

├── accounts
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── constants.py
│   ├── forms.py
│   ├── migrations/
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── analysis
│   ├── __init__.py
│   ├── admin.py
│   ├── analyzers.py
│   ├── apps.py
│   ├── migrations/
│   ├── models.py
│   ├── serializers.py
│   ├── tests.py
│   ├── urls.py
│   ├── utils.py
│   ├── views_html.py
│   └── views.py
├── core
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
├── docker
│   ├── docker-compose.yml
│   ├── Dockerfile
│   └── entrypoint.sh
├── manage.py
├── poetry.lock
├── pyproject.toml
├── README.md
├── templates
│   ├── accounts
│   │   ├── account_form.html
│   │   └── account_list.html
│   ├── analysis
│   │   ├── analysis_create.html
│   │   └── analysis_list.html
│   ├── base.html
│   ├── form-js.html
│   ├── main.html
│   ├── registration
│   │   ├── login.html
│   │   └── signup.html
│   ├── transactions
│   │   ├── transaction_detail.html
│   │   ├── transaction_form.html
│   │   └── transaction_list.html
│   └── users
│       └── profile.html
├── transactions
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── filters.py
│   ├── forms.py
│   ├── migrations/
│   ├── models.py
│   ├── serializers.py
│   ├── tests.py
│   ├── urls.py
│   ├── views_html.py
│   └── views.py
└── users
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── forms.py
    ├── migrations
    │   ├── __init__.py
    │   └── 0001_initial.py
    ├── models.py
    ├── tests.py
    ├── urls.py
    └── views.py

앱 구성 역할 요약

① accounts 앱

  • 가계부 “계좌(Account)” 관리
  • 모델: Account
  • 기능: 계좌 생성, 삭제, 목록
  • HTML 기반 UI: account_form.html, account_list.html

② transactions 앱

  • 핵심 데이터: 거래(Transaction)
  • CRUD + 필터링 + 상세보기
  • 필터 기능(filters.py), 목록/생성/수정/상세 페이지 HTML 제공
  • REST API + HTML view 모두 존재

③ analysis 앱

  • 통계 분석 / 그래프 생성
  • analyzers.py 내부에서 Pandas + Matplotlib로 데이터를 처리
  • REST API + HTML view 다 있음
  • utils.py 로직 보조

④ users 앱

  • 회원정보(UserProfile)
  • Django 기본 auth 확장 보조
  • signup/login 템플릿은 registration 아래 위치

⑤ core (프로젝트)

  • settings.py
  • 전체 URL 연결
  • 메인 페이지(main.html)

⑥ templates / static

  • 모든 앱 공통 템플릿 관리 위치
  • base.html 최상위 레이아웃

⑦ docker 폴더

  • Dockerfile, docker-compose.yml, entrypoint.sh → 나중에 서버 배포할 때 사용

앱별 파일 구성 의미

(1) views.py와 views_html.py를 분리한 구조

  • views.py → API 전용 (DRF 기반)
  • views_html.py → HTML 템플릿 렌더링
  • API와 HTML 로직을 완전히 분리 → 코드가 훨씬 깔끔해짐
    • 분리하지 않으면, 유지보수가 힘듬 / 가독성 하락

(2) serializers.py 있는 앱은 API 제공

  • transactions
  • analysis
    • 두 앱은 REST API 기능도 제공한다는 뜻

(3) filters.py (transactions 전용)

  • HTML 필터 + API 필터 둘 다 지원 가능

(4) analyzers.py

  • DataFrame 생성
  • 그룹화 / 통계 / 그래프
  • 결과 이미지 파일 저장

내 코드

transactions

├── transactions
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── filters.py 		→ DRF에서 사용할 필터 정의
│   ├── forms.py		→ HTML에서 입력받을 Form 구성
│   ├── migrations/
│   ├── models.py 		→ 거래(Transaction) 데이터 정의
│   ├── serializers.py 	→ API 응답/입력 검증
│   ├── tests.py
│   ├── urls.py 		→ 위의 모든 것을 URL로 연결
│   ├── views_html.py  	→ HTML 페이지용 CRUD
│   └── views.py 		→ REST API (List/Create, Detail/Update/Delete)

profile
안녕하세요.

0개의 댓글