Feign

이규훈·2024년 5월 12일

Feign은 Netflix에서 개발한 선언적 HTTP 클라이언트로, 스프링 클라우드에서 지원하는 라이브러리입니다. Feign을 사용하면 인터페이스를 통해 HTTP 요청을 작성할 수 있어 코드를 간결하게 유지할 수 있습니다.

Feign Feature

  • Connection/Read Timeout
  • Feign Interceptor
  • Feign Logger
  • Feign ErrorDecoder

Connection/Read Timeout

  • 외부 서버와 통신 시
  • Connection / Read Timeout
  • 설정이 가능하다

말 그래도 외부와 통신이 타임 아웃 설정이 가능하다. 리드 타임아웃, 클라이언트가 외부 컴포넌트 간에 통신을 하는데 있어서 어떤 컴포넌트와는 이런 시간으로 또 다른 컴포넌트는 또 다른 시간으로 설정이 가능할 수 있는 그런 것들을 명시적으로 설정이 가능하게 해준다.

Connection Timeout은 클라이언트가 서버에 연결을 시도하는 최대 시간을 의미하며, Read Timeout은 클라이언트가 서버로부터 응답을 기다리는 최대 시간을 의미합니다. 이러한 타임아웃 설정을 통해 외부 서비스와의 통신 시간을 제어할 수 있습니다.

인터셉터


Feign Interceptor는 Feign 클라이언트가 요청을 보내기 전후에 특정 작업을 수행할 수 있도록 해줍니다. 예를 들어, 요청 헤더를 추가하거나 로깅을 수행하는 등의 작업이 가능합니다. 이를 통해 클라이언트 요청에 대한 공통 로직을 한 곳에서 관리할 수 있습니다.
예를 들어, 외부 요청을 내보 낼때, 어떤 값들로 내보냈는지 로깅을 할 필요가 있는데, 그런 부분들을 공통적으로 처리할 수 있게 해주는 인터셉터이다.

Feign CustomLogger

말 그대로 로그를 남겨준다.

Feign ErrorDecoder

Feign ErrorDecoder는 외부 서비스로부터 받은 응답이 예외 상황일 때 처리 방식을 정의할 수 있습니다. 예를 들어, HTTP 404 에러가 발생했을 때 특정 예외를 던지도록 구현할 수 있습니다. 이를 통해 예외 처리를 표준화하고 일관성 있게 관리할 수 있습니다.

profile
개발취준생

0개의 댓글