Django 기초
Django는 파이썬으로 만들어진 고수준의 웹 프레임워크입니다. "신속한 개발(rapid development)"과 "깔끔하고 실용적인 설계(clean, pragmatic design)"를 목표로 합니다.
개요
Django는 백엔드 개발에 필요한 대부분의 기능을 제공하는 "배터리 포함(Batteries-included)" 프레임워크입니다. 인증 시스템, 관리자 패널, ORM(객체 관계 매퍼) 등 웹 개발에 필요한 필수적인 도구들이 이미 내장되어 있어 개발자는 핵심 로직에만 집중할 수 있습니다.
참고
Django는 인스타그램, 유튜브, 핀터레스트 등 많은 대규모 웹 서비스의 백엔드에 사용될 만큼 강력하고 안정적입니다.
MVC 패턴 (MTV 패턴)
Django는 웹 애플리케이션의 구조를 체계적으로 분리하기 위해 MVC(Model-View-Controller) 패턴과 유사한 MTV(Model-Template-View) 패턴을 사용합니다.
Django의 요소 | 설명 |
---|---|
Model |
데이터베이스의 구조를 정의합니다. |
Template |
사용자에게 보여지는 화면(HTML)을 담당합니다. |
View |
HTTP 요청을 받아 데이터 처리를 수행하고, 응답(Template)을 반환합니다. |
ORM (Object-Relational Mapper)
Django의 ORM은 파이썬 객체로 데이터베이스를 다룰 수 있게 해줍니다. SQL 쿼리를 직접 작성할 필요 없이 파이썬 코드로 데이터를 조회, 생성, 수정, 삭제할 수 있어 개발 생산성을 크게 높입니다.
Python
# models.py from django.db import models class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() # view.py에서 ORM 사용 예시 from .models import Post # 새로운 게시물 생성 post = Post.objects.create(title='첫 번째 게시글', content='안녕하세요!') # 모든 게시물 조회 all_posts = Post.objects.all() # 제목이 '첫 번째 게시글'인 게시물 조회 first_post = Post.objects.get(title='첫 번째 게시글')
사용 예제
간단한 Django 뷰와 URL 설정 예제입니다.
Python (views.py)
from django.http import HttpResponse def hello_world(request): return HttpResponse("Hello, Django!")
Python (urls.py)
from django.urls import path from . import views urlpatterns = [ path('', views.hello_world, name='home'), ]
주의사항 및 팁
- Django는 가상 환경(Virtual Environment)에서 프로젝트를 관리하는 것이 좋습니다.
django-admin startproject
명령어를 통해 쉽게 프로젝트를 시작할 수 있습니다.-
데이터베이스 변경 사항을 적용할 때는
python manage.py makemigrations
와python manage.py migrate
명령어를 사용해야 합니다.
주의
Django는 파이썬 기반 프레임워크이므로, 파이썬 문법과 개념을 먼저 학습하는 것이 필수적입니다.