콘텐츠로 이동

API 예제 프로젝트 소개#

2024 iThome 철인 대회

이 글은 Django Ninja 입문 가이드의 4번째 글이에요.

1장에서는 Django Ninja를 전반적으로 소개하고 Django REST framework와의 주요 차이점을 분석했어요.

이제 Django Ninja에 대해 어느 정도 이해하셨을 거라고 믿어요.

다음으로 2장: 프로젝트 소개 및 설정으로 들어갈게요.

본 장의 핵심#

CRUD API 예제 프로젝트를 통해 실전에서 Django Ninja의 개념을 적용할 수 있도록 도와드릴게요.

본 장에서는 모델 설계와 실제 세계의 대응을 포함하여 프로젝트 개념을 소개할 거예요. (4편)

이어서 프로젝트에서 사용하는 Python 개발 도구를 소개할게요 (5편). 마지막으로 프로젝트를 로컬에 설치하고 정상적으로 실행되도록 직접 안내해 드릴게요 (6편).

나머지 API 관련 코드는 3장에서 차례대로 소개하고 실습할 거예요.

GitHub 예제 프로젝트#

👉 Django-Ninja-Tutorial


닌자 포럼#

Django Ninja를 더 잘 이해하고 실제로 조작해 볼 수 있도록 예제 프로젝트인 닌자 포럼을 설계했어요.

이것은 개발자들이 Django Ninja 사용 경험을 교류하는 게시판이에요 (닌자가 되는 방법을 다루지 않아요).

닌자 포럼에 오신 것을 환영해요

이것은 프로젝트의 GitHub 주소예요. 북마크에 추가하여 언제든지 코드를 참조하고 학습 내용을 잊지 않도록 하세요.

이 프로젝트는 Django Ninja를 사용하여 API를 구축하는 방법을 안내하고, 그 안의 지식과 실습을 보여줄 거예요.

설계 이념#

프로젝트의 주제는 '닌자 포럼'으로, 사용자가 글을 쓰고 댓글을 남기는 핵심 기능을 갖춘 기본적인 게시판 시스템이에요.

이 설계는 간단하면서도 실용적이어서, 너무 많은 부가 기능에 주의를 빼앗기지 않고 Django Ninja 핵심에 집중할 수 있게 해줘요.

포럼의 두 가지 기본 기능은 우리가 API를 구현하는 핵심이기도 해요.

  • 사용자 시스템: 사용자는 가입, 로그인, 로그아웃을 하고 자신의 글을 볼 수 있어요.
  • 게시글 시스템: 사용자는 글을 작성, 수정, 삭제할 수 있어요.

이 프로젝트를 통해 Django Ninja를 사용하여 관련 API를 빠르게 구축하는 방법을 배울 수 있을 거예요.

우리는 '글 작성'을 중심으로 단계별로 다양한 API를 구현할 거예요.


3가지 설계 원칙#

'예제' 프로젝트로서 닌자 포럼의 설계 목적은 실제 조작을 통해 Django Ninja의 기본 개념과 응용을 깊이 이해하도록 하는 데 있어요.

따라서 우리는 너무 많은 세부 사항에 방해받지 않고 학습에 집중할 수 있도록 프로젝트 내용을 튜토리얼에 필요한 범위로 엄격하게 제한할 거예요.

간단히 말해, 프로젝트는 다음 세 가지 설계 원칙을 따라요.

1. 최소화 설계 원칙#

'최소화 설계'란 가능한 한 모든 구현이 튜토리얼에 꼭 필요한 것이 되도록 보장하는 것을 의미해요.

우리는 심지어 같은 API를 예제로 반복 사용하여 다른 단계의 기능 구현을 보여줄 거예요.

이러한 설계는 튜토리얼 내용을 간결하게 유지하면서도 Django Ninja의 다양한 특성을 점진적으로 깊이 있게 다룰 수 있게 해줘요.

2. 이해하기 쉬운 코드 구조#

예제 프로젝트의 코드 구조는 간단명료해야 하며, 독자가 각 부분의 논리와 연관성을 빠르게 이해할 수 있어야 해요.

실제 업무의 프로젝트와 비교하여, 예제 프로젝트는 코드의 명확성과 한눈에 알아볼 수 있는 점에 중점을 두며 불필요하게 복잡한 설계나 추상화 계층을 피해요.

이는 다음을 의미해요.

  • 우리는 컴포넌트 분리나 모듈화 설계를 너무 많이 도입하지 않고 기능을 직접 보여줄 거예요.
  • 각 기능의 구현은 간결성을 유지하며 구현 방법에 중점을 둬요.

이러한 설계는 각 코드 조각의 역할을 빠르게 이해하고 자신의 프로젝트에 쉽게 적용할 수 있게 해줘요.

3. 사용하기 쉬운 환경#

예제 프로젝트에는 학습자가 즉시 프로젝트를 실행하고 배운 내용을 테스트할 수 있는 사용하기 쉬운 환경이 필요해요.

업무상 프로젝트는 많은 외부 종속성이 관련되지만, 예제 프로젝트의 설계는 학습자가 배운 개념을 빠르게 검증할 수 있도록 하는 데 중점을 둬요.

이는 다음을 의미해요.

  • 프로젝트는 완전한 배포에 의존하지 않으며, 간단한 로컬 설정만으로 빠르게 실행하고 테스트할 수 있어 독자가 API 응답 결과를 즉시 볼 수 있어요.

우리는 API 튜토리얼 자체에 집중하며, 나머지 외부 부분은 직접 실습하고 보완해야 할 수도 있어요.


다음 단계#

예제 프로젝트의 설계에 대해 알아보았으니, 이제 개발 환경 소개로 들어갈게요.

프로젝트를 개발할 때 적합한 도구를 사용하면 작업 효율이 크게 높아져요. 다음 글에서는 가상 환경 관리 및 코드 포맷팅과 같이 자주 사용하는 Python 개발 도구를 소개할 거예요.

이러한 도구들은 프로젝트를 효율적으로 관리하는 데 도움을 줄 뿐만 아니라 코드의 품질과 일관성을 크게 향상시켜 줘요. 저는 이 도구들을 능숙하게 다루는 것이 현대 개발자의 기본기라고 믿어요.