🚀 들어가며... AWS를 사용해보고, Jenkins를 이용하여 직접 배포도 진행해보면서 Django의 서버 실행 과정이 궁금하게 되었고, 간단하게 제가 이해한 바로 그 과정들을 분석해 정리하여 보았습니다. 📑 내용 Django파일에서 서버가 실행됨에 있어서 가장 중요한 파일은 wsgi.py 파일입니다. application = get_wsgi_application() gunicorn에서 이 명령어를 실행함으로써 장고서버가 실행되게 됩니다. (제가 저번글에서 잠깐 설명드렸던 handler/wsgi.py 파일까지 최종적으로 타고 들어갑니다. handler/wsgi.py 파일을 개인적으로 분석해 보시는것을 추천드립니다.) 처음에 저는 로컬에서 실행할때 manage.py를 설정하게 되어있어서 manage.py..
🚀 들어가며... 저번 포스팅에서 장고에서의 static files를 다루는 방법에 대해 알아보았습니다. 이번 포스팅에서는 실제로 파일 업로드를 nginx와 uswgi를 이용하여 실행해보고 기록해보았습니다. 📑 내용 Django 에서 파일(이미지)를 업로드하기 위해서는 FileField 또는 ImageField 를 사용하면 됩니다. 실제 rest_framework 를 사용하여 테스트했보았습니다. Django Test Project 만들기 테스트를 위해 간단한 프로젝트를 만듭니다. (Pycharm 을 사용한다면 더 쉽게 프로젝트를 만들 수 있습니다.) $ django-admin.py startproject firstsite 주로 Django project 에서는 startapp 명령어를 통해 app 을 만..
🚀 들어가며... 웹서버가 하는일 중에서는 정적인 요청들을 처리해주는 일이 있습니다. 프론트서버가 따로 있다고 가정해봅시다. react로 프론트 로직을 만들고, node.js로 만들어진 프론트서버를 이용한다고 하면, Client가 정적인 요청을 하면 Nginx가 node.js로 라우팅처리를 하여 프론트서버에서 처리하게끔 처리가 가능합니다. 프론트서버가 따로 없고, Nginx 와 WSGI와 Django로 이루어져 있는 백서버로만 이루어져 있다면, 즉 장고에서는 정적인 파일의 요청이 들어오면 어떻게 처리하는지 막연히 궁금하여 정리해보았습니다. (물론 저는 이러한 처리들을 다 프론트 서버 즉 react로 구현해왔기 때문에 실제 사용한 적은 잘 없었습니다.) 📑 내용 # static 파일이란 Static파일이란..
🚀 들어가며... 금일 포스팅에서는 장고의 로깅(logging)에 대해 알아보겠습니다. 📑 내용 장고의 로깅은 기본적으로 파이썬의 로깅 체계를 그대로 따르면서 일부만 추가되었습니다. (파이썬의 로깅 모듈 : 로거, 핸들러, 필터, 포맷터 ) 또한, 장고의 runserver나 웹 서버에 의해 장고가 실행될 때 장고는 settings.py 파일에 정의된 LOGGING_CONFIG, LOGGING 항목을 참고하여 로깅에 관련된 설정을 처리합니다. settings.py 파일에 관련 항목이 없더라도 디폴트 로깅 설정으로 처리됩니다. 따라서 장고의 로깅은 실행되는 시점부터 준비되어 있으므로, 항상 로그를 기록하는 것이 가능한 상태입니다. # 로거 로거(Logger): 로깅 시스템의 시작점으로, 로그 메시지를 처리하..
🚀 들어가며... 제가 맡고있는 서비스는 기본적으로 회계프로그램이기 때문에 join 하는 테이블도 많고 쿼리문이 복잡하여 긴 쿼리문은 500줄이 넘어갑니다. 이러한 이유로 최초에 서비스 개발시에 Django ORM으로 개발을 시도하였다가 쿼리가 너무 복잡하여 포기하고 Postgresql을 이용하여 일반적인 쿼리문을 작성하여 개발하는 방식으로 바꾸었습니다. 하지만, Backend 개발자로써 ORM을 안쓴다고 아예 손을 놓아버리면 안된다고 생각을 하여.. (사실 ORM을 몰라서 안쓰는것과 ORM을 알고있지만 이런저런 이슈사항으로 쓰지 못하는 경우는 천지차이라고 생각합니다..) 개인공부를 하면서 차곡차곡 개념을 쌓아보고자 합니다. 📑 내용 # Django에서의 ORM 기본적인 동작원리는 아래 그림을 통해 알아..
🚀 들어가며... 이번 포스팅에서는 Django의 전체적인 동작 흐름에 대해 알아보는 시간을 가져보겠습니다! 📑 내용 웹 브라우저에서 어떤 이벤트를 요청했다고 가정하겠습니다. 이벤트가 발생하면 장고 서버로 request가 들어오게 됩니다. 장고 서버로 들어온 이벤트에 대해 URL 디스패처가 URL을 분석해서, 적합한 VIEW로 이 요청을 보냅니다. VIEW는 사용자 요청을 받아 데이터 베이스 어디에 접근해서 어떤 데이터를 가공할것인지 MODEL에게 알려줍니다. MODEL은 DB와 커넥션을 해서 필요한 DB 연산을 처리합니다. DB가 다시 모델로 결과값을 보내주면 모델이 이것을 뷰로 전달합니다. 뷰는 우리에게 보내줄 데이터를 다시 TEMPLATE에게 전달해줍니다. TEMPLATE는 .js나 .html과 같..
- Total
- Today
- Yesterday
- django
- lv2
- JS
- container
- This
- PostgreSQL
- data formatting
- docker
- Named export
- django ORM
- lv1
- ORM
- static files
- Python
- JavaScript
- Linux
- Default export
- generator expression
- Master & Slave
- db
- union-find
- Algorithm
- 탐욕법
- uSWGI
- Greedy Algorithm
- list
- programmers
- SQL
- react
- MVT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |