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 makemigrationspython manage.py migrate 명령어를 사용해야 합니다.
주의

Django는 파이썬 기반 프레임워크이므로, 파이썬 문법과 개념을 먼저 학습하는 것이 필수적입니다.