영벨롭 개발 일지

[Django]장고 Django 시작하기 - Django와 WEB 본문

Back-end/Django

[Django]장고 Django 시작하기 - Django와 WEB

영벨롭 2022. 5. 11. 16:56

[ 장고 Django란? ]

 

 Django는 파이썬으로 이루어진 오픈소스 웹 프레임워크입니다. Django로 이루어진 대표적인 웹 사이트에는 인스타그램이 있습니다. 

 

 

★ 이때 웹 프레임워크(Web Framework)는 무엇일까요?

 

 어떤 웹 애플리케이션을 개발하기 위해 필요한 기본적인 클래스와 라이브러리 등이 모두 포함되어 있는 환경입니다. 

 

 웹 개발을 하다보면 로그인 같이 굉장히 정형화되고 반복되는 작업들이 많을 수 밖에 없습니다.

 

 때문에 우리는 정형화 되어있는 웹 개발을 효율적으로 하기 위해 미리 만들어 놓은 웹 개발의 기능단위, 설계 단위의 집합인 프레임워크를 가져다 쓰는 것입니다. 

 

 쉽게 말해서, 웹 서비스를 쉽게 만들어주는 기계(기본 구조, 뼈대)라고 할 수 있습니다. 

 

 

★ 그렇다면 프레임워크와 라이브러리는 무엇이 다른가?

 

 Django와 같은 프레임워크는 명확한 목적을 달성하기 위해 이미 설계까지 만들어진 구조/뼈대이고,

 

 React와 같은 라이브러리는 도구들의 모음이라고 할 수 있습니다. 

 

 

 

 

 

[ 그래서 WEB이 뭔데? ]

 

 WEB(World Wide Web)은 한 마디로 정보의 그물망이라고 할 수 있습니다. 

 

 웹 페이지(web page)는 HTML 언어를 사용하여 작성된 하이퍼텍스트 문서로, 이것이 사용자가 볼 수 있는 정보라고 할 수 있습니다. 

 

 사용자는 웹 페이지를 검색하기 위해 Chrome, Internet Explorer, Fire Fox와 같은 웹 브라우저(web browser)라는 프로그램을 사용하는 것입니다. 

 

 이렇게 WEB은 하이퍼링크를 통해서 수많은 웹 페이지들이 연결되어 구성됩니다. 

 

 

★ WEB이 제공하는 세가지

 

 1. URL

: 정보 자원이 어디 있는지를 나타내는 표식으로, 웹 리소스(웹 페이지, 웹 사이트)에 대한 참조(주소)입니다. 

 

 2. HTTP

: 정보 자원으로 접근하고 통신하게해주는 프로토콜(약속)입니다. 

  HTTP의 요청의 종류에는 GET, POST 등이 있습니다. 

 

 3. HTML

: 응답으로서의 정보 자원 자체를 의미하며 다른 정보 자원과의 연결 매개체라고 할 수 있습니다. 

 

 

 예를 들어 CLIENT가 'https://www.google.com 주소에 위치한 페이지를 가져다줘~' 라고 해당 페이지에 대한 URL과 함께 요청을 보내면, 구글의 SERVER는 이 URL 에 매칭되는 HTML 을 응답해주는 것입니다.

 

 

 

★ Web Service

 

 개발자의 입장에서 웹 서비스는 사용자가 원하는 정보와 위치를 HTML과 URL로 미리 준비해 둔 상태로, 사용자 요청에 대한 응답을 보낼 수 있는 프로그램이 되는 것입니다~!

 

 

 

 

 

[ MVC & MTV 디자인 패턴 ]

 

 Django는 MTV 디자인 패턴(설계 원칙)을 따릅니다. 

 

 MVC와 MTV는 동일한 것이라고 봐도 무방합니다. 

 

 

★ MTV 디자인 패턴

 

1. Model : 데이터베이스와 상호작용하는 부분을 담당

 

2. Template : 사용자 눈에 보이는 부분, 즉 사용자 인터페이스를 담당

 

3. View : 웹 서비스 내부의 논리를 담당

 

 

 

★ MVC 디자인 패턴

 

1. Model : 데이터베이스와 상호작용하는 부분을 담당

 

2. View : 사용자 눈에 보이는 부분, 즉 사용자 인터페이스를 담당

 

3. Controller : 웹 서비스 내부의 논리를 담당

 

 

 

 

 우리가 웹 브라우저에서 www.instagram.com  에대한 GET 요청을 보내면 인스타그램은 해당 URL이 있는지 확인한 후, 있다면 이 HTML을 보여줘라는 내부 로직을 사용합니다. 이 과정이 MTV의 View 이겠죠? 그 후 Template에서는 해당 HTML 파일을 건내주어 우리 눈에 인스타그램 페이지가 보이게 되는 것입니다~

 

 다른 예시도 볼까요? 이번엔 사용자가 인스타그램에 댓글을 달아 '너네 데이터베이스에 이 댓글을 저장해줘~' 라는 POST 요청을 보내면, View에서 이 데이터를 여기에 저장해야겠군!을 결정한 뒤, Model을 통해 저장하는 것입니다!

 

 

반응형