독립 배포·확장성의 장점과 네트워크 복잡도·운영 비용 단점을 경험 중심으로 연결
졸업 프로젝트에서 팀원 5명이 기능별로 서비스를 나눠 독립 배포했는데, 그게 제가 처음 경험한 마이크로서비스 구조였습니다. 가장 좋았던 점은 한 서비스가 다운돼도 다른 서비스는 살아있다는 것이었습니다. 결제 서비스가 오류가 나도 상품 목록 조회는 정상 동작했고, 그 경험이 장애 격리 개념을 몸으로 익힌 계기였습니다. 반면 서비스 간 통신 설계가 생각보다 복잡했습니다. API 호출 실패 시 재시도 로직을 각 서비스마다 따로 구현해야 했고, 로그도 서비스별로 흩어져서 추적이 어렵다는 걸 느꼈습니다. 기술 스택은 Docker + FastAPI + PostgreSQL을 서비스별로 독립 운영했는데, 인프라 설정이 모놀리식보다 몇 배 손이 많이 갔습니다. 규모가 작을 때는 모놀리식이 더 빠를 수 있다는 판단도 그때 생겼습니다.