..

Troubleshooting: FeignClient에서 PATCH 메소드 사용하기

1. 발생 에러 메세지

OpenFeign을 사용하여 외부 서비스를 호출할 때 PATCH 메소드를 사용하면 다음과 같은 예외가 발생할 수 있습니다.

feign.RetryableException: Invalid HTTP method: PATCH executing PATCH http://...

2. 원인 분석

FeignClient가 내부적으로 기본 사용하는 HttpURLConnection은 꽤 오래전에 설계된 클래스로, 비교적 최신 사양인 PATCH 메소드를 표준으로 지원하지 않기 때문입니다.

3. 해결 방법: OkHttpClient 연동

이 문제를 해결하려면 PATCH를 공식적으로 지원하는 OkHttpClientApache HttpClient를 Feign의 물리적인 통신 클라이언트로 교체해 주어야 합니다.

단계별 적용 방법

  1. 의존성 추가: feign-okhttp 라이브러리를 추가합니다.
    implementation 'io.github.openfeign:feign-okhttp'
    
  2. Bean 설정: 스프링 빈으로 OkHttpClient를 등록하면 Feign이 이를 자동으로 감지하여 사용합니다.
    @Configuration
    public class FeignConfig {
        @Bean
        public OkHttpClient okHttpClient() {
            return new OkHttpClient();
        }
    }
    

최근의 MSA 환경에서는 PATCH를 통한 부분 업데이트가 빈번하므로, Feign 사용 시 초기부터 OkHttpClient 연동 설정을 미리 해두는 것을 권장합니다.