1. 라이브러리 별 권장 선택
| Case | 권장 라이브러리 |
| 신규서비스 또는 MSA 용 | Feign or WebClient |
| 조직 생산성 및 표준화 측면 | OpenFeign |
| 이벤트 기반, 비동기 스트리밍, 리엑티브 스택 | WebClient |
| 레거시 내 Rest Template 사용 중이고 변경이 어려운 경우 | RestTemplate |
2. 라이브 러리별 추가 설명
1) RestTemplate
- 이미 끝난 기술(Spring 5부터 Deprecated), 주니어 개발자에게 RestTemplate뿐 아니라 OpenFeign에 대한 이해도 필요 함.
- 이해가 쉬우며, 디버깅이 단순
- 동기 블로킹 I/O
- MSA 환경에서 사용 시 logging, auth, retry 다량 증복 발생
- 점진적 제거 대상
2) OpenFeign
- MSA 표준 interface 계층
- 생산성, 일관성, 온보딩 속도 상승 기대 가능
- Anti-Corruptioin Layer(ACL) 구현으로 코드 일관성 증대, 아키텍처 강제 가능(코드 리뷰 비용 감소 가능)
- 높은 추상화 수준 제공(interface 기반, 테스트 및 mocking 우수
- auth, logging, retry, timeout 표준화 및 강제 가능
- 블로킹 I/O
- 고성능 스트리밍 및 back pressure 지원 안됨
3) WebClient
- Non-blocking I/O
- 동시성측면에서의 고성능, 스트리밍, SSE, Kafka 소비 모델과 궁합이 좋음
- reactive stack 사용시 이용 추천
- 디버깅 난이도 증가
- 개발 조직의 기술이해 성숙도 필요
3) 결론
: 기본 표준으로 OpenFeign 을 추구하면서, 제한적으로 WebClient 를 사용하는 전략을 추천한다.
'Kotlin Spring > Kotlin Spring' 카테고리의 다른 글
| Graceful Shutdown (처리중인 로직이 완료되지 않은 상태에서 종료할 것인가?) (0) | 2026.01.15 |
|---|---|
| 왜 많은 팀은 결국 Webflux와 같은 "Reactive Programming"를 포기하는가? (0) | 2025.12.22 |
| Spring Boot warm up 순서 (1) | 2025.08.31 |
| CloudWatchClient로 CPUUtilization 메트릭 Data 가져오기 (feat. CPU 상태 확인) for Kafka Throttling (0) | 2025.04.26 |
| 단방향 암호화 sha512 (0) | 2024.12.18 |