딥 러닝(Deep Learning)

딥 러닝(Deep Learning) 또는 심층 신경망(Deep Neural Network)은 컴퓨터 프로그램이 다양한 데이터의 특성을 학습하고, 분류하고, 판별하는 머신러닝 알고리즘의 집합을 말한다. 제프리 힌튼 교수(Geoffrey Hinton) 등이 이 용어를 본격적으로 사용했으며, 현재 점점 더 복잡한 구조로 발전하고 있다.

출처: <처음 배우는 인공지능> 37p, 한빛미디어

실전 스프링 부트 워크북, 빠르게 배우는 Spring Boot

키워드: 스프링 부트, 워크북, Spring Boot, 마이크로서비스, 실전, 한빛미디어, Apress

수년 간 들어왔던 스프링(Spring)에 대해 어느 정도 감이라도 잡아야겠다는 생각에 <스프링 부트 실전 워크북>을 읽게 되었다.

책의 주제가 스프링(Spring)이 아니라 스프링 부트(Spring Boot)였지만 그래도 새로 도입되는 솔루션의 코드를 파악하는 데 필요한 기초지식을 쌓을 수 있었다.

1. 주제

이 책은 높은 생산성을 제공하는 스프링 부트(Spring Boot)를 처음 접하는 독자를 대상으로 스프링 부트의 기초부터 활용까지 빠르게 소개한다.

책의 부제가 마이크로서비스 빌드, 메시지와 DB 핸들링, 테스트, 플러그인까지인데, 문자 그대로 스프링 부트의 다양한 기술을 다룬다.

2. 구성

이 책은 총 14장과 부록 1개로 구성된다.

1장 ~ 4장은 스프링 부트의 기초에 대해서 다룬다. 5장에서는 스프링과 스프링 부트를 비교한다. 이 장을 보면 스프링 부트(Spring Boot)과 왜 생산성이 높다고 하는지 알 수 있다. 그리고 6장 ~ 11장은 테스트, 데이터 엑세스, 웹, 보안, 메시지 서비스, 모니터링을 위한 액추에이터 모듈을 다룬다. 12장 ~ 13장은 스프링 부트 배포 방법과 클라우드에서 운영하는 방법을 알아본다. 그리고 14장은 스프링 부트 앱을 마이크로서비스로 개발하는 방법을 소개한다. 끝으로 부록은 스프링 부트 1.4.x 릴리스 노트를 소개한다.

3. 아쉬운 점

책을 읽으면서 아쉬웠던 점을 먼저 소개하겠다. 책을 읽다보니 처음 접하는 용어들이 종종 나왔는데 이에 대해 역자의 주석이 없는 경우가 더 많았다. 예를 들어 ‘구성보다 관례’ 패턴에 대한 소개가 나왔는데 이 용어에 대해 간단히라도 소개하면 더 좋았을 것 같다. 또한, 173쪽에 보면 H2 웹 콘솔에 대해 설명하면서 “왜 그런지는 필자도 잘 모르겠지만…” 이라는 내용이 나오는데 이에 대해서 (찾을 수 있었다면) 역자가 설명을 적었으면 하는 아쉬움이 있었다. 번역서는 단순히 외국도서를 한국어로 번역한 것이 아니라 각종 용어에 대해 역자의 주석을 추가하여 독자들의 이해력을 돕고, 출시되는 시점에 맞추어 소스 코드가 정상적으로 실행되는지 검증하는 역할도 해야한다고 생각하기 때문이다. 가장 아쉬웠던 점은 실행되지 않는 예제가 있었다는 것이다.

예를 들어, 10장에서 소개한 HornetQ는 Deprecated 되어 실습 때 사용한 Spring CLI v.1.5.4 RELEASE에서는 해당 패키지를 설치할 수 없었다.

HornetQ 안녕

그리고 OAuth2 실습 때도 책에서는 spring -init 으로 프로젝트를 생성하면 pom.xml 에 spring-security-oauth2 가 추가될 거라고 설명이 되어있지만 실습해보면 코드에 추가 되지 않아서 혼란스러웠다. (258쪽 ~ 260쪽)

스프링 부트 실전 워크북 예제 오류

스프링과 스프링 부트를 어느정도 아는 사람이 실습을 했다면 분명히 스스로 해결이 가능했을 것이다. 다만, 책에 나온 실습을 따라했을 때 제대로 되지 않으면 독자는 기분이 상쾌하지 않은 게 사실이다.

4. 좋았던 점

책을 읽으면서 좋았던 점이 많았던 것도 사실이다. 앞에서 역자의 설명이 더 있었으면 좋겠다는 내용을 적었는데 실제로 책을 읽다보면 역자가 추가로 설명한 내용들이 많이 있어서 책을 읽는 데 큰 도움이 되었다. 그리고 5장은 스프링(Spring)과 스프링 부트(Spring Boot)를 비교하여 왜 스프링 부트가 생산성이 높은지 보여주는데 코드의 간결함, 특히 Groovy 코드의 깔끔함이 매우 인상깊었다. 그리고 하나의 책에 여러 내용을 담다보니 깊이 있는 내용까지 들어갈 수는 없었지만, 다양한 내용을 빠르게 훑을 수 있어서 앞으로의 학습 방향 설정에 도움이 되었다.

스프링 부트 일기장 앱

STS

스프링 부트 실전 워크북 H2

5. 총평

한 술에 배부를 수는 없는 것 같다. 아쉬웠던 점도 있었지만 그래도 스프링 부트(Spring Boot)를 빠르게 훑을 수 있었다는 점에서 전반적으로 만족한다. 무엇보다 스프링 부트는 웹 서버를 내장하고 있어서 예제 실행 시 번거로운 환경설정이 필요 없다는 점과 애플리케이션 배포 또한 ./mvnw package 명령어로 한 번에 된다는 점이 매우 인상적이었다.

스프링 부트(Spring Boot)를 빠르게 알고 싶은 사람이라면 이 책을 읽고 분명히 무언가 얻어갈 수 있는 것이 있을 것이다.

도서에 대한 추가 정보는 한빛미디어 공식 사이트를 참고하세요.