<aside> 💡 문제 상황

</aside>

스프링 부트3에서 서버를 띄웠는데 실행시간이 말도안됨 6분이 넘어감

<aside> 💡 GPT의 설명

</aside>

FeignClient를 사용하면서 디버깅을 할 때 스프링 애플리케이션이 느려지는 이유는 여러 가지가 있을 수 있습니다. 주요 원인들을 살펴보면 다음과 같습니다:

  1. 네트워크 호출 오버헤드: FeignClient는 외부 서비스와의 통신을 위해 네트워크 호출을 수행합니다. 디버깅을 할 때 네트워크 호출이 중단되거나 느려질 수 있습니다. 이는 특히 네트워크 상태가 불안정하거나 외부 서비스 응답 시간이 느린 경우에 더 두드러집니다.
  2. 디버거의 중단점(Breakpoint): 디버깅을 위해 중단점을 설정하면, 코드 실행이 중단점에서 멈춥니다. FeignClient 호출이 많은 경우, 각 호출마다 중단점에서 멈추게 되어 전체적으로 실행 속도가 매우 느려질 수 있습니다.
  3. 스레드 중단: FeignClient 호출은 일반적으로 비동기적으로 처리됩니다. 디버깅 과정에서 여러 스레드가 동시에 중단되면, 이로 인해 전체 시스템의 반응 속도가 느려질 수 있습니다.
  4. JVM 디버그 모드: 디버깅을 위해 JVM을 디버그 모드로 실행하면, 일반 실행 모드에 비해 성능이 저하될 수 있습니다. 디버그 모드는 더 많은 메타데이터를 유지하고, JVM 최적화 기능이 제한될 수 있습니다.
  5. 로깅 오버헤드: 디버깅을 위해 로깅 레벨을 높이는 경우(예: DEBUG 또는 TRACE 레벨), 로깅 자체가 성능에 영향을 미칠 수 있습니다. 특히 FeignClient는 내부적으로 많은 로깅을 수행할 수 있어 성능 저하의 원인이 될 수 있습니다.

이러한 문제를 해결하기 위해서는 다음과 같은 방법을 고려할 수 있습니다:

이러한 방법을 통해 디버깅 과정에서 성능 저하를 최소화할 수 있습니다.