[Django] 장고에 대한 기본적인 고찰

신동혁·2023년 9월 12일
0

이번에 좋은 기회로 학교 수업에서 LG전자와 협업 프로젝트를 진행하게 되었다. 나는 이번 프로젝트에서 백엔드를 맡았고, 앱 프레임워크 3가지 중 고민하다가 결국 Django를 골랐다.

이번 글에서는 Django에 대한 기본 지식들을 정리해 볼 것이다.

프로젝트 만들기

초기 설정에 신경을 써야 한다고 한다.
코드 저장할 디렉토리로 이동 후에 ,

$ django-admin startproject 설정할 디렉토리 이름

을 수행하면 된다.
django, test 같은 이름은 충돌을 야기할 수 있기 때문에 피해야 한다.

위의 명령어를 수행하면 여러 py 파일들이 생성된다.

mysite/
manage.py
mysite/
init.py
settings.py
urls.py
asgi.py
wsgi.py

로 구성되는데, 몇 가지를 자세히 탐구해 보자

manage.py : Django 프로젝트와 다양한 상호작용을 하는 command line의 utility. Django를 실행하는 관리자 기능을 담당함 (ex. runserver, startapp, makemigrations, migrate ...)

mysite/setting.py : Django 프로젝트의 환경/구성 저장함

mysite/urls.py : Django 프로젝트의 URL선언을 저장함

mysite/asgi.py and mysite/wsgi.py : Django 프로젝트 서비스를 위한 ASGI / WSGI 호환 웹 서버의 진입점

주로 쓰는 파일은 manage.py , setting.py, urls.py 정도인 것으로 일단은 이해했다.

개발 서버

서버 돌아가는지 볼려면

$ python manage.py runserver

을 실행시키면 된다.
기본적으로 내부 IP 8000번 포트를 띄우게 되는데, 포트를 변경하고 싶다면

$ python manage.py runserver 8080

을 사용하면 되고, 서버의 IP를 변경하고 싶다면

$ python manage.py runserver 0.0.0.0:8000

의 형식으로 사용해 보자

프로젝트? 앱? 뷰?

전체적인 구조에 대해 볼 수 있는 그림이 있어서 가져왔다. 출처는 생활코딩 님의 영상..!

실제로 어플리케이션을 프로젝트 안에서 구현하는 느낌이 아닌, app 이라고 하는 작은 단위를 만들어 실제로 구현하게 된다. 각각의 app 안에는 역시 urls.py 가 담겨져 있을 것이다.
app 안에는 view 라는 것을 만들 수 있고, 여러 가지 함수를 만들어 어플리케이션의 구체적인 구현을 할 수 있다.

전체적인 로직을 살펴보자

사용자가 접속을 하게 되면 여러 경로로 들어올 것인데 , 즉 여러 포트로 들어올 수 있는데,
각각의 경로를 누구에게 위임할 것인가 ?urls.py 의 수정을 통해 결정할 수 있다.
app 안에 있는 urls.py 에서도 view 안에 있는 적당한 함수로 위임이 될 것이다.

이후 구체적인 작업을 해나가려면 데이터베이스를 사용해야 한다. 하지만 데이터베이스에 직접 접속하는 것이 아니라 model 이라는 굉장히 편리한 수단을 통해 DB를 사용하게 된다.
이후 프론트 쪽으로 보낼 때 html/json/xml 등을 통해 데이터를 보내줄 수 있다.

Routing

라우팅이라는 개념은 Django 이외에 어떤 웹 프레임워크를 사용한다 하더라도 꼭 등장하는 중요한 개념 중 하나이다.
사용자가 접속한 경로를 누가 처리할 것인가? 에 대한 솔루션이라고 할 수 있겠다.

profile
꺾이지 않는 마음

0개의 댓글