티스토리 뷰

반응형

Django 구조 이해하기 

Software Design Pattern이 필요한 이유

위 그림은 부산의 대표적인 대교들이다.

왼쪽 상단부터 시계방향으로 대동화명대교, 부산항대교, 거가대교, 광안대교다.

 

사진을 보면 알 수 있듯이 사실상 다 똑같이 생겼다.

건축가들은 여러 번 대교를 만들면서 자주 사용되는 구조를 발견하고, 이를 일반화하여 하나의 공법을 만들었다.

이후 대교를 지을 때마다 공법을 사용한다.

 

소프트웨어에서도 이런 점이 있다.

다양한 응용 소프트웨어를 개발할 때 공통적인 설계문제가 존재하며, 이에 따른 해결책 또한 공통점이 있다.

이 유사점을 패턴이라고 한다.

 

소프트웨어 디자인 패턴은 자주 사용되는 소프트웨어의 구조를 마치 건축 공법처럼 일반적으로 구조화한 것이다.

소프트웨어 디자인 패턴 중 하나인 클라이언트-서버 구조를 사용한 예를 살펴보자.

 

Before) 서비스를 요청하는 쪽과 해당 요청을 처리하는 쪽을 따로 개발해서, 둘 사이에 데이터를 주고 받는 방식을 정의한 다음, 다수의 요청을 처리하는 구조를 만들어보자.

 

After) 클라이언트-서버 구조로 구현하자

 

소프트웨어 디자인 패턴은 이처럼 커뮤니케이션을 간소화한다.


MVC 소프트웨어 디자인 패턴

MVC는 데이터 및 논리 제어를 구현하기 위해 사용되는 소프트웨어 디자인 패턴이다.

하나의 큰 프로그램을 Model - View - Controller의 세 역할로 구분한 개발 방법론이다.

 

Model : 데이터 관련 로직 관리

View : 레이아웃과 화면 처리

Controller : model과 view사이를 연결하는 로직

 

"관심사를 분리한다"는 개념으로, 각 부분을 독립적으로 개발할 수 있다.

따라서

- 개발의 효율성 및 유지보수가 쉬워진다 : 하나를 수정하고 싶을 때 전체를 건들이지 않아도 된다.

- 업무가 분리되어 여러명이 함께 개발하기 편하다.


장고의 디자인 패턴 : MTV 패턴

장고의 디자인 패턴은 MVC 패턴을 기반으로 만들어졌다.

MVC MTV
Model Model
View Template
Controller View

장고의 구조

1. Model

- 데이터 관련 로직 관리

- 데이터 구조를 정의하고 데이터베이스 기록을 관리한다.

- MVC에서 Model의 역할

 

2. Template

- HTML 

- 레이아웃과 화면을 처리

- MVC에서 View의 역할

 

3. View

- 모델 & 템플릿 사이의 로직을 처리하여 응답 반환

- 동작 예시

  • model에 접근하여 데이터를 가져오고
  • 해당 데이터를  template으로 보내 화면을 구성하고
  • 구성된 화면을 응답으로 만들어 클라이언트에게 반환

- MVC에서 Controller의 역할

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함
반응형