Spring in Action 5 표지

Spring in Action 5

크레이그 월즈교보문고 ↗

읽게 된 이유

스프링을 다른 기술과 연동하는 방법에 대한 이해가 부족해 읽게 됐다. 목차에는 Kafka와 RabbitMQ를 활용한 비동기 메시징부터 스프링 시큐리티, 리액티브 프로그래밍까지 단 한 권에 들어 있다. 이 내용들을 한 권에 다 담을 수 있나 의아했지만 평이 나쁘지 않아 예제를 따라 하며 읽어봤다.

리액티브 스프링 부분이 가장 마음에 들었다. WebFlux라는 게 있다는 정도로만 알고 있었는데 책에서는 왜 이런 기술이 필요했고 어떻게 사용하는지를 설명한다. 사용법만 따라 하기보다 기술이 등장한 배경을 이해하는 데 도움이 된다.

다만 분량에 한계가 있다 보니 깊이 있는 내용까지 다루지는 않는다. 리액티브 프로그래밍을 깊게 알기보단 리액티브 프로그래밍이 뭔지, 필요성과 사용 방법 등을 파악하는 데 도움이 된다.

전반적으로 Spring Cloud와 리액티브 프로그래밍이 각각 어떤 문제를 해결하려고 등장했는지 흐름을 이해할 수 있고 스프링 생태계가 발전해 온 과정을 엿볼 수 있다.

그리고 왜 공식 문서 보라고 하는지 이해가 된다.

이 책의 예제는 Spring Framework 5와 Spring Boot 2를 기준으로 한다. Spring Framework 7과 Spring Boot 4가 나온 지금 시점에 그대로 적용하기 어려운 부분이 꽤 있다.

AI의 도움을 받아 의존성과 코드를 Spring Boot 4에 맞게 바꾸면서 실습했다. 책의 내용을 배우면서 버전 차이도 해결해야 했다. 최신 버전으로 옮기면서 업데이트 된 내용도 있기에 책의 설명과 공식 문서를 구분해서 볼 필요가 있다.

  • 동기 HTTP 호출에 RestClient가 아닌 RestTemplate을 사용한다.
  • Netflix Hystrix는 현재 유지보수만 한다. 신규 프로젝트에는 Resilience4j 같은 좋은 대안이 있다.
  • JPA 예제가 jakarta.persistence가 아닌 javax.persistence를 사용한다.

그리고 결론

스프링의 여러 기술이 어떤 문제를 해결하려고 등장했는지 흐름을 이해하는 데는 도움이 되지만 책 자체가 업데이트되지 못한건 아쉽다. (수학의 정석 같은 느낌이다.) 지금 이 책의 예제를 그대로 따라 하기보단 그냥 최신 강의를 볼 것 같다.

AI 덕분에 새로운 기술 배울 때 Claude나 Codex로 빠르게 프로토타입을 만들고 직접 실행해 보면서 배우는 게 가장 직접적이고 확실하다고 느낀다.

댓글