-
비동기 처리: 결제, 예약, 공간 조회 등 I/O Bound 작업이 많다.
- SpringBoot: 비동기 처리를 위해 WebFlux를 사용할 수 있지만 학습 곡선이 매우 높고 복잡하다.
- FastAPI: 파이썬의 특징인 비동기 처리를 네이티브하게 지원한다. 결제 시스템 연동이나 이미지 업로드 같은 작업이 많을 때 적은 리소스로 높은 동시성 처리가 가능하기 때문에 스페이스 플레이스처럼 실시간 예약 시스템에 적합하다.
-
마이크로서비스, 컨텍스트 분리 최적화: 마이크로서비스 아키텍처의 핵심은 도메인을 명확히 분리하여 각 서비스의 경계를 최적화하는 것이다. 도메인 모델에 집중하고 결제, 회원, 공간, 예약 등 관심사별로 도메인을 나누었다. 그리고 각 도메인은 독립된 서버로 구성했다.
- FastAPI는 컨테이너 환경에서 스프링 부트(Spring Boot)에 비해 이미지 크기가 작고, 초기 개발 속도가 매우 빠르다는 장점이 있다. 따라서 트래픽이 증가하는 환경에서도 오토스케일링 시 자원 효율성과 확장성이 뛰어나다.
-
데이터 검증(Pydantic): Pydantic을 통해 유효성 검사 로직을 선언적으로 작성하여 코드의 가독성을 높일 수 있고 데이터 타입을 검증할 수 있게 된다.
-
문서 자동화(Swagger): API 통신이 많은 시스템에서는 API 문서화는 필수다.
- 코드를 작성함과 동시에 Swagger 문서가 생성되어 어떤 엔드포인트에 어떤 데이터를 요청하고 응답하는지 즉각적으로 확인할 수 있다.