💨 Feign Client 와 RestTemplate 중 어떤 걸 선택하는게 좋을까?
- 간편성 및 사용 편의성
- Feign Client : Feign은 선언적 방식으로 REST API를 정의하고 사용할 수 있도록 한다. 인터페이스를 정의하고 이를 통해 HTTP 요청을 보내는데 이는 개발자의 구현 로직이 줄어드는 이점이 있다
- RestTemplate : 설정과 코드를 요구하면서 요청 및 응답을 모두 직접적으로 처리해야 한다.
- 유연성과 성능
- Feign Client : Feign Client는 Cloud와 통합되어 있다. 이는 로드 밸런싱, 재시도, circuitBreaker 패턴등을 쉽게 구현할 수 있다
- RestTemplate : Spring에서 오랫동안 사용되어 왔고 풍부한 기능과 확장성을 제공한다. 하지만 Cloud의 지원을 받지 않기때문에 유연성이 Feign에 비해 떨어질 수 있다. 별도의 클라이언트 측 로드 밸런싱및 기타기능을 직접 구현해야한다.
결정
현재 MSA 방식으로 구현을 하고있고 그에 따라 Spring Cloud를 사용하고 있기 때문에 Feign Client를 사용하는것이 훨씬 좋은 결과를 보여줄 것 같다는 생각이 든다 또한 회복탄력성과 Retry와 같은 테스트를 진행하게 될 것 같기때문에 더욱더 사용할 이유가 생긴다
'프로젝트 > 항해99 개인 프로젝트' 카테고리의 다른 글
🚢 중간테이블로 인한 JPA의 N+1문제 (0) | 2024.05.09 |
---|---|
🚢 MSA의 동시성 제어를 위한 Lock 사용(feat. Redis의 분산락) (1) | 2024.04.30 |
🚢 Open Feign을 사용하며 발생하는 서비스 간의 장애 처리 (0) | 2024.04.30 |
🚢 재고 관리를 위한 동시성 제어 (Monolithic Architecture) (2) | 2024.04.27 |
🚢 WishList가 장바구니? (Redis 의 Hash타입 사용) (0) | 2024.04.26 |