특강
[Django 4일차] Django를 백엔드 프레임워크로 활용하기 - DRF 입문 가이드 1/4 (short_url 프로젝트)(250515)
Chansman
2025. 5. 15. 12:32
Django를 백엔드 프레임워크로 활용하기 - DRF 입문 가이드
1. 🌐 HTTP, JSON, HTML의 기본 개념 이해
- HTTP 요청 구조
- 메소드(GET, POST, DELETE 등) + URL 조합
- URL은 "리소스"(Resource), 즉 데이터를 의미함
- 선택 요소: Request Body
- 필수는 아니며, 필요 시 본문에 데이터 포함 가능
- JSON이 주로 이 본문(Request Body)에 사용됨
- JSON의 정체
- JavaScript Object Notation
- 언어 독립적이며 직관적인 데이터 표현 형식
- XML, YAML 등 다양한 형식을 대체할 수 있음
- 관용적 사용
- 웹에서는 HTTP 요청 및 응답에서 JSON을 관용적으로 사용함
2. 📝 JSON의 역할과 응답 형식
- 요청과 응답 모두에 사용됨
- 요청 본문(Request Body)
- 응답 본문(Response Body)
- 실제 사용 예시
- 성공 응답: {"result": "success"}
- 유저 정보 요청 응답: {"name": "Elon", "age": 50}
- 주요 포인트
- JSON은 데이터 전달 형식 중 표준처럼 사용되고 있음
- 다양한 상황에서 활용됨 (API 응답, 설정 파일 등)
3. 🌐 HTML의 역할과 Django의 응답 처리
- HTML이란?
- 웹페이지의 구조를 정의하는 마크업 언어
- HyperText Markup Language
- Django에서의 사용 방식
- render(request, 'template.html') 형태로 HTML 응답
- ex) 홈 페이지: GET 요청 → home.html 반환
- 리다이렉트 구조
- POST → URL 생성 처리 후 → redirect('home')
- 결국 home.html을 다시 반환
- 외부 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의 역할과 중요성
- API의 정의
- Application Programming Interface
- 클라이언트가 서버 기능을 호출하는 "접점"
- 역할과 흐름
- 사용자 → UI → 클라이언트 → API → 서버 기능 호출
- API는 서버가 클라이언트에 제공하는 인터페이스
- 잘 만든 API의 조건
- 명확한 목적
- 부작용 없는 설계
- 일관성 있고 사용하기 쉬운 구조
- 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 서버로 전환하는 핵심 도구
- 앞으로는 템플릿 없이 데이터를 응답하는 방식으로 전환
- 프론트와 백엔드의 분리 개발 → 현대 웹 개발의 표준