20210519

nayoon·2021년 5월 19일

diary

목록 보기
4/6

귀인(..!)의 도움으로 포폴을 갈아엎고 있는데..

귀인이 포폴에서 해커톤에서 내가 Spring WebFlux를 사용한 것을 보시고

어..? Spring MVC 쓴 거 아니에요? WebFlux 쓴 거에요..? 라고 물으셨는데..

다음과 같이 대답했었다.

내가 Spring WebFlux를 쓰게 된 배경은 다음과 같다.

  • 팀 프로젝트를 진행할 당시 Spring Boot에서 Flask 추천 시스템 서버로 요청을 보내고 응답을 받은 적이 있다.
    이 때, RestTemplate을 사용하려고 했는데, deprecated여서 WebClient라는 모듈을 사용했었다.
    (비동기 방식으로 Spring Boot에서 다른 서버로 요청을 보낼 수 있는 HttpClient 모듈 중 하나였다.)

해커톤에서도 위와 비슷한 기능을 만들어야 했는데

다른 점이라면 위의 프로젝트에서는 하나의 요청을 보내는 것이고

해커톤 때는 수 백개의 요청을 보낸 후 순차적으로 응답을 받아와야 했었는데, WebClient를 이용해서 여러 개의 요청을 보내고자 구글링을 하던 도중 다음과 같은 자료를 찾게 되었다.

여기서 리액티브 프로그래밍에 대해 보게 되었고, WebClient가 Spring web Reactive 모듈에 포함된 건지 처음 알았다.. (모르고 쓰는 게 정말 많다는 생각이 들었다.)

자료를 좀 더 찾아보다가 Spring WebFlux을 알게 되었고 해커톤 때 사용해서 수 백개의 요청을 보내고 순차적으로 받아왔었다. (concatMap이라는 메소드를 사용했었다. 이 메소드가 아니었다면 원하는 기능을 구현하는 데 더 많은 시간을 썼을 것이다.. 정말 편리했다..)

기억이 안나는데 해커톤 때는 너무 급해서 일단 기능을 완성해야한다는 일념으로 Spring WebFlux를 사용했는데, @Async를 사용하면 내가 구현하려던 기능을 개발할 수 있다고 해서 바꿔야한다는 생각이 들었다....

잘 못하니까.. 잘못 개발할 수 있다고 생각한다... 문제는 잘못 개발한 걸 알면서도 고치지 않는 거라고 생각한다...얼른 고쳐야징..

profile
뚜벅뚜벅 열심히 공부하는 개발자

0개의 댓글