[도서 리뷰] 프로그래머를 위한 기초 해석학



길벗 출판사의 8차 신간 서평 이벤트에 참여하였다. 본인은 리뷰 이벤트에 등록된 많은 신간 도서 중 <프로그래머를 위한 기초 해석학> 책을 신청하였는데, 그 이유는 최근 자연어 처리 학습을 하며 수학에 대한 전반적인 기초가 많이 부족하다고 생각했기 때문이다. 그리고 단지 '기초'라는 단어가 붙어 있었다는 이유로 신청을 한 이 결정은 큰 후회를 낳게 되었다..

리뷰

1장에는 집합과 사상 그리고 실수의 특성 등 기본적으로 수학책의 초반부에 항상 등장하는 주제가 다루어 졌다. 책의 설명이 전반적으로 그림을 이용하여 진행되다 보니, 기본적 지식을 재점검하는데 큰 도움이 되었다. 그리고 이제 해석학의 본질적 목표인 수학적 개념들의 증명에 대한 내용들이 이어진다.

이 책은 초반부부터 책의 독자를 대학교 1, 2학년 수준 이상의 대학 수학을 이해하고 있는 사람으로 산정하고 있다. 따라서 문과 출신으로 고등학교 수학부터 이미 이과인들과의 간격이 벌어진 나에게는 책의 뒤로 갈수록 한 장 한 장을 넘기는게 쉽지 않은 책이었다. 그럼에도 그림을 이용한 추가적 설명들이 나를 책을 포기하는 행동으로부터 지켜주었다.

특히 유익하게 본 챕터는 6장 다변수함수 부분이었다. 딥러닝을 학습할 때, '역전파'라는 개념이 나온다. 한 입력값이 최종 출력값에 얼마만큼의 영향을 주는지를 계산하기 위해 출력값으로부터 입력값의 영향을 역으로 추적해나가는 이 행위는, 편미분 개념의 이해를 필요로 한다. 이전에는 굉장히 high-level 수준에서 '아, 이러한 개념으로 진행되는구나'라고 생각했던 이러한 편미분의 개념을 증명을 통해서 이해하려고 노력하니 어떠한 개념이구나라는 것을 전보다 깊게 이해할 수 있게 되었던 것 같다.

사실, 리뷰를 위해 책을 꾸역꾸역 모두 넘겨서 보려고 했지만 이해를 깊게 하거나 어떤 깊은 통찰력을 얻기에는 내가 이미 가지고 있는 수학적 지식이 부족해 쉽지 않았던 것 같다. 그럼에도 나같은 문과인들도 최소한 '시도'라도 해 볼 수 있을만한 기초 해석학 서적이 있다는 것은 단비와도 같다고 느꼈다. 연습문제도 거의 건드려 보지도 못할 만큼 어려운 것이 '증명'의 세계였지만, 마냥 어렵다고 멀리하지 않을 수 있을만큼 친절하게 도와주는 서적이었다는 것에 큰 의의가 있다고 생각한다. 인공지능에 관심 있고, 수학을 어려워 하셨던 문과 출신 분들께는 나와 같은 경험을 할 수 있는 좋은 책이라고 생각한다.

<프로그래머를 위한 기초 해석학>의 자세한 내용은 한빛미디에 홈페이지에서 확인하실 수 있습니다.


[도서 리뷰] 스프링 부트 입문자를 위한 <처음 배우는 스프링 부트 2>



한빛미디어의 서평 이벤트로 <처음 배우는 스프링 부트 2> 책을 받아 읽어 보았다. 정말 초심자의 입장인 나의 상태로 책을 읽어 보았기에, 알맞은 눈높이에서 리뷰를 진행할 수 있을 것 같다는 생각으로 리뷰를 남겨본다.

1장

스프링 부트에 대한 기본적 소개와 간단한 특징들을 다루고 있다. 스프링 부트가 스프링에 비해 간결한 설정 방법을 가질 수 있는 이유는 무엇인지, 책을 관통하는 프로젝트 '커뮤니티 게시판'의 설계를 위해서는 어떠한 설계도가 필요한지에 대한 이야기가 주를 이룬다. 이후, starter가 포함하고 있는 의존 관계에 대한 짧은 설명이 등장하는데 사실 이 부분은 스프링 부트 혹은 스프링을 전혀 접해보지 못했다면 이해할 수 없는 부분이었던 것 같다. 하지만, 책을 두 번 째 보면서 그 중요성을 다시 느낄 수 있는 부분이었다.

2장

스프링 부트 기반의 프로젝트를 생성하기 위해 필요한 환경 설정에 대한 내용을 다룬다. 즉, 이번 장에서는 JDK, IntelliJ 그리고 빌드 툴인 Gradle의 활용법 등이 상세 내용으로 등장한다. JDK와 IntelliJ의 경우 스프링 부트 교재를 본다는 가정 하에 이 책을 보는 모든 독자가 아는 부분일 것이기 때문에 이 부분들을 줄이고, Gradle의 특징이나 활용법에 대해 더 다루었으면 좋았을 것 같다. 아무래도 maven 기반의 프로젝트를 실습해와본 독자들이 많았을 것이고, 나 같은 경우도 gradle 기반의 프로젝트를 처음 따라 배워보았다. 따라서 막히는 부분에 있어 검색할 때 정보가 많이 나오지 않아 답답한 부분이 종종 있었다. gradle에 대한 설명이 조금 더 추가되어 있었더라면 이러한 가려운 부분을 조금이나마 해결해줄 수 있었을 것 같다! 이후 중요한 애노테이션 설정들에 대한 설명이 들어간 것들은 아주 만족스러웠다.

3장

3장은 스프링 부트 테스트를 다루고 있다. 테스트 스타터로 뭉쳐진 의존성을 통해 스프링 부트가 얼마나 쉽게 테스트의 수행이 가능할 수 있는지 실습을 통해 보여주고 있는 장이다. TDD는 개발을 함에 있어 매우 중요한 덕목(?)으로 여겨지기 때문에 책에 등장해야 할만한 적합한 주제이긴 하나, 갑작스러운 등장이 약간 당황스러웠던 장이었던 것 같다. 3, 4장의 위치가 바뀌고 4장에서 생성하는 모듈들에 대한 단위 테스트를 실습하는 것을 이후에 보여주었다면 더 나은 구성이었을 것 같다는 생각을 해본다.

4장

가장 도움을 많이 받았던 스프링 부트 웹에 대한 설명을 다루고 있는 4장이다. 기본적인 게시판의 구현을 실습하며, 어떠한 전체 구조를 지녀야 웹 페이지를 설계할 수 있는지에 대한 지식을 얻을 수 있었던 장이었다. 또한 게시판 구현에서 어려움을 많이 발생시키는 페이징 처리나, 서버 사이드 템플릿 '타임리프'에 대한 정보를 다루고 있었던 것도 아주 만족스러웠다. 아마 나 같은 초심자에게는 이번 4장과 6장이 책에서 얻을 수 있는 가장 좋은 정보를 담고 있는 장이라고 생각한다.

5장

스프링 시큐리티와 oAuth에 대한 내용을 담고 있는 5장이다. 이 장 역시 알짜배기 장이었던 것 같다. 스프링 시큐리티가 사실 초보가 처음 접하기엔 어려운 부분이라고 생각하는데 좋은 설명과 실습으로 개념을 잘 진행할 수 있도록 구성이 잘 짜여져 있었던 장이다. 그리고 요즘 핫한 기술인 oAuth를 다루고 있다는 점에서 좋은 점수를 주고 싶다. 각종 sns와 어떻게 연동을 할 수 있는지를 친절한 설명을 통해 도와주고 있다.

6장

4장과 함께 굉장히 마음에 들었던 6장이다. 6장은 REST API 서버를 다루고 있다. 최근 Rest API에 대한 관심이 굉장하다고 생각한다. 내가 최근에 접해서 그 인기를 늦게 체감한 것일 수도.. 각설하고, 이 장이 특히 좋았던 이유는 Rest API의 구성을 MVC 패턴으로도 한 번, 스프링 데이터 레스트로도 한 번 설계해보며 그 설명의 끈을 이어나간다는 점이다. 저자의 섬세함이 돋보인 장이라고 생각한다. 초기 설정을 위해 DB로 사용하고 있는 MySQL에 대한 설명이 조금 들어있었다면 좋았을 것 같기는 하지만, 이 정도는 독자가 삽질하며 배워봐도 좋은 부분이라고 생각한다. 실제로 나는 mysql connector 설정 때문에 삽질을 많이 했다.. MySQL이 8 버전 이후로 넘어가면서 많은 default 설정들이 바뀌었던 것 같다. 그럼에도 삽질을 통해 웹 서버와 API 서버를 연동했을 때, 이 장의 빛을 다시 느낄 수 있었다!

7장

마지막 장은 스프링 부트 데이터 배치를 다루고 있다. 사실 이 장은 리뷰를 하기 민망할 정도로 주의 깊게 보지 못했다. 아직 어렵다.. 이후에 다시 실습해보면 리뷰를 할 수 있을 것 같다! 다만 평이 좋은 것을 보니 좋은 내용을 다루고 있는 것 같다.


총평

리뷰 이벤트를 통해 증정 받은 도서이긴 하지만 주위에 누군가 스프링 부트를 배워보고 싶다고 하면 주저없이 추천을 해주고 싶은 책이다. 책이 짧은게 아쉬울 정도로 알짜배기 내용들을 잘 녹아내고 있는 책이라고 생각을 한다. 아마, 조금의 분량이 더 주어졌다면 분명 더 좋은 퀄리티의 책이 되었을 것 같다. 저자 분이 처음 집필한 책이라고 들었는데 아마 이후에 더 좋은 책의 저자가 되실 것 같다. 초심자의 시선으로 유익하게 볼 수 있었다 :)

<처음 배우는 스프링 부트 2>의 자세한 내용은 한빛미디에 홈페이지에서 확인하실 수 있습니다.






살면서 한 번쯤은 들어봤던, 그러나 자세한 내막까지는 알지 못하던 다양한 분야의 인문학적 지식과 사실을 이해하기 쉽게 풀어놓은 책. 인문학에 대한 기반 지식이 많지 않더라도 책을 읽는 내내 부담감을 느끼지 않을 수 있는 이유는 책 제목 그대로 우리가 기존에 알고 있던 '상식'으로부터 시작한 인문학에 대한 이야기이기 때문이다. 책을 읽는 내내 기분이 좋았고, 많이 배운다는 느낌을 받았다. 다만 다루고 있는 내용의 그 깊이가 깊지 않기에, 더 깊은 공부를 위한 추가 독서가 꼭 필요하다고 생각한다. 작가의 말처럼 세상을 비틀어 볼 수 있는, 그러나 이성적으로 바라보는 시각을 가질 수 있도록 더 읽고, 더 공부해야겠다. 인문학 입문서로 추천하고 싶은 책.

+ Recent posts