미들웨어는 Django에서 요청(request)과 응답(response)을 처리할 때 개입해 특정 작업을 수행할 수 있도록 만들어진 플러그인 시스템이다. 요청이 서버에 도달하거나, 응답이 클라이언트로 전달되기 전에 미들웨어가 이를 가로채서 필요한 작업을 수행한 뒤 다음 단계로 넘긴다고 보면 된다. 이 글에서는 공식문서를 기반으로 Middleware가 무엇인지, 기본 동작 방식은 어떤지, 어떻게 Custom Middleware를 작성하는지에 대해 정리할 예정이다. 1. Middleware란?Django 공식 문서에서는 미들웨어를 다음과 같이 설명한다."미들웨어는 Django의 요청 및 응답 처리 과정에 훅(hook)을 제공하는 가볍고 저수준의 플러그인 시스템이다." 이를 통해 요청(request)이 들어오..
Django

Django를 통해 개발을 처음 접하다 보면 종종 Django로 만든 프로젝트가 바로 사용자와 직접 통신하며 모든 요청을 처리한다고 생각한다. 하지만 실제 배포 환경은 단순하지 않다. Django는 단독으로 모든 요청을 처리하기에 적합한 구조가 아니며, 웹 서버(Web Server)와 WSGI 서버 같은 중간 계층이 필요하다. 이러한 계층들은 요청을 효율적으로 처리하고, 애플리케이션의 성능과 안정성을 보장하며, 확장성을 제공하는 중요한 역할을 한다.이 글에서는 Django와 HTTP Request-Response Lifecycle을 통해 요청이 Django 내부에서 어떻게 처리되고 응답으로 이어지는지, 그리고 이 과정에서 웹 서버와 WSGI 서버가 어떤 역할을 하는지를 살펴보려 한다. 이러한 원리를 이해..
Django URL Dispatcher 란?Django는 웹 프레임워크로, 웹 애플리케이션 개발을 단순화하고 유지보수를 쉽게 만든다. 그중 URL Dispatcher는 사용자가 웹사이트에서 특정 URL을 요청했을 때, 해당 요청을 적절한 뷰(view)와 연결하는 Django의 핵심 기능이다. 오늘은 Django의 URL Dispatcher가 어떻게 동작하는지, 왜 중요한지, 그리고 효과적으로 사용하는 방법을 Django 공식 문서를 기반으로 정리해 볼 예정이다. Django의 URL Dispatcher는 사용자가 웹사이트에서 특정 URL을 요청했을 때, 해당 요청을 처리할 적절한 뷰(view)와 연결해주는 시스템이다. 웹 애플리케이션의 URL 관리는 개발자가 코드를 관리하기 쉽게 만드는 중요한 요소이기 ..

내가 Django 처음 배울 땐 settings.py가 진짜 무서웠다. 괜히 잘못 건드렸다가는 프로젝트가 아예 안 돌아갈 것 같았다. 근데 이번에 이 글 준비하면서 다시 보니까 그때 뭐가 그렇게 어려웠나 싶다. 사실 보면 별 거 없고 말 그대로 설정하는 파일일 뿐인데, 그땐 서버에 대한 기초 지식이 부족해서 더 어렵게 느껴졌던 것 같다. 그래서 이번 기회에 Django를 다시 제대로 공부해보고, Django를 입문하는 사람들에게 조금이나마 도움이 됐으면 하는 마음으로 이 글을 써본다. Django 프로젝트의 settings.py 파일은 프로젝트의 전반적인 설정을 정의하는 핵심 파일이다. 대부분 입문용 웹 개발로 Django를 배우기 때문에, 시간 내에 기능을 구현하고 간단하게 코드를 작성하는 경우에는 s..

이 글은 피로그래밍 22기 Django 세션을 위해 작성되었습니다.1. Django User Model이란?Django의 User 모델은 사용자 인증과 관리를 위해 제공되는 기본 모델이다. 이 모델은 django.contrib.auth 앱에 포함되어 있으며, 사용자의 계정 정보를 저장하고 인증을 처리하는 역할을 한다.2. Django User Model 구조class User(AbstractUser): """ Users within the Django authentication system are represented by this model. Username and password are required. Other fields are optional. """ class..

Django를 사용해 웹 애플리케이션을 개발할 때, 데이터베이스의 구조를 유지하고 변경하는 것은 매우 중요하다. 마이그레이션은 데이터베이스 테이블을 생성, 수정, 삭제하는 과정을 자동화하는 기능으로, 이 기초적인 부분을 잘만 이해해 놓는다면 개발할 때 매우 편할 것이다. 따라서 이번 글에서는 Django에서 마이그레이션과 같이 알아두면 좋은 개념들(Sqlite, 마이그레이션, 마이그레이션 롤백,Django Shell 등), MySQL을 Django 프로젝트에 연동하는 과정을 설명하려 한다. Django Migration이란?마이그레이션(migration)은 Django에서 데이터베이스의 스키마(구조)를 관리하고 변경하는 방법이다. 데이터베이스 테이블을 생성, 수정, 삭제하는 과정을 자동화해 준다.Djan..

이 글은 피로그래밍 22기 Django 세션을 위해 작성되었습니다.오늘 세션의 내용은 아니지만 제가 19기에 진행한 Django 기초 세션 자료를 다시 정리해 봤습니다. 오늘 세션을 위해 간단하게 읽어만 주세요! 웹 개발의 시작웹 개발을 배우기 위해서는 기본적인 웹 동작 원리를 이해하는 것이 필요하다. 웹이 어떻게 동작하는지 알면 클라이언트와 서버의 역할을 명확히 이해하고, 개발 과정에서 발생할 수 있는 문제를 더 쉽게 해결할 수 있다. 따라서 이번 글에서는 클라이언트-서버 구조, 프론트엔드와 백엔드의 차이를 가볍게 다룬 뒤 Django에 대해서 알아볼 예정이다. 웹 동작 흐름웹의 기본 동작은 클라이언트와 서버 간의 요청과 응답으로 이루어진다. 브라우저가 클라이언트 역할을 하여 서버에 요청을 보내면, 서..