장고에 대하여

Posted on 2021-08-25 by GKSRUDTN99
Django로 웹사이트 만들기 장고

웹 프레임워크를 사용하는 이유

  1. 웹 사이트 구현에 필요한 여러 복잡한 기능을 쉽게 만들 수 있게 도와주는 도구이다.
  2. 대부분의 웹 사이트를 개발할 때 필요한 공통 요소들을 미리 개발해 놓은 상태로 제공해준다.
  3. 성능과 보안 측면에서도 충분히 검증된 방법으로 개발 할 수 있다.

장고의 장점

  1. 기반 언어인 파이썬은 다른 언어들과 비교했을 때 배우기가 쉽고, 활용범위가 넓다.
  2. 관리자 페이지와 보안 기능을 기본적으로 제공한다.

장고와 플라스크의 비교

장고는 플라스크에 비해 기본적으로 제공하는 요소가 많다.

따라서 프레임워크에 의존적인 경향이 있고, 자유도가 낮다.

간단한 한 두가지 기능을 위해서라면 Flask를, 여러 기능이 갖춰진 웹을 구성하는 데는 Django가 적합하다고 볼 수 있다.


백엔드 기술이 필요한 이유

프론트엔드로만 구현된 홈페이지는 서버가 사용자에게 일방적으로 정보를 제공할 뿐, 방문자의 행동을 저장하고 보여줄 수는 없다.

댓글, 조회수 등의 방문자의 행동을 저장하고 보여주기 위해 DB를 활용하게 되는데, 이런 기능을 구현하기 위해 백엔드 기술이 필요한 것이다.


장고의 작동 구조 이해하기

장고로 만든 웹 사이트의 작동 구조

  1. 클라이언트가 web.com을 입력하고 장고로 만든 웹사이트에 요청을 보냄
  2. 웹서버가 urls.py를 요청해 내용을 확인 한 뒤, 어떤 함수 또는 클래스를 언급하는지 확인함
  3. urls.py에서 언급하는 함수 또는 클래스는 views.py에서 정의되어 있어, 함수 또는 클래스가 어떤 일을 해야하는 지 확인한다.
  4. views.py에서 데이터 베이스에 저장된 내용을 요구한다면, models.py에 정의된 내용을 확인한다. models.py에는 *게시글이 담아야 할 정보는 제목, 글 내용, 작성자, 작성일이다' 처럼 요구하는 자료의 형태가 정의되어 있다.
  5. models.py에서 정의한 모델에 맞게 데이터베이스에서 필요한 자료를 가져온다.
  6. 마지막으로 데이터베이스에서 가져온 자료를 템플릿의 빈 칸에 채워서 사용자의 웹 브라우저로 전송한다.

MTV 패턴이란?

장고는 모델로 자료의 형태를 정의하고, 로 어떤 자료를 어떤 동작으로 보여줄 지 정의하고, 템플릿으로 웹 페이지에서 출력할 모습을 정의한다. 이러한 작동구조를 MTV 패턴이라고 하는데, 이렇게 분리해서 기능을 관리함으로써

프론트엔드 개발자는 화면 구성에 집중할 수 있게 되고, 백엔드 개발자도 화면 뒤의 작업에 집중할 수 있게 된다.

이런 패턴이 없다면 백엔드 로직과 프런트엔드 디자인이 뒤죽박죽인 코드가 될 것이다.