FastAPI와 클린 아키텍처로 스파게티 코드 없애기
2024년 스택 오버플로에서 실시한 "웹 프레임워크 및 기술" 항목에서 FastAPI가 14위에 올랐다. 파이썬 웹 프레임워크 중에서는 플라스크, 장고의 뒤를 이어 3위를 기록하며, 2018년 첫 등장 이후 플라스크와 장고의 뒤를 빠르게 추격하고 있다. 또한 아직 버전 1이 정식 출시되지 않았음에도 뛰어난 성능과 직관적인 사용법 등 수많은 장점을 가지고 있어 넷플릭스, 우버, 시스코 시스템즈 등 많은 기업에서 채택하고 있다.
FastAPI는 공식 문서가 이미 매우 잘 정리되어 있어, 이 책은 FastAPI를 활용한 소프트웨어 구조 설계와 이를 통해 유지보수성과 확장성을 극대화하는 클린 아키텍처에 중점을 둔다. 오늘날 백엔드 개발에서 가장 중요한 요소 중 하나는 효율적이고 확장 가능한 아키텍처다. ‘제대로 된’ 아키텍처가 없는 시스템은 스파게티 코드와 큰 진흙덩어리와 다를 바 없다. 12장으로 구성된 이 책은 FastAPI의 강력한 기능을 바탕으로 클린 아키텍처를 적용해 유지보수가 용이하고 안정적인 시스템을 만드는 방법을 제시한다.
1장에서는 FastAPI의 특징과 포어트리를 통한 개발 환경의 구축 방법, 책에서 만들 TIL 앱 구조를 간단히 살펴본다. 2장에서는 도메인, 애플리케이션, 인터페이스, 인프라 계층으로 나누어 클린 아키텍처를 알아본다. 3장에서는 TIL 앱 서비스의 핵심 기능 중 하나인 회원 가입을 FastAPI로 구현하면서 클린 아키텍처를 적용한다.
4장에서는 3장에서 구현한 회원 가입 기능에 의존성 주입을 도입하고, 5장에서는 파이단틱을 활용해 유저 정보를 조회, 수정 삭제하는 API를 완성한다. 6장에서는 FastAPI에서 동시성을 처리하기 위한 방법의 하나인 비동기 처리를 수행하는 예를 살펴본다. 7장에서는 TIL 서비스에 가입한 유저가 로그인하는 기능을 만들어보면서, 인증/인가에 가장 많이 사용되는 JWT에 대해 알아보고 적용한다.
8장에서는 코드 내에 하드 코딩돼 있는 값들을 환경변수로 관리하는 작업을, 9장에서는 TIL 서비스의 기능을 확장해 유저가 작성한 게시물(노트) 리소스를 다루는 예를 알아본다. 10장에서는 FastAPI로 서버를 개발할 때 적용할 수 있는 백그라운드 작업 방식을, 11장에서는 미들웨어 활용 방법을 다룬다. 마지막으로 12장에서는 반복적인 테스트를 쉽게 할 수 있고, 안전한 시스템을 구축할 수 있도록 작성한 코드에 대해 테스트 코드를 작성한다.
이 책은 FastAPI와 클린 아키텍처를 통해 단순한 기능 구현을 넘어, 더 나은 소프트웨어 설계 방법을 고민하는 개발자들에게 유용한 가이드다. 특히 빠르게 변화하는 웹 개발 환경에서 안정적이고 확장 가능한 백엔드 시스템을 구축하고자 하는 개발자들에게 실질적인 도움을 줄 것이다.
주요 내용
● FastAPI와 클린 아키텍처의 개념과 기능
● 파이단틱을 이용한 유효성 검사
● DI 방식과 적용 방법
● 인증/인가를 위한 JWT 활용
● 셀러리를 이용한 비동기 처리
● HTTP 요청과 응답이 쉬워지는 미들웨어 사용법
● 계층별로 단위 테스트 적용하는 법