강의 목차

이 강의는 Django REST Framework를 활용한 실무 중심의 API 서버 개발 가이드입니다. 각 강의는 3분 내외로 구성되어 있으며, 클린 API 설계 7대 원칙(예측 가능성, 명확성, 효율성, 보안성, 유지보수성, 신뢰성, 개발자 경험)을 체득하여 함께 일하고 싶은 동료로 성장하는 것이 목표입니다.

📚 전체 커리큘럼

1. 강의 소개

Django DRF를 배워야 하는 이유와 이 강의에서 무엇을 배울 수 있는지

2. 프로젝트 설정

주요 내용:

  • 개발/테스트/운영 환경별 settings.py 분리 및 관리 전략

  • django-environ이나 AWS Parameter Store를 활용한 민감 정보 안전 관리

  • structlog를 이용한 구조화된 로깅 시스템 구축

  • 확장성을 고려한 커스텀 유저 모델 설계 및 구현

  • 프로젝트 초기 설정 시 고려해야 할 견고한 아키텍처 구성

3. 인증 및 권한

주요 내용:

  • Simple JWT를 활용한 토큰 기반 인증 시스템 구현

  • 서버 간 통신을 위한 API Key 인증 방식 설계

  • 여러 인증 방식을 한 번에 지원하는 멀티 인증 시스템 구축

  • DRF의 인증/권한 처리 흐름 완전 이해

  • 객체 수준의 권한(Object-level Permission) 직접 구현

  • 세밀한 권한 제어를 통한 보안 강화

4. Views & Viewsets

주요 내용:

  • APIView와 ViewSet의 명확한 차이점 이해 및 상황별 선택 기준

  • ViewSet 내부 동작 원리 완전 이해

  • @action 데코레이터를 활용한 CRUD 외 깔끔한 추가 엔드포인트 구현

  • 커스텀 CRUD 로직 구현 방법

5. Serializers

주요 내용:

  • 읽기/쓰기 필드 분리를 통한 API 보안성 향상

  • 중첩된 객체 한 번에 처리하는 Writable Nested Serializer 구현

  • SerializerMethodField의 성능 문제 원인 분석 및 해결 방법

  • Serializer 재사용성을 높이는 고급 설계 패턴

  • 성능 최적화 기법

6. API 기능 구현

주요 내용:

  • CursorPagination을 이용한 부드러운 무한 스크롤 구현

  • django-filter를 활용한 강력하고 유연한 필터링 시스템

  • 사용자 정의 정렬 기능으로 데이터 탐색 편의성 제공

  • Throttling을 통한 API 사용량 제어

  • API 버전 관리 전략

  • 파일 업로드 처리

  • WebSocket 연동

7. Models(ORM)

주요 내용:

  • N+1 문제의 원인 분석 및 select_related/prefetch_related로 해결

  • Prefetch 객체를 이용한 복잡한 관계 데이터 최적화

  • Subquery를 활용한 고급 쿼리 최적화 기법

  • F 객체와 Q 객체를 활용한 동적 쿼리 작성법

  • 데이터베이스 수준에서의 계산 처리로 성능 향상

  • bulk_create, bulk_update로 대량 데이터 효율적 처리

  • ORM 쿼리 분석 도구 활용법

8. API 문서화

주요 내용:

  • drf-spectacular로 자동 문서 생성 및 커스터마이징

  • API 문서화 자동화 및 개발자 경험 향상

  • OpenAPI 스펙 활용

9. 성능 최적화

주요 내용:

  • 캐싱 전략을 통한 응답 속도 개선

  • 스트리밍 응답 처리

  • Connection Pooling을 통한 데이터베이스 연결 최적화

  • 비동기 View 구현

  • Raw Query 활용

  • 메모리 사용량 모니터링 및 최적화

10. 테스팅

주요 내용:

  • APITestCase를 활용한 체계적인 API 테스트 패턴

  • factory-boy와 Faker를 이용한 실제와 유사한 대량 테스트 데이터 생성

  • Mock과 patch를 이용한 외부 API 의존성 격리 및 안정적 테스트

  • 테스트 커버리지 향상 전략

  • locust를 활용한 API 부하 테스트 및 성능 병목 지점 파악

  • 테스트 자동화를 통한 신뢰성 있는 개발 프로세스 구축

11. 배포 및 운영

주요 내용:

  • Docker와 Docker Compose로 개발/운영 환경 불일치 문제 해결

  • 컨테이너 기반 일관된 환경 구축 전략

  • GitHub Actions를 이용한 테스트부터 배포까지 완전 자동화된 CI/CD 파이프라인

  • 무중단 배포 전략 및 롤백 시스템 구축

  • 배포 환경별 설정 관리 및 보안 고려사항

  • Sentry를 통한 실시간 에러 추적 및 알림 시스템 구축

  • Prometheus와 Grafana를 활용한 API 성능 지표 대시보드 구성

12. 유틸 및 실무 팁

주요 내용:

  • Celery를 활용한 비동기 작업 처리

  • Signals 활용법

  • 커스텀 미들웨어 구현

  • GraphQL 연동

  • API 보안 모범 사례 및 취약점 방지

  • CORS 설정 및 크로스 도메인 요청 관리

  • Rate Limiting을 통한 API 남용 방지

  • 대규모 서비스에서의 DRF 활용 사례

  • 마이크로서비스 아키텍처에서의 API 설계

13. 마치며

강의 요약 및 클린 API 설계 원칙, 추가 학습 로드맵

Last updated