jrcfore***
2020-05-31

스프링 부트로 웹 개발을 할 때 마주치는 문제를 속 시원하게 해결하고 싶다면 이 책이 답이다. 스프링 부트에서 자주 발생하는 문제의 해결 방법부터 웹플럭스 사용법까지 실무에 꼭 필요한 내용만 담았다.
필자는 이전에는 게임 서버와 클라이언트를 업으로 삼아았었고, 석사 때는 하드웨어와 운영체제에 관해 전공을 하였었다. 그러다 어찌어찌 흘러 지금은 웹 서비스 회사에서 웹과 관련된 개발을 하고 있다. 웹 회사에서 와서 느낀 것이지만 서비스를 개발하는데에 무수히 다양한 플렛폼들이 사용되고 있으며, 그중 단연 가장 친숙하게 상요되는 프레임워크는 스프링 특히 그 중에서 스프링 부트라는 사실을 알게 되었다. (node.js, go, c++ 기반 서버 들도 물론 사용되나 스프링보다는 적은듯 하다.) 하여 작년 6월부터 스프링 프레임 워크에 대해 친숙해지기 위해서 나름의 노력과 공을 들였었고 특히나 프레임 워크의 기능들을 중심으로 이해하기 위해서 부단히 노력했던 것 같다. 앗.. 필자의 이야기는 이쯤에서 접어두고, 해당 책에 대해서 리뷰를 시작하도록 하겠다~!
해당 책은 타임리프와 스프링 부트 , 그리고 필자도 생소한 도마(doma)?라는 O/R 매퍼를 사용한 서비스 개발 내용을 다루고 있었다. 데이터 프로세싱과 관련해서는 전통적인 JPA 스타일이나 아니면 myBatis를 사용하는게 일반적으로 느껴졌었는데, 새로운 내용을 접하니 물씬 설랜 기분이 들었었다.
또한 해당 책은 배포에 관해서도 친절히 다루고 있다. 무중단 배포를 어떻게 구성해야하는지, 그리고 팀개발 하는 방법, 운영은 어떻게 해야되는지, 컨테이너 사용방법, 마지막으로는 요즘 각광받고 있는 flux 기능들에 관해서 말이다.
【어떤 독자를 위한 책인가】
'배워서 바로 쓰는 스프링 부트2'는 간단히 요약하자면 스프링 입문자가 읽기에 크게 어려움이 없는 책이다. 일단 예제 자체가 타임티프를 이용한 간단한 서비스 제작 + rest api를 개발하는 것이기에 스프링 프레임 워크의 핵심적인 내용들만을 잘 집어가며 다루고 있기 때문이다.
또한 팀워크와 도커, 쿠버내티스 등의 컨테이너를 이용한 배포 및 서비스 관리 측면의 관점에 대해서 배울 수 있는 책이다. 더욱이 학교 공부를 막 끝마친 상태에서 취업을 하고자 하는 사람들이라면 이러한 관점과 방법론에 관해서 상당히 생소할 탠데, 이 책을 통해서 이 부분의 갈증을 어느정도 해소할 수 있을 것이라고 생각된다. (물론 어디까지나 초보자, 막 회사에 입사하는 신입들을 대상으로 쓰는 내용임을 기억하자.)
마지막으로 스프링 부트라는 프레임워크의 전체적인 구조의 핵심만을 따라 쉽게 배울 수 있다. 다만 아쉬운 점이 있다면 전문적인 내용을 이 책에서 얻기에는 한계점이 있으므로 입문서로써 사용하되 전문적인 내용은 타서를 참고하거나 혹은 인터넷의 자료를 참고해가며 공부하면 좋을 것이란 생각이 들었다.
【책의 구성】 '배워서 바로 쓰는 스프링 부트 2'책의 구성은 어떠한가.
이 책은 서문에서 강조하듯이 각 쳅터를 독립적으로 나누기 위한 저자의 노력이 물쓴 느껴지는 책이다. 하지만 필자가 권하는 학습 방법은 (더욱이 막 시작한 입문자라면) 가장 앞장부터 시작하여 차근 차근히 진도를 빼가며 공부하라는 것이다. 물론 필요한 부분을 그때 그때 참고해서 공부하면 좋지만 스켈레톤 학습법이라고(필자가 고안해낸 스터디 방법론이다.) 기본 뼈대를 잡아두고 난 후에 각각의 필요한 부분에 살을 채워넣는것이 좋다. 그렇기에 책을 처음부터 끝까지 한번 완독을 한 후에, 본인이 부족하다고 생각되는 부분을 집중적으로 다시 공부하길 권한다.
또한 이 책은 각 챕터별로 적절한 예시와 예제 코드를 들어가며 설명하고 있다. 컴퓨터 학문의 학습에 있어 백문이 불여 일타라는 말이 있다.(이것은 필자가 지어낸 말이 아니다. 진짜 있는 말이다.) 그만큼 눈으로만 책을 읽지말고 적어도 한번은 타이핑을 해보며 연습을 해보라는 것이다. 컴퓨터가 없다면 필자가 자주 사용하는 방법이긴 한데, 마치 내 눈앞에 컴퓨터가 있느냥 허공에 대고 타이핑을 하면 뇌에 똑같은 학습 효과가 있다고 하니 그런식으로라도 공부를 하길 독자분들에게 권한다.
【배워서 바로 쓰는 스프링 부트 2를 읽으며…….】
한때 스프링이라는 프레임 워크는 굉장히 복잡하고 기능이 너무나 방대하여 사람들이 조금? 다루기 꺼려하는 분위기가 있었다고 한다. 마치 백과사전을 그냥 떤져주고 알아서 사용해봐? 이런 느낌이였다면, 지금의 스프링 부트는 필수 모듈을 비롯한 바로 사용하는데에 필요한 모듈들과 기능들 그리고 설정들이 자동으로 잘 잡혀있는 프레임 워크이다. 그렇기에 요즘처럼 MSA가 강조되고 있는 시점에 다시금 주목 받고 있는 것 같다. 설정 하기 간편하고 쉽게 이용 가능하며 누구든 한번 학습하면 쉽게 자신만의 웹 서비스를 구현 할 수 있으니 말이다.
예전에도 그렇지만 지금은 웹은 생활 속에 당연한 기술이 되었다. 필자가 10~10대 후반에는 막 인터넷이라는 기술이 보급되어 대중화 되던 시대였다. 그때는 지금처럼 새련된 프레임 워크도 새련된 개발론도 없었다. 또한 FE 개발자, BE 개발자 full stack 개발자 그런 분류 역시 존재하지 않았다. 그냥 웹은 단순하며 멍청한 노가다의 개발 산물에 지나지 않았다. 하지만 지금 시대는 완전히 달라졌다. FE, BE 개발 영역 모두 상당히 넓어졌으며 전문화 되었고 세분화 되어 전문적으로 공부하지 않으면 안되는 시대가 되었고 무엇보다 상당히 많은 수의 프래임워크가 등장하여 개발자의 취향과 서비스 성격에 따라 취사 선택할 수 있는 시대가 되었다. 따라서 필자가 독자들에게 당부하는 것은 이것 저것 넓게 아는 것도 좋지만 하나의 프래임워크를 선정하여 그것을 전문화하고 효율을 극대화 하길 추천한다. 그렇게 한 프래임워크의 기능을 학습하면 다른 프래임워크를 이해하는데에 큰 어려움이 없기 때문이다.
그렇기에 필자는 독자들이 스프링 부트로 하여금 웹이라는 세상에 시작을 알렸으면 하는 바람이다.