Django의 큰 구조 이해하기

(https://www.linkedin.com/pulse/understanding-mvt-architecture-django-aritra-pain-fpmnc/)
핵심 요약 정리
- Django의 핵심은 모델(Model), 뷰(View), 템플릿(Template) 세 가지 구성 요소라는 것.
- MVT(Model-View-Template) 패턴
- 모델(Model): 데이터베이스 구조와 데이터를 정의하며, 데이터의 생성, 조회, 수정, 삭제 등 데이터와 관련된 모든 작업을 담당합니다. 실제로는 Python 클래스로 작성되며, Django의 ORM(Object-Relational Mapping)을 통해 데이터베이스와 연동됩니다.
- 뷰(View): 사용자 요청을 받아서 필요한 로직을 처리하고, 모델에서 데이터를 가져오거나 저장한 뒤, 그 결과를 템플릿에 전달하는 역할을 합니다. Django의 뷰는 MVC 패턴에서의 컨트롤러 역할과 유사합니다.
- 템플릿(Template): 뷰로부터 전달받은 데이터를 사용자에게 보여주는 화면(UI)을 담당합니다. HTML 파일에 Django 템플릿 언어를 사용하여 동적으로 데이터를 표시합니다.
Django 훑어보기
(https://docs.djangoproject.com/ko/5.2/intro/overview/)
모델
- 일반적으로 각 모델은 하나의 데이터베이스 테이블과 매핑
- 데이터의 필수적인 필드와 동작을 포함
- 각각의 모델은 Python의 Class로, django.db.models.Model 에 속하게 됨
모델 설계
- OPM(Object Relational Mapper) 자동 설치
- Data-Model 형태 사용
설치
- Django CLI 유틸리티 생성 필수
- makemigrations : 생성 가능한 모델을 찾아 테이블이 존재하지 않을 경우 마이그레이션 생성
- migrate : 생성된 마이그레이션을 실제로 데이터베이스에 테이블 생성
관리자 페이지 제공
- 모델이 정의된 후에는 관리자 페이지(인터페이스)가 자동으로 생성됨
- 해당 관리자 페이지에서 인증된 사용자가 객체를 추가, 변경, 삭제할 수 있음
- 핵심 : 빠르게 관리자 페이지를 만들어 비즈니스 운영자가 데이터 입력을 시작할 수 있게 만듬
URL 설계
- URLconf 파이썬 모듈을 활용해 라우팅 수행
- 경로를 순서대로 실행하고, 요청된 URL과 일치할 때까지 내부적으로 콜백을 통해 접근

- 예를 들어, 사용자가 URL “/articles/2005/05/39323/”로 요청을 보내면, Django는 다음처럼 함수를 호출함. → news.views.article_detail(request, year=2005, month=5, pk=39323).
뷰 작성하기

- 하나의 뷰는 HttpResponse 객체, Exception 객체(HTTP 404) 둘 중 하나를 반환해야 하는 책임이 있음.
- 뷰는 파라미터들에 따라 데이터를 가져오며 템플릿을 로드하고 템플릿을 가져온 데이터로 렌더링함.
템플릿 작성하기

- 일반 HTML과 다르게 특수한 템플릿 코드들이 작성되어 있어 랜더링 시 값을 동적으로 부여함.
- Custom Template Filter, Custom Template Tag 등을 작성해 Python 코드를 실행 시킬 수 있음.

- Template 간 상속을 통해 하나의 base 템플릿을 두고 코드 재사용이 가능함.
'Tech > [Backend] Django' 카테고리의 다른 글
Django 공식 문서로 Django 입문하기 (4) - Dockerize (0) | 2025.05.16 |
---|---|
Django 공식 문서로 Django 입문하기 (3) - Vote 앱 개발하기 (0) | 2025.05.16 |
Django 공식 문서로 Django 입문하기 (2) - DB 연동 및 관리자 페이지 연동 (0) | 2025.05.15 |