Post

100개의 실전 Spring Boot API에서 배운 교훈들

🖇️ 출처: I Built 100 APIs with Spring Boot — Here’s What I Learned the Hard Way

최근 Spring Boot 기반 API 설계에 관한 블로그 글을 읽고, 기술적인 팁을 넘어 실무에 바로 적용할 수 있는 인사이트를 얻을 수 있었습니다. 특히 현재 진행 중인 프로젝트나 개인적인 개발 습관에 대입해 보았을 때, 즉시 개선이 필요하다고 느낀 부분들이 많았습니다. 그 중에서 특히 인상 깊었던 다섯 가지 교훈을 아래에 정리합니다.


API 설계와 운영에서 자주 간과되는 핵심 포인트

1. REST는 쉽지만, 지속 가능하게 만들기 위해선 어렵다

Spring Boot에서 @RestController@RequestMapping만으로도 API를 빠르게 구성할 수 있습니다. 하지만 기능이 늘어나면 사소한 변경조차 클라이언트 장애로 이어질 수 있으며, API의 수명은 설계 초기에 결정된다는 점을 실감했습니다. 이제라도 API 설계 초기 단계부터 명시적인 버전 관리(/api/v1 등)를 적용하고, 하위 호환성과 확장성을 고려하는 구조를 갖추는 것이 필요하다는 점을 다시 한 번 인식하게 되었습니다.

2. 엔티티는 외부에 그대로 노출하지 않는다

도메인 엔티티를 API 응답에 직접 사용하는 것이 바람직하지 않다는 이야기는 많이 들어왔습니다. 하지만 이번 글을 통해 그 이유를 단순한 원칙 차원이 아니라, 실무에 있어서 반드시 지켜야 할 핵심 설계 기준으로 다시 인식하게 되었습니다. DTO 분리는 단순한 포맷의 문제가 아니라, 외부 계약의 안정성과 내부 구조의 독립성을 보장하기 위한 핵심 원칙으로 엔티티 노출은 지양하도록 다시 한번 확인할 수 있었습니다.

3. 테스트는 ‘얼마나 했는가’보다 ‘무엇을 검증했는가’가 중요하다

테스트의 중요성에 대해서는 평소에도 인지하고 있었으며, 단위 테스트나 Mock 기반 테스트 역시 일정 수준 적용하고 있었습니다. 하지만 글에서 말한 “너무 많이 mock하면 거짓된 자신감을 얻게 되고, 너무 적게 테스트하면 배포 후에 악몽을 겪게 된다” 을 통해, 테스트 전략 자체를 다시 점검해야 할 필요성을 느꼈습니다. 그동안 작성한 테스트 중 상당 부분이 Mock 객체에 의존하고 있었으며, 실제 장애 발생 시에는 테스트가 실질적인 도움이 되지 못했던 경험도 있었습니다. 이후에는 단순히 테스트를 ‘작성했다’는 데 만족하기보다, 실제 애플리케이션 흐름을 검증할 수 있도록 계층별 테스트 전략을 구분하고, 특히 컨트롤러 수준 이상의 테스트를 강화하는 방향으로 개선해 나갈 계획입니다.

4. 운영 환경에서는 로그보다 메트릭이 먼저 반응한다

/actuator/health, /metrics 같은 엔드포인트는 예전에도 써본 적 있지만, 그 중요성을 깊게 느끼진 못했습니다. 하지만 글에서 나온 내용처럼, 실제로 운영 중 문제가 생겼을 때는 로그보다 먼저 메트릭이 반응한다는 점이 와닿았습니다. 특히 눈에 들어온 건 DB 커넥션 풀 상태, JVM GC 상황, API 처리량 같은 항목을 수집하고 관찰 가능한 지표로 연결해야 한다는 부분이었습니다. 지금까지는 이런 운영 지표를 체계적으로 관리하지 않았는데, 장애가 났을 때마다 어디가 병목인지 감으로 추측했던 경험이 떠올랐습니다. 이제는 단순히 Actuator를 켜 두는 걸 넘어, Prometheus + Grafana로 실제 메트릭을 시각화하고, 문제가 생기기 전에 징후를 포착할 수 있도록 운영 모니터링 구조를 정비해야겠다고 느꼈습니다.

5. API Gateway는 결국 구세주가 된다

서비스가 많아질수록 인증, 요청 제한, JWT 검증 같은 공통 기능을 각 서비스마다 구현하게 됩니다. 이런 구조는 시간이 지날수록 유지보수가 어려워지고, 서비스 책임이 모호해집니다. Spring Cloud Gateway나 AWS API Gateway를 초기에 도입하면, 이런 공통 기능을 게이트웨이 레이어에서 일괄 처리할 수 있어 구조적 이점을 얻을 수 있습니다. 현재는 서비스 수가 적지만, “작은 서비스라도 성장할 것을 전제로 설계하라”는 조언이 깊게 와닿았습니다.


가장 기억에 남는 문장

“잘 돌아갈 땐 티 안 나고, 실패하면 바로 기억나는 API”

이 문장이 글의 핵심을 가장 잘 요약한다고 생각합니다. 앞으로는 속도보다 방향을 우선하고, 당장은 불필요해 보여도 나중에 반드시 후회할 것들을 미리 준비하는 습관을 들이려 합니다.

This post is licensed under CC BY 4.0 by the author.