티스토리 뷰

2025.07.14 - [웹 프로그래밍] - [1] 웹 프로그래밍의 이해

 

[1] 웹 프로그래밍의 이해

웹 프로그래밍은 HTTP(S) 프로토콜로 통신하는 클라이언트와 서버를 개발하는 일입니다. 쉬운 예시로, 웹 브라우저를 실행하여 네이버에 접속할 때도 웹 프로그램이 동작합니다. 이 경우, 웹 클라

up-one-coding.tistory.com

Djanog은 대표적으로 구글의 웹 애플리케이션 엔지에 사용되면서 많은 사람이 사용하게 되었고 현재는 파이썬을 대표하는 웹 프레엠워크로 자리매김하고 있습니다. 이번에는 Django 프레임워크의 특징에 대해 알아보겠습니다.

 

1. MVT 패턴

Django의 MVT 패턴은 Model, View, Template 각 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식입니다. 기존 웹 프로그래밍 시 언급되는 MVC(Model, View, Controller)에서 View을 Template, Controller를 View로 표현하는 것이 MVT 패턴입니다.

Django의 MVT 패턴

 

① Model - DB 정의

Model은 사용될 데이터에 대한 정의를 담고 있는 클래스입니다. 기존의 웹 프로그래밍에서 데이터베이스에 접근하려면 직접 SQL 언어를 사용해 데이터를 요청해야 했습니다. 하지만, Django에서는 ORM 기법을 바탕으로 애플리케이션에서 사용할 데이터베이스를 클래스로 매핑하여 코딩할 수 있습니다.

 

ORM 기법은 데이터베이스 대신 객체를 사용해 데이터를 처리합니다. 이러한 방법은 데이터베이스로의 액세스를 SQL 없이도 클래스를 다루는 것처럼 유용하고, 필요에 따라 데이터베이스 엔진(SQLite3, PostgreSQL 등)을 쉽게 변경할 수 있습니다. Djanogo은 테이블을 모델 클래스로 정의하고 이를 실제 데이터베이스에 반영한 후에도 테이블에 데이터를 입력하고 입력된 데이터를 확인 및 변경할 수 있는 기능을 가지고 있습니다.

 

# Person 모델 클래스 정의
from django.db import models

class Person(models.Model):
	first_name = models.CharField(max_length=30)
    second_name = models.CharField(max_length=50)
    
# Django 내부의 SQL 명령으로 자동으로 데이터베이스 테이블을 생성

 

② URL conf - URL 정의

클라이언트로부터 요청을 받으면 Django는 가장 먼저 요청에 들어있는 URL을 분석합니다. 개발자가 사전에 URL과 처리 함수를 매핑하는 코드를 작성하여 이뤄진 URL / View 매핑을 URL conf라고 합니다. URL conf의 장점은 URL과 뷰 함수 이름이 자주 수정되어도 URL conf에서 매핑한 부분만 수정하면 되므로 변경이 쉽다는 것입니다.

 

주요 원리는 웹 클라이언트가 웹 서버에 페이지를 요청할 때 Django에서 URL을 분석하는 것입니다. 특정 패턴으로 정의된 URL에서 매칭이 되면 매칭된 URL의 뷰를 호출하는 것입니다.

 

③ View - 로직 정의

View는 웹 요청을 받아서 데이터베이스 접속 등 해당 애플리케이션의 로직에 맞는 처리를 하고 그 결과 데이터를 HTML로 변환하기 위해 템플릿 처리를 한 후 최종 HTML로 된 응답 데이터를 웹 클라이언트로 변환합니다.

# 현재 날짜와 시간을 html로 반환하는 view
from django.http import HttpResponse
import datetime

def current_datetime(request):
	now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

 

즉, View는 템플릿 파일을 해석해서 HTML 코드를 생성하고 이를 HttpResponse 객체에 담아서 클라이언트에 응답합니다.

 

④ Template - UI 정의

Django가 클라이언트에게 반환하는 최종 응답은 html 텍스트입니다. 클라이언트는 응답으로 받은 html 텍스트를 해석해서 우리가 보는 웹 브라우저 화면에 UI로 반환합니다. Django의 장점은 자체 템플릿 엔진을 가지고 있기 때문에 디자이너도 쉽게 이해할 수 있는 문법을 제공합니다. 화면 디자인을 변경할 일이 있으면 개발자는 프로그램 로직에 상관없이 문법에 맞게 템플릿만 수정하면 되므로 협업이 편리합니다.

 

⑤ 프로젝트 작업 순서

  1. 프로젝트 뼈대 만들기 : 프로그래밍에 필요한 디렉터리와 파일 생성
  2. 모델 코딩하기 : 테이블 관련 사항 프로그래밍
  3. URL conf 코딩하기 : URL 및 뷰 매핑 관계 정의
  4. 템플릿 : 화면 UI 생성
  5. 뷰 : 애플리케이션 로직 구현

'웹 프로그래밍' 카테고리의 다른 글

[1] 웹 프로그래밍의 이해  (0) 2025.07.14
TAG more
글 보관함
최근에 올라온 글