최근에 모아모아 프로젝트의 백엔드를 정리하면서, 기존 Django 기반 구조를 FastAPI로 전환하는 작업을 진행했다. 단순한 프레임워크 교체라기보다는, 앞으로의 확장성과 실험을 염두에 둔 선택이었다.
왜 ? FastAPI
FastAPI를 선택한 가장 큰 이유는 API 중심 아키텍처에 대한 실험적인 고민 때문이다.
카카오, 텔레그램, 토스처럼 서로 성격이 다른 세 가지 플랫폼을 하나의 API 레이어로 통합 제어할 수 있을까? 라는 질문에서 출발했다.
각 플랫폼은 인증 방식도 다르고, 이벤트 흐름도 제각각이지만 FastAPI의 비동기 처리와 명확한 스키마 기반 설계라면 공통 인터페이스를 중심으로 충분히 정리할 수 있겠다는 판단이 들었다.
“한 번에 잘 만들자” 보다는 API로 어디까지 통제가 가능한지 실험해보자는 쪽에 가까운 선택이었다.
Django의 자산은 그대로
기존 Django에서 이미 검증된 기능들은 최대한 유지했다.
비즈니스 로직, 데이터 모델링, 운영 중 쌓인 노하우까지 전부 버리기엔 아까운 자산들이었기 때문이다.
그래서 접근 방식은 단순했다.
- 핵심 도메인 로직은 그대로 유지
- 프레임워크 의존적인 부분만 정리
- 외부 플랫폼 연동은 FastAPI 기준으로 재구성
결과적으로는 “새로 만든다”기보다는 Django에서 FastAPI로 옮겨 담는다는 느낌에 가까웠다.
3가지 플랫폼 통합
카카오, 텔레그램, 토스 — 각각의 요청과 이벤트를 FastAPI 엔드포인트로 흡수하면서 플랫폼별 어댑터 구조를 잡았다.
외부에서는 서로 다른 서비스처럼 보이지만, 내부에서는 동일한 흐름으로 처리되도록 만드는 것이 목표였다.
아직 완벽하다고 보긴 어렵지만, API 하나로 여러 채널을 통제할 수 있다는 가능성은 충분히 확인할 수 있었다.
모아모아 GitHub
