경험 중심 — 인증/라우팅을 Gateway에 집중한 설계 경험
팀 프로젝트에서 로그인, 상품 조회, 주문 처리를 각각 분리된 서비스로 만들었는데, 프론트엔드가 3개 서비스에 직접 요청을 날리니까 CORS 설정이 서비스마다 달라 혼란이 생겼습니다.
FastAPI로 Gateway를 만들어 인증 토큰 검증과 라우팅을 한 곳에서 처리하도록 바꿨습니다. httpx로 내부 서비스에 프록시 요청을 보내는 방식이었습니다.
처음에는 async 처리를 제대로 하지 않아서 동시 요청 30개 이상 들어오면 레이턴시가 튀는 문제가 생겼습니다. httpx.AsyncClient를 싱글턴으로 공유하도록 바꾸고 나서 안정되었습니다. Gateway 하나로 인증을 모으니 개별 서비스에서 인증 코드가 사라져서 유지보수가 편해졌습니다.