Deep Learning

[Django 기초] 아키텍처 패턴(Architecture Pattern)

dio-han 2021. 12. 3. 19:39

 

아키텍처 패턴(Architecture Pattern)은 소프트웨어 내부에 존재하는 구조적인 패턴을 말한다.

오랜 시간 개발된 다양한 소프트웨어들이 결국 내부적으로 비슷한 구조를 갖게 되는 경우가 많아

발견된 구조들을 일반화해서 범주를 나눠 놓은 것.

 

대표적인 10가지 패턴

 

- 1. 계층화 패턴(Layered pattern)

- 2. 클라이언트 - 서버 패턴(Client-Server pattern)

- 3. 마스터 - 슬레이브 패턴(Master-Slave pattern)

- 4. 파이프 - 필터 패턴(Pipe-filter pattern)

- 5. 브로커 패턴(Broker pattern)

- 6. 피어 투 피어 패턴(Pier-to-Pier pattern)

- 7. 이벤트 - 버스 패턴(Event-bus pattern)

- 8. MVC 패턴(Model-View-Controller pattern)

- 9. 블랙보드 패턴(Blackboard pattern)

- 10. 인터프리터 패턴(Interpreter pattern

 

o 클라이언트 - 서버 패턴

 

클라이언트는 서비스를 요청하는 쪽이고 서버는 요청을 받아서 서비스를 제공하는 쪽

소프트웨어도 이처럼 내부적으로 두 개의 구조로 나눠서 서버는 클라이언트의 요청을 기다리고 있다가

클라이언트로부터 요청이 들어오면 요청에 맞는 서비스를 제공하도록 한다. 

인터넷 웹사이트, 온라인 게임 등이 클라이언트-서버 패턴에 해당

 

 

 

o MVC 패턴

 

MVC 패턴은 하나의 소프트웨어를 역할에 따라 Model, View, Controller 세 가지의 파트로 나눠서 개발하는

패턴이다. Model은 데이터를 저장, 보관하고 View는 사용자에게 보여지는 부분을 담당하며 Controller는

사용자의 입력을 받아서 내부 로직을 처리한다. 이렇게 역할에 따라 분리해서 개발하게 되면 분업이 가능해지고

이로 인해 프로그램을 더 빠르고 완성도 있게 개발할 수 있다. 기능별로 나누어져서 추후 유지 보수가 용이

 

o MVC 아키텍처와  MVT 아키텍처

 

MVC 는 Django의 MVT 구조와 비슷한 형태를 보인다.

MVT는 데이터 구조를 만들고 데이터베이스와 소통을 담당하는 Model, 로직을 담당하는 View, 그리고 화면

구성을 담당하는 Template 이렇게 세 가지로 나누어져 있는 구조였는데 이러한 MVT 구조는 MVC 구조를

기반으로 만들어 졌다. 차이점이 있다면 Model이 하는 역할은 그대로지만 MVC 아키텍처의 View가 하는

역할을 Template이 하고 Controller가 하는 역할을 View가 맡아서 처리한다.

 

기존 MVC 아키텍처에서는 Controller가 중심에서 모든 욫어을 맡아 처리하지만 MVT 아키텍처에서는

실제로 요청을 받아들이는 부분, 즉 기존의 MVC의 Controller가 했던 역할의 일부를 분리해서 Django 프레임

워크가 직접 처리한다.

 

이로 인해 서비스에 중욯나 Model, View, Template에 집중하고 나머지 모든 부분은 Django 프레임워크에 맡겨서

훨씬 편리하고 빠르게 개발이 가능해 졌다.