일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- HTML #CSS
- 컴퓨터공학 #c #c언어 #문자열입력
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
- 잔
- Today
- Total
영벨롭 개발 일지
[Django]장고 Django 시작하기 - Django와 WEB 본문
[ 장고 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을 통해 저장하는 것입니다!
'Back-end > Django' 카테고리의 다른 글
[Django]장고 Model 만들기 - ORM & Migration (0) | 2022.05.17 |
---|---|
[Django]장고를 위한 최소한의 데이터베이스 DB (0) | 2022.05.17 |
[Django]장고 static 파일 다루기 (0) | 2022.05.12 |
[Django] 장고 URL 등록하기: path(), include() (0) | 2022.05.12 |
[Django] 장고 개발 환경 세팅하기 - 가상 환경, 설치, Django 내부 구조 (0) | 2022.05.11 |