파이썬으로 웹 크롤러 만들기 - 초간단 나만의 웹 크롤러로 원하는 데이터를 가져오는 방법, 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
 
 
 
처음 시작하는 R 데이터 분석 - 쉽고 재밌게, 실무 예제로 끝낸다! (7일 완성 로드맵)
강전희.엄동란 지음 / 한빛미디어 / 2018년 10월
평점 :
절판


1) 서평시작

지은이 머리말에 적힌 대로 “데이터 분석에 처음으로 도전하는 사람을 위한 책” 이다.

데이터 분석하는 과정 전체를 간단하게 설명 해주고, 데이터분석 실전 프로젝트 예제를 통해 전체 과정을 한번 실습 할 수 있게 해준다. 그 과정에서 프로그래밍 언어 R을 사용 하는 여러 방법을 알려 주고 있다. 


2) 책의 구성

7일 완성 학습 로드맵이라는 부제를 내세워서 챕터와 별개로 7단계로 학습할 과정을 나누어 제시하고 있다. 


3) 학습준비하기

작업환경 세팅은 항상 재미 있다.


4) 데이터 수집 및 가공

분석할 데이터를 준비 하는 단계이다. 그 전에 먼저 데이터 분석의 단계와, 데이터의 구조에 대해서 배운다. 데이터 세트, 데이터 프레임 등 모르는 용어가 막 등장 한다. 하지만 뭐 “다 아는 것들이구먼…”

txt 나 csv 로 된 데이터를 불러오는 것은 늘상 하던 작업이지만, R 을 사용해서 하니 굉장히 편했다.

데이터 분석을 위한 기초 통계 분석 함수를 소개 하는 부분에서는 약간 좌절이었다. 이래서 수학공부가 필요 하다.


5) 치킨집이 가장 많은 지역 찾기

불과 5장의 내용으로 원하는 목적에 맞는 결과를 도출 할 수 있었다. 그림을 빼면 정말로 얼마 되지 않는 내용이다.  

도수분포표를 만들고 데이터프레임으로 변환 한뒤 이것을 트리맵으로 시각화 하는 과정이 간단하게 이루어 졌다.


6) 감상

대작 게임의 튜토리얼을 막 끝낸 느낌이다. 데이터 분석이 뭔지 잘 몰랐는데, 간단하게 나마 데이터분석에 대한 감을 잡을 수 있었고 기본적인 것을 배울 수 있었다.


데이터 분석이라는게 데이터를 획득 하고 정리해서 잘 저장하는 것이 반이라는 생각이 들었다. 나머지 반은 데이터에서 무엇을 얻고자 하는지 하는 목적의식 및 domain knowledge.


프로그래밍 언어 R에 관해서는 이게 왜 대표적 데이터 분석용 프로그래밍언어인지 잘 알것 같다. 생각보다 많은 작업을 정말 단순하게 할 수 있었고  정리, 분석, 시각화 까지의 모든 과정에 필요한 도구를 제공해 주는 것이 놀라웠다.


반대로 R이 아닌 내가 알고 있는 프로그래밍 언어로 이 작업을 했을 때의 걸렸을 시간을 생각 해 보니 더욱 그러 했다. 다양한 언어를 배워야 하는 이유 이다.


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