처음 처음 | 이전 이전 | 1 | 2 |다음 다음 | 마지막 마지막
2023 권규호 공무원 국어 개기문 : 문학 2023 권규호 공무원 국어
권규호 지음 / 권규호언어연구실 / 2022년 6월
평점 :
구판절판


많은 양의 문제를 풀어보며 배운 개념들은 적용하기에는 최적화된 교재입니다. 동형문제까지 포함되어 있어 은근히 많아 보이지만 그만큼 다 풀고 나면 점수가 쑥 올라있을 것 같아요 개기문은 선택이 아닌 필수입니다

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
스프링4 입문 - 웹 애플리케이션의 기초부터 클라우드 네이티브 입문까지 (Hibernate, JPA, MyBatis 연계)
하세가와 유이치 외 지음, 권은철 외 옮김 / 한빛미디어 / 2017년 11월
평점 :
장바구니담기


이 책은 실습보다는 이론 위주로 서술되어 있는 책입니다. (물론 중간에 설명들을 뒷받침해주는 예제 코드들이 실려 있기는 합니다.) 2010년대 초부터 스프링 책들이 굉장히 많이 출간되고 있는 것 같은데, 대부분의 책들이 이론보다는 실습 위주로 되어 있습니다. 


사실 저는 책에 나온 내용을 차근차근 따라 쳐 가면서 배우는 스타일이라서 실습 위주로 된 책을 선호합니다. 하지만 개발을 하다 보면 이론이 부족하다는 생각이 들 때가 많이 있습니다. 이럴 때 이론서를 찾아보게 되는데, 보통 스프링 이론서로는 이일민 님의 <토비의 스프링>을 보게 됩니다. <토비의 스프링>은 3.1 기준으로 되어 있습니다. 스프링은 벌써 4가 나온지 옛날이고, <토비의 스프링>은 너무 내용이 방대하게 구성되어 있어서 읽다가 포기하게 되는 면이 있습니다. 이런 점에서 한빛미디어의 <스프링4 입문>은 스프링으로 웹 개발자 입장에서 꼭 필요한 내용만 잘 넣은 이론서라는 생각이 듭니다.


난이도 면에서 보자면, 이 책 제목에 '입문'이라는 단어가 들어가 있긴 하지만, 왕초보 입문자들이 이 책을 곧바로 이해하는 것은 무리가 있습니다. 토비의 스프링 같은 이론서와 실습 위주로 구성된 튜토리얼 책의 중간에 위치해 있다고 보면 됩니다. 이 책은 완전 초보자보다는 튜토리얼 책을 한 번씩이라도 따라해 보았거나 스프링으로 어떻게든 개발을 하고 있지만 이론적인 내용이 부족할 때 정독하면 좋을 것 같습니다.


이 책의 1장에서는 왜 스프링 프레임워크가 오늘날 주류가 되었는지 잘 설명해 놓았습니다. 과거에 써 왔던 웹 기술에 어떤 문제가 있었는지, 스프링이 그런 문제들을 어떻게 해결했는지, 스프링이 탄생한 배경과 개요가 잘 설명되어 있습니다. 


2장과 3장에는 DI와 AOP의 기본 개념과 스프링에서 DI와 AOP를 어떤 식으로 지원하는지 설명되어 있습니다. 이 책에는 DI와 AOP가 무엇인지 구구절절 설명은 나오지 않기 때문에 미리 개념을 어느 정도 파악하고 있어야 합니다.


4, 5, 6장은 스프링 웹 개발에서는 빠질 수 없는 MVC에 해당하는 내용입니다. 8장은 Hibernate, JPA, MyBatis 등 다양한 ORM들을 스프링에서 어떻게 쓰는지 설명이 잘 되어 있습니다. 최소한의 내용만 읽으려면 1장부터 6장까지, 그리고 8장을 읽으면 될 것 같습니다.


이 책의 장점 중 하나는 스프링에서 사용할 수 있는 다양한 개발 방법을 소개해 놓은 것입니다. 개발 중에 무언가 인터넷에 검색해보면 활용할 수 있는 방법이 너무나 많아서, 어떤 방법이 좋은 것인지 알 수가 없습니다. 개발을 하면서도 이렇게 하는 것이 맞는 것인지 의문이 들 때가 있고 그럴 때마다 스트레스를 받게 됩니다. 단편적인 예로 Bean 정의 파일을 이용할 것인가, 애노테이션을 이용할 것인가, 아니면 JavaConfig를 이용할 것인가 고민하는 것부터가 그렇습니다. 여태까지 써 왔던 방법들 중에서 이 책을 보고 비로소 이해하게 된 것들도 많이 있습니다.


7장 스프링 시큐리티, 9장 스프링 캐시, 10장 스프링 배치는 한 번도 자세히 공부해 본 적이 없었던 부분입니다. 이 책에 설명이 잘 되어 있어서 나중에 스프링을 쓰게 된다면 유용하게 써먹을 수 있을 것 같습니다. 


아쉬운 부분은 이 책의 마지막 장인 11장 클라우드 네이티브 입문 부분입니다. 이 장은 너무나도 간략하게 스프링 부트를 소개하는데 그쳐서 아쉬웠고, 뒷부분에 소개되어 있는 PWS 클라우드 이용 방법이 2015년 말부터 설명대로 되지 않는다는 주석이 달려 있는 점도 아쉬웠습니다. 책 부제에도 나오는 만큼 조금 더 내용을 보강해야 하지 않을까 싶습니다.


앞에서도 적었지만, 이 책은 스프링 튜토리얼을 끝내고 조금 더 이론적인 접근을 원하는 웹 개발자에게 추천드립니다.



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
RxJava 프로그래밍 - 리액티브 프로그래밍 기초부터 안드로이드까지 한 번에
유동환.박정준 지음 / 한빛미디어 / 2017년 9월
평점 :
절판


여기저기에서 리액티브 프로그래밍과 함수형 프로그래밍에 대해서 많이 들어오면서 관심이 생기던 찰나에, 한빛미디어에서 RxJava 프로그래밍 도서가 출간되었다는 소식을 접하게 되었습니다. RxJava는 자바에서 리액티브 프로그래밍을 지원하기 위해 넷플릭스가 만든 라이브러리입니다. 이 라이브러리를 사용해서 데이터 흐름 중심의 프로그래밍이 가능하게 됩니다. 

실무에서 자바를 사용하고 있지만, 객체지향조차 제대로 지키는 것이 버겁게 느껴질 때가 많았습니다. 그래서 리액티브 프로그래밍, 함수형 프로그래밍에 막연한 관심은 있었지만 정작 시간도 없고 공부할 여건이 안 되었습니다. 

이 책을 읽기 전에 함수형 프로그래밍의 기초 개념을 전혀 모르는 상태에서 출발했습니다. 리액티브 프로그래밍의 개념도 전혀 알지 못했고, RxJava라는 라이브러리가 있다는 것도 금시초문이었습니다. 업무와도 크게 관련이 없을 것이라고 생각했고, 새로운 것을 배우는데 도전하는 마음만 가지고서 책을 읽기 시작했습니다.

패러다임을 바꾼다는 것은 굉장히 낯설고 두려운 일인 것 같습니다. 대학생 때 C를 배우다가 다음 학기에 C++, Java를 배우기 시작했을 때 낯설었던 기억이 새록새록 납니다. 그나마 객체지향 컨셉은 좋은 교수님 수업을 들어서 그럭저럭 이해할 수 있게 되었는데, 함수형 개념에 대해 다른 사람들에게 넌지시 들었을 때에는 이해하기조차 힘들었습니다. 사실 몇 년 전에 함수형 프로그래밍을 배워보고 싶어서 하스켈 책을 보다가 포기했던 적이 있어서 특히나 더 그랬습니다.  

지금 회사에서는 자바 7 버전을 사용해서 개발하고 있는데, 평소에 자바는 리액티브 프로그래밍이나 함수형 프로그래밍과는 거리가 멀다는 생각을 가지고 있었습니다. 그런 것들을 하려면 새로운 언어를 사용해야 하는 것으로 생각하고 있었습니다. 이런 와중에 한빛미디어의 RxJava 프로그래밍 책을 보고 일차로 리액티브 프로그래밍을 Java 언어로 짤 수 있다는 사실에 놀랐고, 이차로 자바 1.6에서도 돌아간다는 사실이 신기하게 느껴졌습니다. 

만약 새로운 언어로 리액티브 프로그래밍을 시작했다면 더 낯설고 힘들어서 포기했을 것 같습니다. 그런데 한빛미디어의 RxJava 책은 익숙한 자바로 실습 예제를 따라 쳐보며 배울 수 있어서 전혀 낯설지 않고 좋았습니다. 리액티브 프로그래밍을 자바에서 할 수 있을 것이라고는 기대하지 않았는데, 심지어 자바 버전도 1.6까지 지원한다고 하니 놀라지 않을 수 없습니다. 지금 개발하고 있는 자바 애플리케이션에서도 RxJava 라이브러리만 임포트하면 당장 일부분에도 적용할 수 있으리라는 생각이 들었습니다.

이 책을 좀 더 들여다보면 배우기 쉬운 순서로 차근차근 서술되어 있다는 것을 알게 됩니다. 먼저 CHAPTER 1에서는 리액티브 프로그래밍을 설계하는 마블 다이어그램을 읽는 방법을 배우며, 리액티브 프로그래밍의 개념을 조금씩 알아갑니다. 

CHAPTER 2에서는 Observable이라는 아주 중요한 개념을 다룹니다. Observable은 ‘관찰 가능하다’라는 뜻으로, 리액티브 프로그래밍에서는 데이터들을 Observable로 만들고 누군가 이 Observable를 구독하게 함으로써 구독자들이 데이터를 받아 처리할 수 있게 합니다.

처음에 책을 읽으면서 Observable의 개념을 이해하는 것이 쉽지 않았습니다. 지금도 솔직히 Observable이 100% 완벽하게 이해되지는 않습니다. 아무리 자바로 객체지향프로그래밍을 해 왔다고 하지만, 아직도 명령형 방식을 따라 절차대로 처리하는 방식이 더 직관적으로 보이기 때문입니다. 

그런데 책을 읽어나가다 보면 왜 데이터를 Observable로 만들고 옵서버 형태로 구독자들이 구독을 하게 하는지 어렴풋이 공감하게 될 때가 있습니다. 간단히 생각해보면 데이터를 처리하는 애플리케이션에서는 데이터가 중심이 되고, 데이터들이 들어왔을 때 이벤트를 실행하는 로직이 필요합니다. 데이터 중심의 패러다임을 이해하는 것이 어렵긴 하지만 실습 예제를 따라하다 보면 어느 정도 공감은 갑니다.

CHAPTER 3에서는 기본 리액티브 연산자인 map(), filter(), reduce()에 대해 다룹니다. 단순히 생각해보면 어떤 데이터를 처리하기 위해서는 우선 그 데이터를 함수에 매핑하여 연산하여 결과값을 받고, 데이터 중 필요한 것만 필터하고, 결과를 통합하는 과정들이 필요합니다. 이 과정이 map() --> filter() --> reduce() 인 것입니다. 3장에서는 RxJava에서 제공하는 map(), filter(), reduce() 부류의 여러 함수들을 실습해 볼 수 있게 구성되어 있어 유용합니다. 특히 구구단을 리액티브 방식으로 짜보는 예제가 이해하는데 매우 도움이 되었습니다.

2주간 차근차근 3장까지 따라하면서 기본적인 리액티브 연산자를 배울 수 있었습니다. CHAPTER 4에서는 더 많은 리액티브 연산자들을 카테고리별로 배울 수 있게 되어 있고, CHAPTER 5에서는 비동기 프로그래밍을 위한 스케쥴러에 대해 학습하게 됩니다. 6장에서는 안드로이드에서 RxJava를 사용하는 예제를 배울 수 있어 더욱 더 기대가 됩니다.

한빛미디어의 RxJava 프로그래밍은 예제 실습 위주로 구성되어 있어서, RxJava를 처음 알아가는 사람들에게 안성맞춤인 책입니다. 함수형 프로그래밍, 람다 표현식에 대해 전혀 알지 못해도 차근차근 따라하면서 점차 이해를 할 수 있어서 매우 좋습니다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
신경망 첫걸음 - 수포자도 이해하는 신경망 동작 원리와 딥러닝 기초 머신러닝/딥러닝 첫걸음 시리즈
타리크 라시드 지음, 송교석 옮김 / 한빛미디어 / 2017년 4월
평점 :
장바구니담기


인공 신경망은 딥러닝의 기초가 되는 개념으로, 컴퓨터가 마치 생물 두뇌의 신경망처럼 스스로 학습을 해 나갈 수 있는 구조를 말합니다. 몇 년 전부터 딥러닝에 관련된 읽을거리들이 인터넷에 많이 올라오고 딥러닝을 다루는 책들도 나오기 시작하고 있지만, 머신러닝에 이제 막 관심을 두기 시작한 초심자에게는 여전히 학습 장벽이 높은 듯합니다. 특히 다른 딥러닝 책을 읽으면서 여실히 느껴왔던 점은 딥러닝 기본 원리에 대한 이해가 스스로 부족하다는 것이었습니다. 그러던 중에 한빛리미디어에서 타리크 라시드의 <신경망 첫걸음>이라는 책이 출간되었다는 소식을 듣게 되었고, 한빛리더스 리뷰어 기회를 통해 책을 접하게 되었습니다. 읽고 싶던 책이라서 더욱 더 반가웠습니다.


타리크 라시드의 <신경망 첫걸음>은 인공 신경망의 개념을 초심자들이 아주 쉽게 이해할 수 있도록 설명하고 있습니다. 책 표지에 나온 '수포자도 이해할 수 있다'라는 부제처럼, 미분이 무엇인지까지의 수학 지식만 머리 속에 가지고 있다면 책 내용을 술술 따라갈 수 있고, 심지어 프로그래밍도 알 필요가 없습니다. 책의 1부에서는 신경망의 개념을 다루고, 2부에서는 일반인의 입장에서 파이썬 프로그래밍을 시작하는 방법부터 손글씨 데이터셋으로 글씨를 인식하는 코드 작성을 따라해보면서 인공 신경망 개념을 익힐 수 있게 도와 줍니다.


이 책에서는 은닉층이 존재하는 3개 이상 계층의 신경망에서 어떤 일이 일어나는지 차례 차례 설명을 하고 있습니다. 신경망의 입력에 가중치를 곱해 출력을 만들어내는 과정을 그림으로 자세하게 보여주고 있는 것이 장점입니다. 그림도 한 눈에 알아보기 쉽게 되어 있습니다.


인터넷에 나오는 글을 읽다 보면 가중치를 통한 신경망 학습에서 오차 역전파라는 단어가 많이 나오는데, 역전파가 어떤 식으로 동작하는지 쉽게 설명되어 있는 곳은 찾아보기 힘듭니다. 그 원리를 어려운 수식 없이 이해할 수 있게 풀어 설명된 책은 이 책이 처음인 것 같습니다. 그만큼 초보자가 처음 신경망을 공부하기에 이 책이 탁워한 선택이라고 생각합니다.


이 책의 장점은 프로그래밍을 전혀 모르는 사람도 파이썬 코드를 작성하는 방법을 통해 따라할 수 있게 도와준다는 점입니다. 다른 책들과 비슷하게 이 책에서도 프로그래밍 언어로 파이썬을 사용하고, 행렬 계산은 numpy, 시각화는 pyplot 라이브러리를 사용하고 있습니다. 파이썬이 딥러닝을 구현하기 좋은 쉽고 간편한 도구로 인정받고 있는 것 같습니다. 이 책에 나온 예제를 따라해보면 데이터셋만 있다면 다른 데이터들도 학습을 시켜볼 수 있을 것 같은 자신감이 생깁니다.


어려운 수식 대신 쉬운 말로 신경망 학습 원리가 풀어쓰여져 있어서 그 개념을 매우 쉽게 이해할 수 있는 책이었습니다. 머신러닝을 하다가 기초 원리가 갑자기 생각이 안 날 때 이 책을 다시 보면 기억나고 좋을 것 같아 추천합니다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
코드로 인프라 관리하기 - 효율적인 인프라 관리를 위한 자동화 방법
키프 모리스 지음, 강재준 옮김 / 한빛미디어 / 2017년 3월
평점 :
구판절판


이 책은 클라우드 환경에서 서버와 소프트웨어 배포를 어떻게 효율적으로 관리하고 자동화하할 것인지에 대한 노하우, 패턴을 다루는 책입니다. 이 책 앞 부분에는 책이 다루고 있는 주제를 좀 더 잘 이해할 수 있도록 클라우드 환경에 대한 간략한 개요 등이 나옵니다.


사실 이 책을 읽기 전에 "코딩으로 인프라 관리하기"라는 제목만 보고는, 개발하고 있는 애플리케이션을 자동으로 테스트하고 서버에 배포하고, 또 서버들을 동적으로 구성하고 늘리거나 줄이는 등 서버 관리를 자동화하는 방법을 다루는 책이라고 생각했습니다. 스스로 개발을 구식으로 하는 점이 콤플렉스였고 개선할 필요가 있다고 생각해 왔기 때문에 이 책을 고르게 되었고, 보고 나면 자동화된 개발 환경을 구축하는데 도움이 될 것이라고 생각했습니다.


막상 이 책 첫 장을 읽기 시작하면서부터는, 제가 생각한 것보다 훨씬 더 앞서 나간 내용을 다루고 있다는 것을 깨달았습니다. 다시 말해서 이 책은 현재 클라우드 환경을 경험하고 있는 관리자 겸 개발자들을 위해 적합한 책입니다. 이 책을 읽고 유용하다고 느낄 수 있는 사람들은 AWS 같은 공용 클라우드를 접해 본 사람들일 것 같습니다. 이 책에서의 '인프라'라는 말은 클라우드 환경에서 서버들을 멀티로 띄우고 있는 상태를 말하는 것이고, 그 인프라를 스크립트 코드로 추가/삭제/수정하여 동적으로 관리할 때 '내가 이렇게 해보니 좋더라 혹은 나쁘더라'를 얘기하는 책입니다.


개인적으로는 아직은 시기상조가 아닐까 싶은 생각도 들었지만, 한편으로는 클라우드는 미래의 이야기라고 굳게 믿고 있었던 저에게는 크나큰 충격으로 다가오기도 합니다. 십 년도 훨씬 전부터 많은 사람들이 가상화된 환경을 구축해서 이용하고 있고, 노하우가 쌓여서 이런 패턴이 좋다 나쁘다를 논할 정도로 성숙했다는 이야기일 테니까요.


그럼에도 불구하고 이 책이 유용한 점은, 클라우드에 대해 문외한인 사람에게 클라우드 환경의 이모저모를 알려주고 대충 감을 잡을 수 있게 해 주기 때문입니다. 가령 이 책의 4장에서는 가상 머신과 컨테이너의 차이를 상세하게 설명해주면서 멀게만 느껴졌던 용어의 뜻이 무엇인지 이해할 수 있게 도와 줍니다. 이 책의 처음 부분에는 과거처럼 수동으로 서버 환경 설정을 수정하고 서버를 늘릴 때마다 서버 환경 설정을 복사-붙여넣기하다보면 눈송이 같이 복잡해지고 일관성이 없어진다는 단점을 이야기하고 있습니다. 이러한 단점들을 극복하기 위해서는 서버들을 동적으로 추가/삭제, 업데이트하는 '동적 인프라'가 필요하다는 내용으로 이어집니다. 그리고 이미 앤서블, 셰프, 퍼핏 같이 코드로 서버를 구성하는 도구들이 많이 나와 있다는 것도 이 책을 통해서 알게 되었습니다.


2부, 3부에는 이렇게 해 보니 좋더라 나쁘더라 하는 패턴들이 나오는데, 이 부분은 솔직히 뜬구름 잡는 듯하게 느껴졌습니다. 클라우드 환경에서 실제로 소프트웨어를 운영하고 있지 않은 사람들은 그다지 공감할 수 없는 내용일 것 같습니다. 


이 책은 현 시점에 저에게 100% 필요한 책은 아니었지만, 이 책의 개념을 지금처럼 수동적인 관리에도 일부는 적용할 수 있을 것 같습니다. 하지만 특정 클라우드 제품에 종속적이지 않은 점은 좋은 것 같고, 멀지 않은 미래에 이 내용들을 적용할 수 있으리라는 기대를 해 봅니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
처음 처음 | 이전 이전 | 1 | 2 |다음 다음 | 마지막 마지막