본문 바로가기
BOOKS BOOKS BOOKS

이번에도 스프링이지만, 지금까지 본 책들과는 다른 스프링이다.

by 19810721 2020. 5. 29.

890 page 가 넘는다. 이거 다 배우면 흰 머리가 890 가닥... 응???

이번에도 스프링이지만, 지금까지 본 책들과는 다른 스프링이다.

 

배워서 바로 쓰는 스프링 프레임워크

 

예전에는 자바를 배우고, 스프링을 배우고, 스프링 MVC 를 익히면 기본적인 스캐폴딩을 익힌 것으로 여겨도 될만큼 많은 것을 할 수 있었다. 하지만 최근에는 스프링이 버전 5까지 발전하는 과정에서 많은 기능들이 추가되고 단순한 웹 개발에서 벗어나 전문적인 백엔드 API 서버로의 활용도를 높이는 한 편, 다양한 방면에서 두루 활용되고 있다. 그리하여 어느 덧 스프링 자체로써의 Deep 한 활용과, 스프링 부트의 Quick 한 활용의 두 갈래로 나뉘어져 지금까지 자바 개발의 한 표준으로써 큰 힘을 발휘하고 있다. 이번에는 스프링부트를 잠시 뒤로 하고 스프링 자체에 대해 쓰여진 책 배워서 바로 쓰는 스프링 프레임워크라는 책을 살펴본다.

 

스프링은 이제 더 이상 Simple 하지 않다. 스프링을 경량 컨테이너라고 표현하던 시절은 이제 뒤로 하자. 컨테이너 자체는 여전히 가벼운 편이지만 개발자가 배워서 활용할 수 있는 범위가 넓어졌다. 배워야 할 것들이 더 많아졌다는 사실이다. 불과 수 년 전에 KSUG 세미나 등에서 마치 개화기의 신문물처럼 쏟아져 소개되던 내용들이 이젠 스프링의 기본 스펙이 되거나 표준화 작업이 완료되어 활용되고 있음을 이 책을 통해 다시금 확인하게 된다. 이 책 타이틀에 ‘Advanced’ 라는 단어가 들어가야 옳았다고 생각한다. 실습 몇 번 하면 스프링을 마치 다 알게 되는 것처럼 제목을 지어 놓고 책 지면을 전부 코드로 채워 놓고 따라하라는 식의 책만 보다가 이 책을 보게 되면, 디테일한 설명에 감탄하고, 설명하기 어려운 부분을 과감히라 쓰고 요령으로 피하기만 하는 책들은 더 이상 손에 집어 들지 않게 될 거라 믿는다.

 

우선 어떤 스프링 책을 보더라도 거쳐야 하는 환경설정, DI, AOP 에 대한 이야기는 다음버튼을 연타하여 넘기자. 초반에는 너무나 당연한 내용들이 나온다. 스프링 책이니 당연하겠고, 물론 AOP 에 대한 설명도 충실하다. 아울러 이 책에 대한 칭찬을 하자면, 요즘 겨우 손바닥만한 작은 사이즈로 한 페이지에 30라인도 안되는 부실한 내용으로 옆에 두고 타이핑을 하려고 하면 한 손은 책이 넘겨지지 않게 붙들고 있어야 하는 불편함을 주는 책들이 많다. 그러나 이 책은 그러한 책들과 확연히 다르게 시원 시원하게 넓은 페이지에 여백을 줄이고 내용을 꽉 채워 890 여 페이지를 단단하게 채워 놓은 책이기에 결코 가볍지 않은 내용을 장점으로 이 책을 칭찬하고 싶다.

 

본 게임(?)1/3 지점에서부터 시작된다. 스프링 데이터는 그동안 RDB 에서 SQL 를 작성하고 mapper 를 통해 작업하던 것들은 이제 버리고 처음부터 JPA 를 소개하고 이어서 Querydsl 과의 통합을 설명한다. 이어서 JMS 를 설명하고 특히 스케쥴링에 대한 부분에 관심이 많은데, 개인적으로 RxJava 를 기본적인 지식없이 맞아 들였을 때, 혼란을 겪었던 동기,비동기,Sync/Async, Cache 부분에 대한 설명이 상세히 기술되어 있다. 내 지식으로 흡수할 수 있는가? 는 별개의 문제로 두고 말이다. 불과 몇 년 전에 외계인이 지구에 와서 이야기 하는 것 같던 기술들이 이제는 기본서에 한 세션을 당당히 차지하고 있는 것들을 보면 새로운 분야라도 늘 학습의 끈을 놓아서는 안되겠다는 생각이 다시금 든다.

 

한 때 스터디를 진행할 때 어노테이션에 대해서 너무 많고, 혼란스럽다는 이야기를 들은 적이 있는데 이는 JSR 표준과 스프링 어노테이션, 그 외 3rd 파트의 라이브러리에서 제공하는 어노테이션과 심지어 개인이 직접 만들어 내는 어노테이션 등 출처가 다양해서 그러할진데, 가칭 어노테이션 닷 인포 같은게 있어서 ㅎㅎㅎ 검색하면 소개해주는 웹사이트가 있으면 어떨까 하고 생각해본다. 그만큼 시간이 흘러감에 따라 알아야 할 것들이 많은데, 이 책에서 각 세션마다 표 형태로 설명하고 있으니 기본서라고 생각하고 한 번은 꼭 완독을 하길 바란다.

 

그 다음은 REST API 를 설명하고 이어서 RxJava 가 소개되는데, 반응형 스트림을 공부하면서 아직 용어가 확립되지 않아서 스터디 구성원 사이에서도 용어를 통일하느라 애쓴 기억이 있는데 이번 책에도 어찌할 수 없는 언어 이질감이 들었다. 이 책에서 딱 하나 아쉬운 부분이라고 하면 이 부분이지 않을까 한다. 억지로 단어를 직역하기 보다는 어쩌면 명사는 그대로 두고 발음을 적어 주는게 관심을 갖고 추가적인 학습을 하는 이로 하여금 구글 검색 키워드를 쉽게 도출하도록 배려하는게 아닐까 하는 개인적인 희망사항을 적어본다.

 

이제 수단적인 모든 내용을 마무리하고 궁극적으로 그래서 무엇을 할 것인가에 대한 대답을 이 책 역시 마지막 세션으로 할당했다. 데이터베이스를 연결하고, 서비스를 만들게 될 것이고, 스프링 부트도 짧지만 언급해준다. 이 책을 요약하자면 스프링을 처음 접한 사람에게는 어울리지 않고, 스프링을 단순 경험에서 만족하지 않고 탐구하고 깊이 배우고 싶은 사람에게 추천한다. 경험이 없거나 기초 지식이 부족한 사람은 책의 두께와 압도적인 많은 내용에 짓눌릴 것 같다. 시중에 가볍게 공부하라고 하는 책 많으니 경험을 해보고, 갈증을 느낀 다음 이 책을 펼쳐 보길 바란다. 커피 같은 책이다. 처음엔 이 쓴 걸 왜 마시는가? 하다가, 어느 새 옆에 없으면 가슴이 답답하고 머리가 아프고 심장이 뛰지 않는 것 같은 고통을 주는 책커피 한 잔 옆에 두고 마음의 준비를 단단히 하고 읽어보자.

 

내가 받은 고통을 여러분도 …………..         후르흐흐흐 ~