콘텐츠로 이동

아키텍처 및 장별 안내#

2024 iThome 철인 대회

이 글은 Django Ninja 시리즈 튜토리얼의 2번째 글이에요.

지난 글에서는 시리즈의 전체적인 방향을 설명했어요. 이제 더 깊이 들어가서, 시리즈의 구조와 각 챕터의 구성을 자세히 소개해 드릴게요.

이 글이 전체 시리즈의 청사진이라고 할 수 있죠.

일반적으로 구조 소개는 (글이 있다면) 첫 번째 글의 후반부에 바로 배치되곤 하지만, 저는 별도의 글로 분리하기로 결정했어요.

이유는 간단해요. 제가 전체 튜토리얼 구조에 상당히 많은 신경을 썼고, 독자 여러분께 포괄적인 개요를 제공하고 싶었기 때문이에요. 이렇게 하면 빠르게 상황을 파악하고 자신이 현재 어떤 주제의 어느 부분을 배우고 있는지 이해하는 데 도움이 될 거예요.

말이 너무 길었네요. 바로 하나씩 소개해 드릴게요.

GitHub 예제 프로젝트#

👉 Django-Ninja-Tutorial


본 시리즈는 총 8개의 챕터로 나뉘며, 내용이 많기 때문에 3장에만 세부 절(섹션)을 두었어요.

각 챕터에 대한 소개는 다음과 같아요. (각 글의 제목과 내용은 약간의 조정이 있을 수 있지만, 전체적인 구조는 변하지 않아요)

제1장: 소개와 Django Ninja 개요#

이 시리즈의 주요 목적, 위치, 적합한 대상 독자 및 Django Ninja를 배우는 이유를 소개하며 시작해요.

구조 편에서는 시리즈의 배치와 구성, 각 글의 주요 내용 및 학습 순서를 설명해요.

마지막으로 Django REST framework와의 기본 개념 비교 등 서로의 위치와 차이점을 포함하여 Django Ninja를 독자에게 소개해요.

제2장: 예제 프로젝트와 환경 설정#

시리즈의 예제 프로젝트인 Django-Ninja-Tutorial을 소개하고, 구체적인 코드 변경 사항을 통해 학습 과정의 참고 자료로 활용해요. (프로젝트가 유용하다고 생각하시면, 망설이지 말고 🌟를 눌러주세요! 🥰)

예제 프로젝트: Django-Ninja-Tutorial

예제 코드는 새로운 기술을 배우는 데 있어 좋은 멘토이자 훌륭한 친구이며, 저의 피땀 어린 결정체이기도 하죠 😭

독자가 실제 개발 환경을 경험할 수 있도록 프로젝트에서 사용하는 Python 개발 도구도 소개할 거예요.

마지막으로, 로컬 환경에서 프로젝트 실행할 수 있도록 차근차근 단계별로 안내해 드릴게요.


제3장: Django Ninja 기본기#

Django Ninja의 핵심 부분으로, 모든 API 개발자가 반드시 익혀야 할 기본기예요.

이 장은 총 세 부분으로 나뉘어요: 라우팅, 요청, 응답.

제1절: 라우팅 (Routers)#

엔드포인트(endpoints)와 라우팅은 API의 출발점이에요.

Django Ninja의 라우팅 설정 방식은 기존 Django와 매우 달라요. 따라서 API 개발 학습의 진입점으로서 라우팅을 가장 먼저 다루기로 했어요.

제2절: 요청 (HTTP Request)#

라우팅 다음은 HTTP 요청이에요. Django Ninja가 요청을 처리하는 세 가지 핵심인 경로 매개변수(Path Parameters), 쿼리 매개변수(Query Parameters), 요청 본문(Request Body)에 대해 이야기해요.

가장 중요한 것은 본문(body)이며, 데이터를 수신하고 검증하기 위해 Django Ninja Schema(즉, Pydantic BaseModel)를 사용할 거예요.

제3절: 응답 (HTTP Response)#

요청 다음은 응답이에요. 응답에서도 여전히 Schema를 사용하지만, 요청보다 변화가 더 다양해요.

이 절에서는 응답의 기본 구조, 처리 방법, 중첩된(nested) Schema, 그리고 Resolver 메서드에 대해 소개할 거예요.


제4장: API 문서#

Django Ninja가 어떻게 요청과 응답을 처리하는지 익히고 나면, 남은 또 하나의 핵심은 바로 API 문서예요.

API 문서의 품질과 가독성은 API 사용자에게 매우 중요해요. 이 장에서는 Django Ninja가 API 문서 자동 생성에 어떻게 활용되는지 소개하고, 제가 생각하는 몇 가지 훌륭한 모범 사례를 공유할 예정이에요.

제5장: 데이터 검증과 오류 처리#

데이터 검증과 오류 처리는 API의 안정성과 신뢰성과 직결돼요. 이 장에서는 Django Ninja에서 데이터를 효과적으로 검증하고 오류를 잡아내어 합리적이고 올바른 응답을 제공하는 방법을 탐구해요.


제6장: API 고급 기능#

비록 입문 과정이지만, API의 자주 쓰이는 고급 기능을 소개할 필요가 있어요. 이러한 기술들은 대규모 프로젝트에서 겪는 전형적인 문제를 해결하는 데 도움이 될 거예요.

각 기능의 구현을 완료할 수 있도록 안내하는 동시에, 그 개념과 응용 시나리오를 보여주는 데 중점을 둘 거예요. 이 내용을 바탕으로 더 깊이 스스로 학습하고 응용해 보실 수 있답니다.

제7장: 인증과 단위 테스트#

이 장에서는 백엔드 프로젝트에서 빼놓을 수 없는 주제를 다룰 거예요. 핵심 부분이 Django Ninja로 구현되지는 않지만 백엔드 개발자라면 반드시 익혀야 하는 기술이에요.

제8장: 시리즈 회고와 완주 후기#

전체 시리즈를 간단히 되돌아보고, 이번 철인 대회에 참가하면서 느낀 점과 감상을 공유해요.


맺음말#

이 가이드를 통해 전체 시리즈의 구조를 명확히 이해하셨을 거예요. 앞으로 나올 글들은 모두 이 청사진을 따라 차근차근 Django Ninja의 세계로 안내할 거예요.

다음 글에서는 본격적으로 Django Ninja를 소개하고, 오랜 역사를 자랑하는 Django REST framework와 비교하며 두 프레임워크의 주요 기능 차이와 적합한 사용 시나리오를 알아볼게요.