프로젝트/항해99 개인 프로젝트
🚢 Feign Client 와 RestTemplate
늦은산책
2024. 4. 30. 11:17
💨 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와 같은 테스트를 진행하게 될 것 같기때문에 더욱더 사용할 이유가 생긴다