특강

[Django 4일차] Django를 백엔드 프레임워크로 활용하기 - DRF 입문 가이드 1/4 (short_url 프로젝트)(250515)

Chansman 2025. 5. 15. 12:32

Django를 백엔드 프레임워크로 활용하기 - DRF 입문 가이드

1. 🌐 HTTP, JSON, HTML의 기본 개념 이해

  1. HTTP 요청 구조
    • 메소드(GET, POST, DELETE 등) + URL 조합
    • URL은 "리소스"(Resource), 즉 데이터를 의미함
  2. 선택 요소: Request Body
    • 필수는 아니며, 필요 시 본문에 데이터 포함 가능
    • JSON이 주로 이 본문(Request Body)에 사용됨
  3. JSON의 정체
    • JavaScript Object Notation
    • 언어 독립적이며 직관적인 데이터 표현 형식
    • XML, YAML 등 다양한 형식을 대체할 수 있음
  4. 관용적 사용
    • 웹에서는 HTTP 요청 및 응답에서 JSON을 관용적으로 사용함

2. 📝 JSON의 역할과 응답 형식

  1. 요청과 응답 모두에 사용됨
    • 요청 본문(Request Body)
    • 응답 본문(Response Body)
  2. 실제 사용 예시
    • 성공 응답: {"result": "success"}
    • 유저 정보 요청 응답: {"name": "Elon", "age": 50}
  3. 주요 포인트
    • JSON은 데이터 전달 형식 중 표준처럼 사용되고 있음
    • 다양한 상황에서 활용됨 (API 응답, 설정 파일 등)

3. 🌐 HTML의 역할과 Django의 응답 처리

  1. HTML이란?
    • 웹페이지의 구조를 정의하는 마크업 언어
    • HyperText Markup Language
  2. Django에서의 사용 방식
    • render(request, 'template.html') 형태로 HTML 응답
    • ex) 홈 페이지: GET 요청 → home.html 반환
  3. 리다이렉트 구조
    • POST → URL 생성 처리 후 → redirect('home')
    • 결국 home.html을 다시 반환
  4. 외부 URL 리디렉션
    • 단축 URL 기능 → 실제 URL(네이버 등)로 이동시킴

4. 🔄 Django를 백엔드 프레임워크로 활용하기

4.1 ❌ 기존 방식의 한계

  • 지금까지 Django를 풀스택 프레임워크처럼 사용함
    • 프론트 + 백엔드 모두 처리 → 비효율적
  • HTML 기반 응답만 가능 → 표현 제한적
  • JS 없이 DELETE 등 HTTP 메소드 제약 존재

4.2 ✔️ 백엔드 전용 활용 방식

  • 대부분 회사는 Django를 백엔드 전용으로 사용
  • 프론트엔드는 React/Vue 등 별도 구축
  • Django는 JSON 형식으로 데이터만 응답

4.3 🚀 JSON 응답 기반 API 구조

  • Django가 HTML 대신 JSON만 응답
  • 프론트엔드는 JS로 화면 구성
  • 예시 응답: {"name": "Elon", "age": 50} → JS로 렌더링
  • 백엔드는 UI 걱정 X → 로직과 응답에만 집중

4.4 ⛔ 요청과 라우팅의 선행 조건

  • 클라이언트가 요청을 보내기 전:
    • 서버는 라우팅과 기능 등록 필요
    • 미등록 시: 404 NOT FOUND 발생
  • ex) POST /users → 회원가입 기능 미등록 시 오류 발생

5. 📱 API의 역할과 중요성

  1. API의 정의
    • Application Programming Interface
    • 클라이언트가 서버 기능을 호출하는 "접점"
  2. 역할과 흐름
    • 사용자 → UI → 클라이언트 → API → 서버 기능 호출
    • API는 서버가 클라이언트에 제공하는 인터페이스
  3. 잘 만든 API의 조건
    • 명확한 목적
    • 부작용 없는 설계
    • 일관성 있고 사용하기 쉬운 구조
  4. DRF의 도입 이유
    • Django REST Framework: Django의 API 전용 확장 도구
    • 빠르고 표준화된 API 개발 가능
    • 기존 프로젝트에 DRF 도입해 리팩토링 실습 예정

🚀 실습 준비: DRF 설치

pip install djangorestframework
  • 설치 후 INSTALLED_APPS에 rest_framework 추가 필요
  • DRF 기반 API 개발을 시작할 준비 완료!

🌟 마무리 요약

  • JSON = 데이터 형식 / HTML = 화면 구조 / HTTP = 통신 규약
  • Django는 백엔드 전용으로도 충분히 강력함
  • DRF는 Django를 RESTful API 서버로 전환하는 핵심 도구
  • 앞으로는 템플릿 없이 데이터를 응답하는 방식으로 전환
  • 프론트와 백엔드의 분리 개발 → 현대 웹 개발의 표준