
“한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다.”
이야, 감탄사가 절로 나온다. 가이드북이라는 제목이 매우 적절하다. 실무 차원에서 만약 신입 개발자가 들어왔는데, 스프링 부트를 모르거나 대략적으로 알고 들어온 상황이라면, 이 책을 통해 스터디를 해보면 딱 좋겠다 싶다. 아니면 다른 언어와 프레임워크에 익숙한 개발자가 갑작스레 자바와 스프링 부트를 사용해서 프로젝트를 급하게 시작해야 할 때 빠른 기초 학습이 필요할 때 딱 맞는 책이거나.
입문서의 함정은 너무나 알려줄 게 많은 상황일 때 가장 핵심에만 집중한다거나 알아야 할 내용을 나름대로의 기준에 맞춰 나열한다거나, 현실과는 좀 동떨어진 예제 코드로 개념을 설명하거나 하는 식으로 진행한다는 점이다. 그러다보니 종종 맥락이 틀어지거나 진행이 느슨해 지루하거나, 앞뒤를 너무 자주 들락날락 해야 한다. 그래서 읽을 때는 뭔지는 알겠는데, 실무에 적용해보려는 순간 길을 잃기 쉽다.
이 책은 그럴 염려가 없다. 저자가 소개하는 코드를 직접 타이핑해보고 (import를 일일이 치는 실수는 하지 말자. IDE를 쓰면 쉽게 해결되니 로직을 포함하는 코드에 집중하자.) 실행해보면 된다. 단순한 코딩만 얘기하지 않고 배경이 되는 다른 서비스들도 도입은 쉽게 할 수 있도록 안내해주고 있다. 그러니 놓치지 말고 따라만 하면 개발 사이클을 이해하는 데 어려움이 없다. 심지어 테스트 코드와 docker, aws 배포까지 알려주고 있지 않은가.
Part 1. 스프링 부트 온보딩 가이드 안내에서는 목적과 활용법, 소개를 한다.
Part 2. 스프링 부트 기능 실습에서는 To-Do 리스트 Rest API 서버를 인메모리 기반부터 시작해 JPA 기반, 그리고 고급 JPA 기반으로 점차 난이도를 높여 진도를 나간다. 그 사이 DBMS에서 중요한 개념인 트랜잭션과 격리 수준까지도 도입했다. 또한 인증 기능으로 JWT 인증을 소개하며 실행 후 Swagger-UI를 통한 테스트까지 꼼꼼하게 안내한다. GraphQL 기술도 소개하는데, REST와 GraphQL까지 다 알아두면 어디선가는 써먹을 거라 확신한다. 개인적으로 둘 다 써봤지만 역시 요구사항에 딱 맞게 쓰는 게 유지보수면에서는 더 나은 것 같다. 마지막으로 Docker를 사용한 배포 이미지 생성과 이를 AWS에 배포하는 것까지 안내했다. 알짜배기만 소개하는데 한 번도 접해본 적 없다면 매우 생경하겠으나, 어차피 요즘 세상에서는 모르면 안 되는 것들이니, 조금 부담되더라도 익숙해져야 한다.
이 책에서 매우 가치 있는 것들 중 하나는 여기서 잠깐과 고민 상담소 코너다. 실무에서 꼭 알아둬야 할 팁 아닌 팁들이 담겨 있다. 솔직히 이걸 모르면 개발자 생활하기 힘들 거라 생각할 정도니 꼭 챙겨 읽어두면 좋겠다.
특히 여기서 잠깐, 소프링 데이터 JPA가 지원하는 트랜잭션 격리 수준 부분은 무조건 읽고 이해해야 한다. 이걸 잘 모르고 접근하면 심할 경우 데이터가 오염되는 극악한 상황에 처하게 될 수도 있다. 또는 너무 강하게 설정해서 시스템이 걱정될 정도로 느리게 작동하게 될 수도 있다. 사실 겪어봐야 이해가 될지도 모르겠지만, 그런 경험은 안 하는 게 백 배 낫다.
또 하나 이 책은 타 입문서와는 차별화된 부분이라 생각되는 게 테스트 코드가 의외로 잘 나와 있다는 점이다. 게다가 Swagger-UI를 통한 테스트도 안내한다. 즉효적인 테스트를 진행한다면 Swagger-UI를 통해 바로 해볼 수 있다면, 테스트 코드는 이보다는 더 체계적이고 효과적으로 코드를 보증할 수 있는 수단이며, 내가 아니더라도 다른 이가 이를 통해 코드를 이해하고 유지관리하는 데 도움을 받을 수 있기 때문에 아주 중요한 부분이다. 그러니 가급적이면 테스트 코드를 작성해서 유지하는 게 나중을 위해서라도, 그리고 본인을 위해서라도 습관을 들여두는 게 매우 좋다. 명심해라. 코드 자체가 사라지더라도 테스트 코드만 제대로 돼 있으면 로직과 코드를 충분히 복원해낼 수 있다.
이런 좋은 책을 만나면 왜 내가 프로젝트를 시작할 때 이런 책이 없었는지 한탄스러울 때가 있다. 반대로 말하면 이 책을 선택해서 읽은 분들은 이 책으로 얼마나 많은 도움을 받을 수 있을지 부러울 따름이다. 완독 후 머릿속에 이미지가 떠오른다거나 얼른 적용해보고자 하는 마음이 들었다면 본인 기준에서는 성공한 거나 다름 없다.
댓글 남기기