기타 공부/탈잉 렛츠고 장고! 노트정리

3강 장고 기본 파트 : 투표 사이트 만들기 - 장고 설치하기 및 구조

모항 2022. 5. 8. 02:34

파이썬 기반이라서 파이썬 IDE를 설치해주어야 함.

 

초보자 대상 강의라서 그런지 자세한 설명은 해주시지 않았음.

 

PIP, Vertualenv가 파이썬 개발을 돕는? 것들이라고 함.

PIP를 이용해서 장고를 설치한다고 하심... 실제로 프로젝트 생성 후에 터미널 창을 열어 커맨드로 장고를 설치했음. 이 과정에 PIP가 관여하는 듯?

 

 

 

파이썬도 자바처럼 프로젝트 단위로 개발을 함.

 

파이썬 프로젝트를 새로 만들어서 엶.

그 다음에 커맨드를 이용해서 장고 프로젝트를 하나 만듦.

django-admin startproject 프로젝트이름

위와 같이 입력하면 됨.

그러면 파이썬 전체 프로젝트 하위에 또 하나 폴더가 생김...

 

 

 

파이썬 프로젝트 'voteapp'

그 아래에 장고 프로젝트 'voteapp'

그 아래에 이 보트앱이라는 프로젝트의 설정 파일들을 답은 폴더 'voteapp'

 

이런 구조에 대해서 살짝만 설명하셨음.

 

가장 하위의 설정 파일 폴더 'voteapp'에 들어있는 파일들에 대해 다음과 같이 설명하심.

  • __init__.py : 해당 폴더를 파이썬에서 모듈로 인식하기 위해 필요한 파일을 지정. 처음에는 아무 코드도 없음. 다른 폴더 안에 있는 파이썬 코드에서 이 폴더를 참조할 때, 이 폴더 안의 모든 파일을 묶어서 하나의 모듈로 인식해야 하는데 이 때 필요한 것이 __init__.py 파일이라고 함.
  • settings.py : 여러 프로그램들의 설정값을 넣어두는 곳. 설정값들에 대해서는 차차 알아갈 것.
  • urls.py : 프로그램에서 사용할 url 경로들을 어떻게 처리할지 결정해서 적어두는 곳. 특정 url이 주어졌을 때 어떤 코드를 실행시킬지 정해놓는 것임.
  • asgi.py, wsgi.py : 웹 서버 실행 시 최초로 실행되는 엔트리 포인트. 얘네를 이해하기 위해서는 장고의 실행 방식, 실행 구조를 알아야 함. 우리가 만든 프로그램이 사용자의 요청을 바로 받는 것이 아님. 중간에 끼어있는 것이 있음! 그것이 바로 웹 서버 미들웨어(Apache, Nginx 등). 그런데 이 웹 서버 미들웨어는 파이썬이 아닌 다른 언어와 구조로 만들어진 소프트웨어임. 그래서 중간에 asgi와 wsgi가 껴서 일을 해줘야 함.

 

wsgi = Web Server Gateway Interface

wsgi는 장고에서 자동으로 생성되기 때문에 직접 수정할 일은 사실 별로 없음.

asgi = wsgi가 좀 옛날에 만들어진 놈이라... 특정 클라이언트의 요청(정확히 말하자면 비동기 요청)을 제대로 처리하지 못함. 이를 보완하기 위해 새로 등장한 것이 asgi이다.

 

 

용어 정리

우리가 만드는 것 = 웹 애플리케이션(줄여서 웹 앱)

 

클라이언트의 요청이 웹 애플리케이션에 전달되기 전에 가장 먼저 요청을 받는 것 = 웹 서버(Apache, Nginx 등)

 

일단 초반 실습 때에는 웹 서버 없이 장고 프로그램 자체에서 직접 요청을 받아 서버 역할을 하도록 하는 기능을 사용할 것임.

그러나 나중에 배포를 배울 때에는 웹 서버 미들웨어인 Nginx를 사용할 것임. 다 만들어진 것을 웹에 배포할 때는 웹 서버를 꼭 써야 함!!! 여러 요청을 동시에 처리하려면 필수임.