티스토리 뷰

Django

[Django] 서버 실행 과정

chief 2022. 9. 28. 12:00
반응형

🚀  들어가며...

  • AWS를 사용해보고, Jenkins를 이용하여 직접 배포도 진행해보면서 Django의 서버 실행 과정이 궁금하게 되었고, 간단하게 제가 이해한 바로 그 과정들을 분석해 정리하여 보았습니다.

 

📑 내용

Django파일에서 서버가 실행됨에 있어서 가장 중요한 파일은 wsgi.py 파일입니다.

application = get_wsgi_application()

gunicorn에서 이 명령어를 실행함으로써 장고서버가 실행되게 됩니다. (제가 저번글에서 잠깐 설명드렸던 handler/wsgi.py 파일까지 최종적으로 타고 들어갑니다. handler/wsgi.py 파일을 개인적으로 분석해 보시는것을 추천드립니다.)

처음에 저는 로컬에서 실행할때 manage.py를 설정하게 되어있어서 manage.py가 장고를 실행함에 있어서 중요한 파일인줄 알았지만, 공부해본 결과 manage.py는 단순히 run server 명령어 역활을 하고 wsgi.py파일이 없어서는 안되는 필수 파일이라는 것을 느꼈습니다.


그렇다고 manage.py가 없어도 된다는 말은 아닙니다.

실제 개발기나 운영기 환경에서 manage.py의 사용예시를 들어보면, ORM 등을 사용할 때 신규스키마가 추가되었다면, 배포 시 model.py를 manage.py를 이용하여 재실행 시켜줘야 적용이 됩니다. (Jenkins를 이용한다면 Jenkins에 명령어로 추가해야 합니다. 이 밖에도 manage.py를 사용하여 exe를 실행하는 과정들은 보통 Jenkins에 있습니다.)

 

이후에 base폴더 안에 저는 보통 settings라는 폴더를 하나 더 생성하고 그 안에 local_settings(로컬 세팅용), dev.py(개발기 세팅용), stage.py(운영기 세팅용)을 따로 생성해서 각자의 역활대로 세팅할 때 사용합니다.

default 세팅은 base.py에 세팅을 해두고 로컬/개발기/운영기 마다 서버가 달라지거나 DB ID/PW가 달라지는 부분, 또한 로그를 통해 실행여부를 확인하고 싶을때마다 각각의 세팅이 다르기 때문에 저는 위와 같은 방식을 선호합니다.


이후에 API 요청이 들어온다면 (url pattern이나 app name이 들어온다면), 여러분들이 알고계시는 그 과정 즉 urls.py에서 위에서 부터 일치하는 url을 찾게되고 API 요청을 실행하게 됩니다.

 

🙋🏻‍♂️ 후기

위 내용은 따로 다른 블로그를 참고하거나 그런것이 아니라 제가 직접 해보고 공부해본 결과를 토대로 작성하였기 때문에 내용이 100% 정확하지 않을 수 있습니다. 혹시 제가 적은 내용중에 오류사항이 있으면 적극적으로 피드백 부탁드려요! 으샤으샤 해서 함께 공부해봅시다!

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 29 30 31
글 보관함