백엔드 6

Django REST Framework: APIView, Generic View, ViewSet 차이점과 사용 예시

Django REST Framework(DRF)에서는 API를 구축하기 위해 다양한 방식의 뷰 클래스를 제공합니다. 그 중 대표적인 것이 APIView, Generic View(제네릭 뷰), 그리고 ViewSet입니다. 각 방식은 추상화 수준과 편의성이 다르며, 상황에 따라 알맞게 선택할 수 있습니다. 이번 포스트에서는 이 세 가지 뷰 클래스의 차이점과 사용 사례를 살펴보고, 코드 예시를 통해 언제 어떤 것을 사용하면 좋을지 설명합니다.APIView – 기본 클래스 기반 뷰APIView는 DRF에서 제공하는 가장 기본적인 클래스 기반 뷰(CBV)입니다. Django의 표준 View 클래스를 상속하여 만들어졌으며, REST API 개발에 필요한 다양한 기능(인증/권한, 요청 데이터 파싱, 예외 처리 등)을..

백엔드 2025.05.20

Django와 DRF에서 Custom Middleware 사용법

Django 프로젝트에서 Middleware의 기본 구조와 동작 순서Django의 **Middleware(미들웨어)**는 요청(request)과 응답(response)의 처리 과정에 끼어들어, 전역적으로 동작하는 플러그인 계층이라고 볼 수 있습니다. 미들웨어들은 Django 설정의 MIDDLEWARE 리스트에 정의된 순서대로 동작하며, 각각이 양파 껍질처럼 뷰(view)를 감싸는 계층으로 생각할 수 있습니다. 요청이 들어오면 MIDDLEWARE에 나열된 순서(위에서 아래)대로 각 미들웨어가 **요청 처리(request phase)**에 참여하고, 뷰가 처리된 후에는 반대로 **응답 처리(response phase)**를 거치면서 미들웨어들이 역순(아래에서 위)으로 호출됩니다. 이러한 동작 방식 때문에, ..

백엔드 2025.05.16

Django에서 HttpResponse와 DRF Response 차이점

Django HttpResponse를 이용한 커스텀 응답 생성Django에서 **HttpResponse**는 HTTP 응답을 반환하는 가장 기본적인 클래스입니다. 모든 Django 뷰 함수/메서드는 최종적으로 HttpResponse 객체 (혹은 그 하위 클래스)를 반환해야 합니다. HttpResponse는 django.http 모듈에 포함되어 있으며, 문자열이나 바이트 데이터를 인자로 받아 응답 객체를 생성합니다. 기본 콘텐츠 타입은 "text/html"이지만 필요에 따라 content_type 매개변수로 변경할 수 있습니다. 또한 상태 코드를 지정하려면 status 매개변수를 사용합니다 (기본값 200). 개발자는 HttpResponse를 통해 응답 본문, 헤더, 쿠키 등을 직접 구성할 수 있습니다.문..

백엔드 2025.05.15

Python과 Django 웹 개발 시작하기: 초보자를 위한 튜토리얼

Python과 Django는 웹 개발을 시작하려는 초보자에게 인기 있는 조합입니다. 이 튜토리얼에서는 Python 설치부터 가상환경 설정, Django 설치 및 “Hello, Django!” 페이지를 띄우기까지의 과정을 단계별로 알아보겠습니다. 각 단계마다 따라하기 쉬운 설명과 명령어, 그리고 예상 결과나 주의사항을 함께 제공합니다. 이 글에서는 Python 3.x 버전을 전제로 하며 (최신 Django는 Python 3.10 이상이 필요), Windows와 Mac 환경을 중심으로 설명합니다. 이제 시작해봅시다!1. Python 설치 (Windows/Mac)먼저 Python이 설치되어 있어야 합니다. Python이 이미 설치되어 있는지 확인하려면 터미널(또는 명령 프롬프트)을 열고 버전을 확인해보세요:$..

백엔드 2025.05.14

Flask vs FastAPI vs Django: 파이썬 웹 프레임워크 비교

웹 개발을 처음 시작할 때 어떤 파이썬 웹 프레임워크를 선택해야 할지 고민될 수 있습니다. 파이썬에는 Flask, FastAPI, Django 같은 인기 있는 웹 프레임워크가 있으며 각각 특징과 장단점이 다릅니다. 이 글에서는 입문자의 눈높이에서 세 가지 프레임워크를 소개하고, 서로 어떻게 다른지 비교해보겠습니다. 마지막으로 상황별로 어떤 프레임워크를 선택하면 좋을지에 대한 가이드도 제시하겠습니다.Flask – 가벼운 마이크로 웹 프레임워크Flask(플라스크)는 파이썬의 마이크로 웹 프레임워크로, 필요한 최소한의 기능만 제공하는 경량 프레임워크입니다. 기본적으로 아주 단순한 구조를 지녀서 필요한 기능을 자유롭게 추가하며 웹 애플리케이션을 만들 수 있습니다. Flask 자체에는 데이터베이스나 관리자 화면 ..

백엔드 2025.05.13

Django(장고) 웹 프레임워크 알아보기: 기본 개념, 프로젝트 구조와 장단점

웹 개발을 하다 보면 **Django(장고)**라는 이름을 한 번쯤 들어보셨을 것입니다. Django는 파이썬(Python) 기반의 강력한 웹 프레임워크로서, 보안성이 우수하고 유지보수가 편리한 웹사이트를 빠르게 개발하도록 도와줍니다. 이 글에서는 Django의 기본 개념과 특징, 프로젝트의 기본 구조, 그리고 주요 장점과 단점까지 살펴보겠습니다. 웹 개발에 입문한 초보자부터 어느 정도 경험이 있는 개발자까지 모두 이해할 수 있도록 친절하고 명확하게 설명해 드리겠습니다.Django란 무엇인가? (기본 개념과 특징)Django는 파이썬으로 작성된 오픈 소스 웹 프레임워크입니다. 2005년에 처음 공개된 이후 지속적으로 발전하여 현재도 널리 사용되고 있으며, Django 소프트웨어 재단(DSF)에 의해 관리..

백엔드 2025.05.12