인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박철현님의 프로필 이미지

작성한 질문수

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

Spring Cloud OpenFeign (1)

OpenFeign을 어떤 상황에서 어떻게 사용하는지 감이 안옵니다...

작성

·

112

0

OpenFeign을 어떤 상황에서 어떻게 사용하는지 감이 안옵니다... 단 한번도 프로젝트를 진행하면서 사용해본적이 없는 기술이여서 감이 와닿지 않는데 어떤 상황에서 유용하게 쓸 수 있는 기술인걸까요??

답변 2

1

구파고님의 프로필 이미지
구파고
지식공유자

안녕하세요! 실제 서비스를 만들다보면 외부 API를 사용하는 경우가 많습니다. 예를 들어서 뒤에서 구현하는 소셜 로그인의 경우도 카카오 API를 호출해야하기 때문에 feign client를 통해서 API를 요청하고 응답을 받아서 활용합니다. 실무에서는 타회사와 협업을하게 된다면 타 회사가 제공하는 API를 호출해야하는 케이스도 빈번하구요! 규모가 어느정도 되는 회사라면 단일 어플리케이션이 아니라 도메인별로 서버도 분리되어 있는 경우가 많은데 그럴 경우 내부 서버간 통신에도 활용합니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 박철현님.

OpenFeign은 마이크로서비스 아키텍처에서 서로 다른 서비스 간의 통신을 간단하게 처리할 수 있게 해주는 HTTP 클라이언트입니다. 이를 통해 RESTful 서비스를 호출할 수 있으며, 서비스 간의 의존성을 낮출 수 있습니다. OpenFeign은 선언적으로 HTTP 요청을 생성할 수 있도록 도와주어, 코드의 가독성과 유지보수성을 향상시킵니다.

구체적으로 OpenFeign을 사용하면 다음과 같은 상황에서 유용합니다:

  1. 서비스 간 통신을 간소화할 때: 마이크로서비스 구조에서 다수의 서비스가 서로 통신해야 할 때 요청 처리를 간소화합니다.

  2. 복잡한 HTTP 클라이언트 설정을 피하고 싶을 때: 기존의 RestTemplate이나 WebClient를 사용할 때보다 단순한 설정으로 HTTP 요청을 만들어냅니다.

  3. 코드의 일관성과 가독성을 올리고 싶을 때: 명확한 인터페이스 기반으로 HTTP 요청을 할 수 있어 코드의 가독성과 유지보수성을 높입니다.

예시로, 동일한 네트워크 내에서 API를 호출해야 할 때, OpenFeign을 통해 HTTP 요청을 선언적으로 정의하고 필요할 때마다 호출할 수 있습니다. 이는 마치 스프링의 REST 컨트롤러를 선언하는 방식과 비슷합니다.

관련 게시물을 추천드리자면, 여기 Spring Cloud OpenFeign (2) 관련해 선택 사항 질문에서 feign과 webclient를 비교하고 적절한 상황에 맞춰 사용하는 예시를 확인할 수 있습니다. 또한 open feign yml 세팅 관련에서는 OpenFeign 설정에 대한 방법도 살펴볼 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드립니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.