본문 바로가기
책/리뷰

[책 리뷰] FastAPI로 배우는 백엔드 프로그래밍 with 클린 아키텍처

by 킁킁잉 2024. 10. 29.

 

FastAPI로 배우는 백엔드 프로그래밍 with 클린 아키텍처는 가볍고 빠르게 시작할 수 있는 Python 기반 프레임워크인 FastAPI로 백엔드 개발을 쉽게 시작할 수 있게 돕는 책입니다. Java Spring Boot의 방대한 구조에 비해 FastAPI는 간결하고, 비동기 처리를 기본으로 제공하여 개발 속도와 유지보수 효율성 면에서 강력한 장점을 가집니다. 특히 클린 아키텍처를 기반으로 계층별로 백엔드 구조를 설계하는 개념을 다루어 백엔드 개발의 전체적인 흐름을 체계적으로 학습할 수 있습니다. 실습 중심의 예제와 실무에 적용할 수 있는 내용이 입문자에게 큰 도움이 되는 책입니다.

 

 

본 서평은 제이펍에서 책을 제공받아 작성되었습니다. 

 

💡개요

Python은 웹 개발뿐만 아니라 AI, 데이터 분석 등 다방면에서 사용되고 있으며, FastAPI는 최근 핫🔥한 프레임워크입니다. 이 책은 클린 아키텍처의 원칙을 FastAPI에 적용하여 TIL 서비스 실습을 통해 백엔드의 전반적인 구현을 체험할 수 있도록 구성되어 있습니다.

 

책의 주요 목차는 다음과 같습니다. 

목차
1. FastAPI 개발 환경 구축
2. 클린 아키텍처
3. 회원 가입
4. 의존성 주입
5. 회원 리소스의 CRUD 기능 완성
6. 비동기 프로그래밍
7. 로그인
8. 환경변수
9. TIL Note
10. 백그라운드 작업: 환영 이메일 발송
11. 미들웨어
12. 테스팅

 

책에서는 FastAPI 외에도 Docker🐋, Poetry, 클린 아키텍처 등의 개념을 설명하며, 입문자도 실용적인 API 구축을 경험할 수 있도록 돕습니다.

 

🖐️나의 첫 백엔드 스택

국내에서 가장 널리 사용되는 백엔드 스택은 Spring Boot로, 성능과 확장성 측면에서 강력한 지원을 제공하지만, Java 문법과 Spring 프레임워크의 방대한 기능을 깊이 이해해야 하므로 러닝 커브가 매우 가파릅니다. 백엔드 개발에 처음 입문하거나 프로젝트를 빠르게 시작하기에는 적합하지 않은 것 같습니다. 스프링 부트는 많이 무서워요😭

Python 기반의 인기 있는 프레임워크로는 Django와 Flask가 있습니다. Django는 대규모 프로젝트에 적합한 강력한 기능을 제공하지만, 구성 요소가 복잡하여 많은 학습을 필요로 합니다. Flask는 최소한의 기능으로 시작이 간단하고 유연하지만, 확장 시에는 추가적인 복잡한 구현이 요구됩니다.

이와 달리, FastAPI는 간결한 문법과 자동화된 타입 힌트 덕분에 초심자도 접근하기 쉬운 프레임워크로 주목받고 있습니다. 기본적인 비동기 기능과 데이터 검증 등 유용한 기능을 제공하여 비교적 빠르고 안정적인 API 서버를 구축할 수 있습니다. 따라서 FastAPI는 백엔드 초보자나 빠른 프로토타이핑이 필요한 개발자에게 적합한 선택이라고 생각합니다.

 

사실 저는 입버릇처럼 백엔드가 싫다고 말하곤 했는데요..백엔드는 너무 어렵게 느껴졌으니까요. 직관적으로 확인 가능한 프론트엔드와 달리 서버? 데이터베이스? API? 눈에 보이지 않는 무언가들과의 싸움을 하는 백엔드는 저에게는 정말 알고 싶지 않은 영역이었습니다.(스프링부트 AWS 무서웍) 하지만 프론트엔드를 공부하며 프로젝트를 진행하던 중, 백엔드에 대한 필요성을 절실히 느끼게 되었습니다.

Next.js에서 제공하는 기능이나 Firebase, Supabase 등 백엔드 API 대체제는 충분히 많습니다. 그럼에도 내 머릿속의 아이디어를 온전히 코드로 표현하기 위해서는 직접 API를 구축할 수 있는 능력이 필요하다고 생각했습니다.  백엔드의 개념을 이해하고, 프론트엔드와의 연계를 통해 더 완성도 있는 프로젝트를 만들기 위해, 원활한 협업을 위해서라도 꼭 필요한 과정이라고 느꼈습니다. 이에  Node.js, Flask 등 여러 기술들을 알아보며 비교한 결과, 첫 시작으로는 FastAPI가 제일 쉽겠다는 생각이 들었습니다. 

 

📖내용

이 책은 클린 아키텍처의 개념과 단계적 실습을 통해 FastAPI의 기능들을 자세히 다루고 있습니다. 책 목차만 봐도, 정말 많은 내용들을 다룬다는 것을 알 수 있었습니다.

 

이 책의 가장 큰 장점은 FastAPI로 간단하게 백엔드의 핵심 개념과 클린 아키텍처의 장점을 실제 프로젝트에 적용할 수 있게 한다는 점입니다. TIL 서비스를 단계적으로 개발하며, 클린 아키텍처의 원칙에 따라 백엔드 구조를 이해하기 쉽게 설명하면서도 실무 적용이 가능한 정보를 제공하는 것이 이 책의 특징입니다.

전체 페이지 수가 209페이지로 비교적 얇은 편이지만, 알찬 구성으로 백엔드 입문자에게 적합한 난이도와 구성을 갖추고 있습니다. 

 

 

저는 백엔드에 대해서는 아는게 거의 없어서, 초반부는 조금 어렵게 느껴졌습니다. 클린 아키텍처에 대한 이해도 필요했고, 데이터베이스, 포어트리, 유비콘, 도커 등 실습을 위해 설정해야 하는것도 많았으니까요. 그러나 책이 개념부터 실습까지 단계적으로 잘 설명되어 있어 따라가다 보니 점차 익숙해졌고, 목차 구성도 탄탄해 필요할때마다 참고하기 좋은 책이라고 생각합니다.

 

개인적으로는 의존성 주입 부분이 제일 재미있게 느껴졌습니다. 의존성 주입이 뭔지, 왜 필요한지 확실하게 이해할 수 있었고, FastAPI에서 자체적으로 제공하는 의존성 주입 함수와, 실제 많이 쓰이는 의존성 주입 프레임워크 두 가지 방식을 통해 의존성 주입을 실습해 볼 수 있었습니다. 왜 별도의 프레임워크를 쓰는지 간단하지만 클린 아키텍처 관점에서 설명해주셔서 기술 선택의 근거와 필요성을 깊이 고민할 수 있었습니다. 이렇듯 책 중간중간 나오는 설명을 통해, 단순한 기술 사용을 넘어 개발 철학과 설계 원칙을 고려하며 더 나은 아키텍처를 지향하는 방법을 배울 수 있었습니다.

 

❤️추천 대상

이 책은 백엔드 개발 프로세스를 처음 접해보려는 개발자나, 풀스택 개발을 목표로 하는 프론트엔드 개발자에게 유용한 참고서가 될 것 같습니다. 

 

FastAPI의 가장 큰 매력 중 하나는 "간단하다" 였습니다. 복잡한 것이 싫은 저는,  API 구축이 간단하면서도 문서화를 자동으로 생성해 개발 편의성을 극대화한다는 점이 너무 매력적으로 느껴졌습니다. 이런 장점 덕분에, 백엔드 경험이 없는 프론트엔드 개발자도 부담 없이 API 개발에 도전할 수 있겠다고 느꼈습니다. 저는 인공지능 웹 서비스에 관심이 있어 AI 모델과의 통합이 쉽게 이루어지는 점 또한 FastAPI의 큰 장점으로 느껴졌고 앞으로도 꾸준히 공부해 볼 예정입니다!

 

빠르게 백엔드 기초를 익히고 풀스택 프로젝트에 도전해보고 싶은 프론트엔드 개발자라면, 이 책이 FastAPI와 함께 훌륭한 입문서가 되어 줄 것 같습니다.