이야기를 나눠요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
Spring WebFlux + LLM 실전 구현
WebFlux를 실무에 적용하기 전에 고민이 있습니다.
안녕하세요 선생님. 우선 좋은 강의 감사드립니다.저는 회사에서 백오피스 서비스의 백엔드 개발을 담당하고 있으며, 현재 유지보수 중인 서비스를 개선하기 위해 WebFlux 공부를 시작하게 되었습니다.저희 백오피스의 주요 패턴은 다음과 같습니다.사내 사용자가 특정 데이터를 일괄 선택하여 API 호출백엔드에서 해당 데이터를 조회조회한 데이터를 기반으로 외부 API를 순차 호출성공/실패 결과를 집계하여 응답 반환즉, “여러 건 조회 후 순차적으로 외부 API를 호출하는” 동기적 패턴이 많습니다. 이를 개선하기 위해MQ 도입 (SQS, Kafka),Spring @Async,기존 코드를 WebFlux 라이브러리로 마이그레이션위 3가지 사항을 후보로 고민해보았습니다.여기서 제가 가장 궁금한 점은 다음 두 가지입니다.WebFlux를 이런 백오피스 일괄 작업 처리에 적용하는 것이 적절한 선택일까요?만약 적용한다면, 최대한의 성능을 낼 수 있는 활용 방식은 어떤 방향일까요?예를 들어, 외부 API를 병렬로 호출한 뒤 완료되는 대로 text/stream 형태로 프론트엔드에 전달하는 구조를 시도해보고 싶습니다.이런 접근이 합리적인지, 혹은 더 나은 패턴이 있을지 선생님의 의견을 듣고 싶습니다.
-
Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
webfluxtest를 통한 테스트
webfluxtest를 통한 테스트 수고많으십니다. mvc만 쓰면서 개발하다보니 junit은 사실 개발을 위한 개발처럼 보여서 쓰지않았습니다. 헌데 reactive로 하려니 하아... junit을 안쓸수가 없겠더군요. 교과목은 아니지만 연관은 있어서 문의하나만 드려봅니다. 한 며칠고민하고 찾아봐도 답이 딱히 나오질않아서 의견을 여쭙거나 합니다. spring boot 3.2 를쓰고있습니다. reactive redis를 사용하려니 spring.io에서 제공하는 방법은 ReactiveRedisOperations를 사용하도록 해서 사용하고있습니다. 이걸 서비스에서 만들고 RestController에서 쓰고있습니다. 이 controller를 @WebfluxTest 로 테스트 하려고 했더니. 주입이 안되어서 에러가 발생하는 상황입니다. @Import등으로 직접 넣어주는데 Controller 에서 서비스 리파지토리정도야 주입해서 넣어야하는건 그럴수있다고 해도 @Configuration에서 등록한 Redis connection factory까지 넣어주어야 한다면 이게 일을 위한 일이 되어버리는 상황이 되겠는데. 지금 내가 테스트를 하는건지 개발을 해야하는건지 의문이 들정도입니다. 아 그리고 @MockBean을 써도 해당 method를 찾지못하기도 하지만 controller 에서 테스트하고싶은것은 repository - service - controller 까지 최종테스트를 하는건데. 이걸 mockbean으로 하는것도 큰의미가 없어보입니다. controller부분이야 많이 만들수밖에 없을텐데 이때마다 두배의 코딩량을 늘려야하는건 아닌것같은데. 이를 좀더 효율적으로 테스트및 디버깅을 할수는 없는지 궁금하여 문의드립니다.
-
Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
Spring MVC + Servlet 3.1 이상 model과 Spring Webflux
스프링 MVC + Servlet 3.1 이상 모델을 사용할 경우 비동기, 논블록킹이 가능하다고 들었습니다. Spring mvc내의 일부 getParameter, Filter 등의 함수나 일부 지원 api 들이 블로킹 api 들이 많기 때문에 Servlet 3.1 이상의 버전을 쓰더라도 Webflux만큼의 성능이 나오지 않는다고 구글링 하다보니 찾게 되었는데 이 정보가 정확한지 궁금합니다.