메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

처음 배우는 스프링 부트 2 리뷰

rnejrl***

|

2018-11-18

처음 배우는 스프링 부트 2

구현 순서에 맞춰 프로젝트를 진행하며 배우는 실전 입문서 이 책은 스프링 부트 입문자의 눈높이에 맞춰 스프링 부트 환경 설정부터 커뮤니티 게시판 구현까지를 다룹니다. 스프링 부트의 기본 개념과 다양한 스프링 부트 스타터를 이용해 커뮤니티 게시판 구축 프로젝트를 구현합니다. 스프링을 몰라도 공부할 수 있도록 가능한 한 쉽게 설명하고 따라 할 수 있게 예제 코드와 그림을 제시했습니다

  • 저자 : 김영재
  • 출간 : 2018-10-01

우선 리뷰를 시작하기 전에 필자가 Spring framwork를 접해본 경력을 말해보겠다. 국비지원학원에서 호스팅까지 완료한 프로젝트를 한 번 진행해본 적이 있고, N사에서 진행했던 boostcourse라는 온라인 교육프로그램에 참여한 적이 있다. (끝까지 수료하지 못했고 프로젝트 6개 중 3개를 진행하고 중단하였다.) spring을 잘 안다고 할 수는 없고, 혼자 공부했던 학부생 정도의 수준이라고 보면 적당한 표현이지 않을까 싶다.

우연인지 필연인지, 현재 다니고 있는 직장에서도 본의 아니게 외주 업체의 spring framework로 만들어진 프로젝트를 수정해야하는 상황이 와서 만지고 있다.

지금까지 스프링 프레임워크를 경험하면서 가장 짜증났던 점은 ‘환경 설정’이다. 잦은 eclipse의 오류, 라이브러리 하나를 쓰기 위해서 거쳐야 하는 수 많은 파일 변경과 클린 빌드에 걸리는 오랜 시간… 정말 코드를 작성하기까지 너무나도 많은 준비가 필요했다.

문제는 이런 에러들이 일어나는 근본적인 원인을 알아야 에러가 재발생하거나 유사한 오류가 발생하면 해결을 할 수 있는데, 시간이 없는 나는 구글링을 통한 주먹구구식 해결로 상황을 넘어가고 있다는 것에 있었다.

그래서 기존 spring framework의 환경설정을 간략화해서 나온 spring boot에는 관심이 갈 수 밖에 없었고, 좋은 기회가 오게되어 이번에 새로 출간된 ‘처음 배우는 스프링 부트 2’를 리뷰할 수 있는 자격이 주어졌다.

지원을 받아 작성된 리뷰이지만, 가식적인 리뷰는 소비자에게 전혀 도움이 되지 않기도 하고 필자에게 딱히 돌아오는 이득도 없으므로 굉장히 솔직하게 작성했다는 점을 먼저 밝힌다.

이 책을 한 마디로 요약 하면 개발자의 ‘자생력’을 키워주는 책이다.

스프링 부트를 어떻게 사용하고의 문제가 아니라 훨씬 근본적인 내용을 다룬다. 이러한 것을 보면서 저자의 내공이 얼마나 깊은 지를 알 수 있었다. 책의 내용 중에 스프링 부트가 어떻게 자동 환경 설정을 하는 지에 대해 다루는 부분이 있다. 사실 책을 더 읽어보면 이러한 자동 환경 설정 원리는 개발자가 크게 신경쓰지 않아도 된다. 클릭 한 번이면 해당 작업을 스프링 부트에서 모두 알아서 해주기 때문이다. 일반적인 책이었다면 아마 이렇게 어려운 동작 원리 따위는 나중에 추가적으로 공부해보라고 하면서 넘어갔을 것이다. 그런데 왜 저자는 따로 지면을 할애하여 이러한 섹션을 넣은 것일까?

이 질문에 대한 답을 책에 있는 저자의 말을 인용해서 대신해본다.

‘동작 원리가 어떻게 추상화되었는지 내부 코드를 통해 파악하면 이 과정을 좀 더 깊게 이해할 수 있기 때문입니다. 스프링 부트의 자동 설정을 정확하게 파악했으니 이제 스프링 부트를 부트답게 설정해 더 효율적으로 사용하는 방법을 알아보겠습니다.’

이 두 문장을 간략하게 말해보자면

  1. 동작 원리를 이해해야
  2. 스프링 부트를 내 입맛대로 바꿔서 활용할 수 있다.

라고 할 수 있겠다.

내가 지금까지 스프링 프레임워크를 다루면서 고통스러웠던 이유는 스프링 프레임워크가 내부적으로 어떻게 돌아가는 지를 알지 못했기 때문이고, 이러한 깊은 부분을 나의 능력으로는 탐구할 수 없었기 때문이다. 아마 대부분의 주니어 개발자 혹은 스프링 프레임워크를 처음 접하는 많은 사람들이 나와 같은 상황일 것이다. 그런데 이 책은 우리의 부족함을 메꿀 수 있도록 스프링 부투의 구체적인 동작 원리와 어떻게 소스 코드를 찾아서 읽고 이해해야 하는지를 알려준다. 필자는 이러한 부분의 차이가 초급, 중급 개발자를 가르는 기준이라고 생각한다. 만약 필자가 스프링 프레임워크를 배울 때 이렇게 직접 소스 코드를 되짚어 가며 이해를 하는 방법을 알려준 자료 혹은 스승이 있었다면 실력을 더 향상시킬 수 있지 않았을까 하는 생각이 든다.

책을 읽으며 느낀 장단점을 간단하게 정리해보겠다.

장점

  • 위에서 말했듯이 ‘자생력’을 키워준다. 스프링 부트의 버전이 달라질 때마다 어떻게 변경사항을 확인해야하는지부터 알려주고 시작한다. 즉, 스프링 부트를 배우는 사람들이 직접 변경된 소스를 찾아보고 읽으면서 성장할 수 있는 ‘자생력’을 길러주는 것.
  • 스프링 프레임워크에서 가장 까다로운 부분은 환경설정 부분이다. 아무리 스프링 부트로 넘어왔다고 해도, 커스텀을 위해서는 각 설정이 의미하는 부분을 알아야하는데 이 책에서는 혹시나 독자가 각각의 환경 설정에 대해 모를 경우를 대비해 설정 하나하나 놓치지 않고 의미를 설명하고 있다.
  • 프로젝트 기반 설명. 현재 동작하는 최신 버전으로 내용이 구성되어 있기 때문에 실제로 내가 진행하는 스프링 부트 프로젝트에 활용할 수 있다. 또한 막히는 부분이 있으면 끙끙댈 필요없이 깃허브에서 예제코드를 받아 비교하면 된다. 혼자 막힘없이 공부할 수 있다는 것은 굉장히 효율적으로 시간을 쓸 수 있게 만들어 준다.
  • 데이터, api의 흐름을 설명해준다. 스프링 부트는 기존 스프링 프레임워크를 축약해놓은 것이다. 따라서 기존에 스프링 프레임워크에서 사용하던 프로젝트의 데이터와 api의 흐름을 파악 할 수 없다면 어떻게 이 프로젝트가 돌아가는 건지 이해하기 힘들다. 그런데 이 책에서는 도표와 이미지 자료를 풍부하게 활용하여 데이터와 api의 흐름을 먼저 이해하고 상세한 부분으로 넘어가게 하고 있다.

단점

  • 어느 정도 진입 장벽이 존재한다. 기본적으로 spring framework 4를 통해 프로젝트를 진행해본 사람이어야 원활한 이해가 가능하지 않을까 싶다. spring framework를 간략화해놓은 spring boot이지만, 그래도 생소한 개념들이 너무 많이 나온다.
  • 또한 소스 코드를 무리 없게 이해할 수 있는 Java에 대한 이해도(객체지향언어에 대한 이해)가 선수되어야 한다.
  • 생각보다 많은 오류에 직면할 수 있다. 스프링 프레임워크에 대한 환경 설정 오류는 정말 많다. 책에서 다루지 않은 에러도 발생할 수 있는데, 이런 부분을 혼자 해결 할 수 있는 능력이 있어야 원활하게 프로젝트를 따라하면서 공부할 수 있다.

사실 책을 읽으면서, 완성도에 꽤나 놀랐다. 내가 스프링 프레임워크를 책으로 배울 때는 그냥 코드를 따라하면서 배웠던 것 같은데, 이 책은 읽는 사람의 사고력까지 올려주는 것 같았다. 그만큼 저자분이 목차부터 내용까지 섬세하게 신경쓰셨기 때문이리라.

개인적으로 이 책을 추천하는 대상 독자는 다음과 같다.

‘기존 스프링 프레임워크의 환경설정에 대한 시간 낭비를 줄이고, 빠른 시간에 로직에 집중하여 웹앱을 완성해보고 싶은 주니어 웹 개발자’

만약 당신이 웹 개발자이고 스프링 프레임워크를 다루고 있다면, 스프링 부트는 선택이 아닌 필수가 될 것이다. 당신 자신과 회사를 위해서 한 단계 더 실력있는 중급 개발자로 거듭나고 싶은 사람이라면 이 책을 눈여겨 보시길. 

yes24 구매 링크 : 처음 배우는 스프링 부트 2

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?