알쏭달쏭 자바 200제 - 텍스트 출력부터 예외 처리까지 하나씩 만들어보는 기초 자바 프로그래밍 알쏭달쏭 시리즈
시바타 보요.유리 가오루 지음, 김완섭 옮김 / 한빛미디어 / 2019년 5월
평점 :
절판


알쏭달쏭 자바 200제 - 예제가 풍부한 자바 기본서


- 서평시작

기본서라는 것은 항상 지루하기 마련이다. 보기에 생소한 단어나 문법을 가지고 뭔가 알아듣지 못할 이야기를 해대는 기본서는 사실 두꺼우면 두꺼울 수록 한번을 끝까지 보기가 어렵고 끝까지 본다고 해도 내용이 머리속에 잘 남아있는 경우가 드물다. 그래서 보통 기본서를 추천 할 때 되도록 얇은 책을 한권 공부 하고 그 다음에 두꺼운 책을 보는 것을 추천 하곤 한다.


이 책에 대한 첫인상은 상당히 두껍다는 것이다. 그리고 알쏭달쏭 자바 200제 라는 타이틀을 보고 자바 퍼즐러 같은 책이라고 생각 했는데, 목차를 보니 완전히 기본서의 목차였다.


사족으로, 원제목을 찾아보니 “新 풀어가면서 배우는 자바” 라고 한다. 


목차도 기본서고 사실 내용도 기본서다. 다만, 지루한 문법부터 소개 하는 것이 아니라, 각 장마다 풀어야할 큰 문제를 내고 문제 해결의 기본 소스코드를 보여주고 해당 내용에 대한 문법적인 설명을 한다.




예를 들자면 위와 같이 먼저 문제를 내고

아래에 코드를 쓰고

소스 설명이 필요한 부분에 대해서는 블록을 지정 하여 설명 한다.


소스 설명 부분에서 자바 문법에 관한 설명을 같이 하는데, 클래스 초기화 와 인스턴스 초기화가 1)  구문 해석도를 통하여 어떠한 형태를 지니는지 보여주고, 2) 언제 3) 왜 사용 되는지 자세하게 설명 한다.


설명에 관해서는 소스와 구문 해석도 그리고 필요에 따라서는 순서도 등을 사용하여 설명 하기 때문에 알아듣기가 쉽다.


다만 용어에 관해서는 어떤 책에서도 사실 그렇겠지만 영어 용어와 그걸 번역한 용어를 함께 사용하다 보니 약간은 혼란이 올 수도 있을 것 같다. 


초보자에게 많이 친절하다고 느낀 부분은 javadoc 를 설명하는 부분이다. (책 541page)

기본적으로 javadoc을 만들기 위한 주석을 작성 할 때 방법은 대충 알고 있지만, 안의 각 상세설명들에 대한 자세한 내용을 일부러 찾아보지 않으면 알기 힘든데 (초보자에게는 더더욱이나) 해당 내용들에 대한 설명이 잘 적혀 있다.



- 서평 끝

워낙에 두꺼운 책이고 이런저런 사정상 통독을 하지는 못했지만

관심있는 몇몇 장을 발췌해서 읽으면서 의외로 모르고 있는 부분도 많이 알게 되었고 이미 사용은 하고 있었지만 왜 그렇게 사용해야 했는지에 대해서 잘 모르는 부분에 대해서도 알게 된것이 많았다.


자바를 처음 공부하거나 조금 공부해본 사람에게 꼭 추천 하고 싶은 책이다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬으로 웹 크롤러 만들기 - 초간단 나만의 웹 크롤러로 원하는 데이터를 가져오는 방법, 2판
라이언 미첼 지음, 한선용 옮김 / 한빛미디어 / 2019년 3월
평점 :
구판절판


- 서평시작

앱에서 사용할 데이터를 데이터를 가져오기 위해서 아주 간단히 BeautifulSoup 를 사용해본적이 있다. 웹페이지 정보를 가져오고 싶은데, 방법을 찾다가 파이썬으로 하면 간단하다고 해서 블로그에서 검색해서 간단히 사용한 적이 있다. 그래서 이 책을 시작 할 때 단순히 BeautifulSoup 사용방법을 배우는 것 만이라면 이정도 책이 필요 없을 것 같은데 하고 생각하였다.


- 용어가 헷깔려?

책 제목이 영어로는  Web Scraping with Python, 한글로는 파이썬으로 웹 크롤러 (Web Crawling) 만들기 이다. 실질적으로 같은 용어이긴 한데, 책 말머리에 저자는 최근에 웹 스크레이핑이라는 용어가 더 널리 쓰이므로 책에서도 이 표현을 사용합니다 라고 적어 두었다. 한글로 웹 크롤러라고 표기한건 아마도 한국에서는 웹 크롤러라는 말을 더 많이 사용하기 때문인 것 같다.


 


1) 첫 번째 웹 스크레이퍼


BeautifulSoup 를 소개 하고 설치 하고 사용 한다.


간단히 웹페이지를 연결 하여 데이터를 가져오고 html 내용을 분석하여 원하는 값을 가져오는 것 만이라면 1장만 읽어도 끝날정도로 간단하다.


부제로도 써놨지만, 사실상 다 만들어져 있다. 


2) 고급 HTML 분석

좀더 복잡하게 BeautifulSoup을 사용하는 방법을 배우고, 필요한 데이터를 찾는데 사용하는 정규표현식에 대한 내용을 다룬다.


3) 크롤링 시작하기

단일 페이지가 아니라, 여러 페이지, 여러 사이트를 이동하는 스크레이퍼를 만든다. (말머리에서 저자는 이것을 특별히 크롤러라고 부르기로 하였다.)


4) 웹 크롤링 모델

단순히 웹사이트의 내용을 가져오는 것이 아니라, 필요한 데이터의 타입을 모델링 하고 이를 최종적으로 데이터베이스에 저장 하는 내용을 다룬다.


 


기술적인 내용도 있지만, 4.4 웹크롤러 모델에 대한 생각 부분이 읽으면서 참 도움이 되었다.


 


-------------------

4.4 웹 크롤러 모델에 대한 생각 (간단 요약)

인터넷에는 너무나 많은 것들이 있고, 당신에게 그것이 필요한지 어떻게 얻을지 항상 명확히 알기는 어렵다.


(1) 여러 도메인에서 유사한 데이터를 수집할 때는 항상 일반화를 시도해야 한다.

(2) 스크레이퍼를 만들 때에는 추후 더 많은 데이터 소스가 추가될 것이라 가정하고, 새 소스를 추가하는데 필요한 노력이 최소화 되어야 한다.

(3) 데이터 조각 간의 연결도 무시해서는 안된다. '유형','크기','주제' 같은 속성이 데이터 원본에 걸쳐 존재하는 정보를 찾고 있다면 이러한 속성을 어떻게 저장,검색,개념화 할 것인가?


-------------------


5) 스크레이피

Scrapy (web에서 데이터를 가져오기 위한 프레임워크) 를 사용한다.


BeautifulSoup는 가져온 데이터(HTML)를 파싱하는 작업만을 하는데 비하여 Scrapy는 페이지에 대한 규칙을 작성 해두면 자동(?) 으로 링크들을 이동 하며 데이터를 가져온다.


6) 데이터 저장

MySql 을 통해 데이터를 저장 하는 법을 다룬다.


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
실습과 그림으로 배우는 리눅스 구조 - 개발자가 알아야 하는 OS와 하드웨어의 기초
다케우치 사토루 지음, 신준희 옮김 / 한빛미디어 / 2019년 2월
평점 :
구판절판


리눅스를 사용 한다고 해서 리눅스 시스템이 움직이는 원리에 대해서 꼭 알아야 하는 것은 아니다. 하지만 옛말에 아는 만큼 보인다고 했다. 뭐든지 그렇지만 아는 부분이 늘어나면 더욱 재미 있다.


1) 컴퓨터 시스템의 개요

전체적인 컴퓨터 시스템의 개요이다. 책의 모든 내용의 흐름은 개요의 흐름 순으로 진행 한다.


2) 사용자 모드로 구현되는 기능

사용자 모드, 커널 모드, 시스템콜


3) 프로세스 관리

fork() !!


4) 프로세스 스케줄러

시분할 시스템에 대해서 배웠었지만, 굉장히 막연한 느낌이었는데, 친절한 설명을 통해서 조금은 이해하게 된 것 같다.


5) 메모리 관리

고급언어를 사용하여 개발하면서 별로 생각해 보지 않았던 메모리 관리에 대한 부분을 오랜만에 재미있게 보았다. 메모리 할당, 해제, 가상메모리, 단편화, 스왑 까지 메모리에 대해서 알아야할 모든 내용을 다루고 있다. 


6) 메모리 계층

페이지 캐시, 버퍼 캐시등에 대한 내용을 다룬다. 


7) 파일시스템

파일시스템에 대한 전반적인 내용을 다룬다. ext4, XFS 등 파일시스템의 구체적인 내용은 아니고 리눅스의 파일종류, 캐릭터 장치, 디렉토리 등 기초적인 내용과 왜 파일시스템이 존재하는 지에 대한 설명이 잘 되어 있다.


8) 저장 장치

HDD와 SSD의 동작원리에 대해서 설명 한다. 그래프가 너무 많다.


- 실습

머리말에서 저자는 실제로 직접 실습용 프로그램을 빌드 하고 실행 하여  동작을 확인해보길 권한다고 했지만, 여러가지 사정상 실제로 실습을 진행해 보지는 않았다. 다만 코드는 읽어 봤는데, 아무래도 실습코드이다 보니  C 언어 문외한에 가까운 나에게도 그렇게 어려운 내용은 아니었다. OS나 C언어 입문 하는 사람이라면 필히 직접 코드를 입력 하여 테스트 해보기를 권한다.


- 감상

학교 다닐 때 OS 수업시간에 의미도 모르면서 달달 외웠던 단어들이 많이 보여서 반가웠다.  혹시 라도 공룡이 그려진 책을 읽어야 할 필요가 있는 사람이라면, 그 책을 읽기 전에 준비운동 하는 기분으로 가볍에 읽어 볼 수 있는 책이다. 꼭 개발자가 아니더라도, 대학새내기로 컴퓨터공학이나 리눅스를 처음 공부하는 사람이 꼭 읽어 봤으면 한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
이것이 Fedora 리눅스다 - 실무 현장 그대로 배우는 페도라 리눅스 서버 & 네트워크(Fedora 28 반영) 이것이 시리즈
우재남 지음 / 한빛미디어 / 2019년 1월
평점 :
절판


1) 서평시작


리뷰를 위해 책을 받아보고 놀랐던게, 이거 어디서 많이 본 구성인데 하는 것이었다. 자세히 저자서문을 읽어 보니, 역시나 같은 저자가 낸 책이었다. 참고로, 내가 보았던 책은 "뇌를 자극하는 RedHat Fedora: 리눅스 서버 & 네트워크" 이다. (2007년 버전인 5쇄)

혼자 리눅스를 공부하면서 여러가지로 도움이 많이 되었던 책이었는데, 12년 만에 같은 책의 증보판을 리뷰하게 되어서 감회가 새롭다.


2) 책의 구성


책의 학습로드맵을 보면 이 책을 통해서 무엇을 배울 수 알 수 있다.


* 리눅스 기본

실습환경구축 -> 페도라 리눅스 소개 -> 페도라 리눅스 설치 -> 기본적인 관리 내용 설명 (X윈도, 명령어, 쉘스크립트)


* 네트워크 서버 구축

원격지 시스템 관리 -> 각각의 서버 설치를 통한 실습 (네임서버, 데이터베이스, 메일서버, 웹서버, 삼바 등)


여러 챕터 중에서 이 책의 백미는 첫 챕터인 실습 환경 구축 부분이다.

리눅스 뿐만 아니라, 이런 환경을 처음 접하는 사람을 위하여 가상머신의 소개 부터 시작하여, 실무서버 구축 밑 테스트를 위한 준비를 확실하게 해주어, 책의 내용을 따라가는 것을 넘어서 책에서 제공하지 않는 부분에 대한 부분도 스스로 쉽게 공부 할 수 있도록 도와 준다. 

예전에 나온 대부분의 리눅스 관련 책이 리눅스 관련 이론에만 치중 했었다면, 이 책은 이론이 아닌 실습을 통한 체험에 중점을 두고 있고, 그 실습을 매우 편리한 방식으로 진행 할 수 있도록 한다.

예전에 리눅스에 오라클 설치를 진행 하다가 뭔가 조금씩 실수를 하고, 실수한 부분을 스스로 복구 할 수 없어서 저장해 두었던 스냅샷을 복구 할 때 그 편리함에 무척이나 감사 했던 기억이 있다. 물론 실무에서는 그렇게 작업을 진행 할 수는 없겠지만, 이 책의 대상인 리눅스 초보자에게는 무척이나 도움이 되리라 본다.


데이터베이스 서버 구축과 운영 같은 챕터는 사실상 개발이나, 데이터베이스에 관한 관련 지식이 없으면 너무 겉핥기 식인 면이 없지 않으나, 리눅스에 이런 프로그램들을 설치 하는 과정을 그렇게나마 처음 접해볼 수 있는건 괜찮은 구성 같다. 


3) 감상


초보자로 시작하여 실무에 진입할 수 있도록 도와준다는 컨셉은 여전히 유효 하다.


이전 책에서 사용한 페도라 버전이 Fedora Core 4 에서 Fedora 28로 바뀌고 (리뷰를 쓰는 시점에는 Fedora 29도 나왔다.) YUM 이 DNF 로 바뀌기도 하고, PXE 설치 서버 같은 전에는 없던 서버가 추가가 되어 내용이 최신을 반영 하고, 더욱 풍성해졌다.


리눅스 실무 입문을 위한 최고의 선택 이라고 추천 하고 싶다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
나의 첫 안드로이드 - 처음 시작하는 개발자를 위한
한동호 지음 / 한빛미디어 / 2018년 7월
평점 :
절판


나의 첫 안드로이드 - 어서와 안드로이드는 처음이지?


1) 서평시작

책보다 먼저 동영상을 보았다. 오랜기간 동안 여러 강의를 진행 하신 경험이 있으셔서 그런지 차분하고 설득력 있는 목소리의 훌륭한 강의 였다.

강의 내용중 처음에 이런 질문을 하셨다. 


"개발을 잘 하는 방법, 어떻게 하면은 개발을 잘 할까?"


강사님의 답변은 


"개발을 많이 하면 잘한다. 손으로 학습 한다."


개발책을 소설책이나 기타 학습책 처럼 줄치면서 읽어봐야 소용없다고 말씀하신다.

리뷰나 공부등을 위해 여러 개발책을 보았는데, 강사님 말씀대로 소설처럼 읽어서 개발 실력이 늘지 않은듯 하다.


"백문이 불여일打"


처음 개발 공부할 때 배운 격언인데, 까먹고 있었다.


2) 책의 구성

무작정 소스를 보고 키보드를 두드리기 전에 내가 배울 것이 무엇인지 어떻게 구성되어 있는지 파악 하는 것은 필수다.


책은 기본적인 자바문법을 알고 (필수!) 안드로이드를 처음 배우기 시작한 사람들을 위한 내용을 가지고 있다.

다만 안드로이드의 모든 내용을 다루고 있지는 않기 때문에 저자는 기본적인 내용을 학습 한 후 심화를 위한 책을 한권 더 읽기를 권한다.


처음에 개발을 위한 안드로이드 스튜디오 설치 부터, 안드로이드 개발에 필요한 용어 및 개념 (액티비티, 위젯, 레이아웃, 뷰컨테이너, 프래그먼트, 인텐트 등)을 설명한 뒤

단순 앱 개발 예제를 통해 실습을 하도록 유도 한다.


그리고 마지막으로 추가로 이 책을 학습한 후 추가로 어떤 것들을 더 학습해야 하는지에 대한 부분을 제시한다. (안드로이드에 대한 심화적 내용과 배워야할 서버쪽 기술에 대한 설명)


각 용어 및 개념에 대한 설명이 자세하고 필요한 경우에는 그림과 캡쳐로 적절하게 사용 한다.


그리고 무엇이 중요한지 확실하게 알려 준다.


"액티비티의 생명주기 메소드에 적절한 코드를 작성하는 것이 우리가 할 수 있는 전부 입니다. 그러므로 생명주기 메소드가 언제 어떻게 호출되는지를 이해하는 것이 가장 중요합니다."


3) 감상

소설처럼 개발책을 읽지 말라고 하셨는데, 600쪽에 가까운 책임에도 불구 하고 소설처럼 술술 읽혔다.

다만 실습 부분은 실제로 코드를 치면서 (복사는 의미 없다.) 진행중인지라 아직 덜 읽은 상태이다.


인터넷에 여러 가지 앱에 대한 예제 소스가 많이 있는데, 그것들을 읽어 볼 수 있는 기반을 충분히 제시한다.


초보자가 가장 넘기 힘든 부분을 넘게 해주는 좋은 책이다.



액티비티의 생명주기 메소드에 적절한 코드를 작성하는 것이 우리가 할 수 있는 전부 입니다. 그러므로 생명주기 메소드가 언제 어떻게 호출되는지를 이해하는 것이 가장 중요합니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo