최근 국내 데이터 산업의 시장규모는 20조원을 돌파했고 최근 3년간의 연평균 시장 성장률은 11.3%라고 한다. 

 

데이터를 의사결정에 활용하는 산업이 늘어남에 따라 데이터 직군의 수요는 계속 늘고 있다고 하는데 막상 데이터 분석의 실무를 접해볼 수 있는 일은 쉽지 않다.

 

“어쩌다 데이터 분석” 은 저자 본인이 데이터 분석을 밑바닥 부터 공부한 경험을 바탕으로 하여 데이터 분석 과정에 대한 합리적인 학습 과정을 제시 한다. 또한 초심자 때 우선적으로 배워야 할 핵심 내용 및 같이 배우면 좋을만한 내용을 수록 했다.

 

책의 특징 적인 내용은 아래와 같다.

 

#데이터 분석

친절하게도 데이터 분석의 세계를 설명하는 것으로 시작 한다.

데이터 분석은 정보 또는 인사이트를 도출 하거나 패턴을 찾기 위한 목적으로 분석 언어나 알고리즘을 활용 하여 원본 데이터로부터 결론을 이끌어 내는 작업이다. 데이터 분석 과정을 5단계로 나누어 설명 하고 데이터 분석에 왜 파이썬을 사용하는 지에 대해서도 설명 한다.

 

#파이썬

간단히 파이썬 사용법에 대해서도 설명하지만 정말 간단하기는 하다. (개인적으로 파이썬을 입문해야 한다면 처음 시작하는 파이썬을 추천 한다) 또한 데이터 분석을 위해 사용하는 파이썬의 라이브러리 4대장을 소개 하고 기본적인 사용법 및 활용법을 배운다.

 

- 넘파이 (NumPy) : 산술 계산과 통계 작업의 기본
- 판다스 (pandas) : 구조화된 데이터를 처리 하는 방대한 기능을 제공 하는 라이브러리
- 맷플롯립 (matplotlib) : 판다스와 잘 연동되는 기본적인 시각화 라이브러리
- 시본(seaborn) : 맷플롯립을 토대로 돌아가는 고급 데이터 시각화 라이브러리

 

#EDA
EDA는 수집한 데이터가 들어왔을 때, 이를 다양한 각도에서 관찰하고 이해하는 과정으로 데이터를 분석하기 전에 그래프나 통계적인 방법으로 자료를 직관적으로 바라보는 과정이다.

 

최종장에서는 넷플릭스의 데이터를 가지고 EDA 과정에 중심을 둔 데이터 분석 과정을 실습 하는 것으로 마무리 한다. 실제 데이터 분석 과정을 설계하기 전에 반드시 필요한 과정으로 이 과정을 거쳐서 좀 더 효율적이고 적합한 데이터 분석 과정을 설계 할 수 있다. (데이터 분석 과정 설계는 이 책의 수준을 벗어나는 부분이다.)

 

#추천대상

데이터 입문자에게는 더할나위 없는 선택이다. 혹시 아래 중 하나에 해당한다면 꼭 한번 읽어 보기를 권한다.

 

1) 데이터 직군 커리어를 준비하는 취업준비생
2) 파이썬 기초를 알고 있지만 어떻게 활용 해야 할지를 모르는 초급 개발자 
3) 자고 일어나 보니 데이터 분석을 시작 해야 하는 직장인

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

 

 

 

처음 시작하는 이라는 제목이 무색하게 책이 참 두껍다.

보통 입문서라 함은 좀 얇고, 뭔가 보기에 친절 할 것 같은 느낌이라고 생각 되는 것을 확 깨고 있다. (심지어 표지도 좀 무섭다.)

 

다만, 내용을 살펴 보면 1부와 2부로 나누어 1부는 파이썬 기초를 다루고, 2부는 파이썬 개발을 위한 여러 가지 응용 패키지를 소개한다.

 

입문편과 활용편을 합쳐놓은 구성으로 파이썬을 처음 시작하는 사람이라면 1장 부터, 어느정도 기본적인 문법을 알고 있다면 2장의 내용 중에서 필요한 내용을 발췌해서 볼 수 있도록 하고 있다.

취미가 아니라면, 여러 프로그래밍 언어를 배우는 최대의 목적은 무언가 필요한 작업을 완료 하기 위함이다. 어떤 작업을 수행 하기 위한 방법을 알기 위해 주로 검색을 많이 사용 하는데, 이 책은 검색에 드는 시간을 많이 줄여 주며, 필요 한 내용을 어떻게 사용 하는 지 예제를 통해 잘 설명 하고 있다.

 

물론 파이썬의 전체 내,외부 라이브러리를 소개 하는 것은 불가능 하기 때문에, 내가 꼭 사용해야하는 것에 대한 설명이 없거나 부족 할 수 도 있지만, 한번 비슷한 일을 해본 경험이 있는 것은 아주 처음부터 시작하는 것 보다는 당연히 훨씬 수월하다.

 

파이썬을 통해 할 수 있는 일이 무궁무진 한데, 그걸 어떻게 시작해야 할지 약간은 막막한 사람에게 추천 하는 책이다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

파이썬 자료구조와 알고리즘

 

파이썬은 세계에서 가장 인기있는 프로그래밍 언어 중 하나 이다.

(2019 설문 기준으로 자바를 넘어 섰다. https://insights.stackoverflow.com/survey/2019

 

파이썬이 인기 있는 이유 중 하나가 일반적으로 사용 하는 언어와 닮아 있다는 점인데, 불행이도 한국어를 사용하는 사람에게 적용되는 이유는 아닌듯 하지만 그만큼 나의 생각을 코드로 표현하기가 쉽다는 점이 파이썬의 장점이며 강점이다. (특히나 초보자에게)

 

다만, 아무리 쉽다 하더라도, 단순한 문법을 배우는 것만으로는 프로그래밍언어를 가지고 원하는 내용을 만들어 내는 것은 쉬운 일이 아니다. 더군다나 자료구조라던지 알고리즘 이라던지 일반적인 말로 해도 알아듣기 어려운 내용에 대해서 새로 배운 언어로 표현하는 것은 생각보다 귀찮고 어렵고, 어떤 식으로든 필요한 내용을 찾아 볼 방법이 필요 하다.

 

보통은 블로그나 github 을 통해서 필요한 내용을 찾아보는 것을 주로 했는데, 이번에 읽은 “파이썬 자료구조와 알고리즘” 책은 그 역할에 딱 적당한 책이다.

 

일반적으로 보통 레퍼런스 북이라면 베게로 쓰기에 딱 적당한 두툼한 두께의 평소에는 거의 찾아볼일이 없지만, 일단 폼으로 한권 사 두고 정말로 필요할 때 한번정도 들춰보는 그런책을 상상하기 마련이지만, 이 책은 매우 얇은 두께의 적당한 판형으로 작은 가방에도 쏙 들어가는 사이즈이다. 

 

그럼에도 불구하고 파이썬의 자료구조에 대한 기본적인 내용 부터 파이썬을 사용하여 추상데이터 타입 (큐, 힙, 해시테이블 등) 을 다루는 방법 또한 정렬, 검색, 그래프 같은 내용까지 간단하게나마 전부 다루고 있다. (퀵소트나 레드 블랙 트리 등과 같은 내용에 대해서는 다루고 있지 않다.)

 

자료구조에 대한 기본적인 이해가 있고 파이썬을 공부하기 시작한 사람이라면, 한번 쭉 읽어두고 (그럴만큼 얇은 책이다.) 필요할 때 한번 더 필요한 내용에 대해서 찾아보면서 읽어 볼 수 있는 좋은 책이다.

 

- 서평시작

앱에서 사용할 데이터를 데이터를 가져오기 위해서 아주 간단히 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 을 통해 데이터를 저장 하는 법을 다룬다.

 

 

파이썬 정복


매년 새로운 언어를 최소 하나는 배워라.

다른 언어는 동일한 문제를 다르게 푼다. 몇 개의 서로 다른 접근법을 알면 사고를 확장하고 판에 박힌 사고에 갇히는 걸 예방하는 데에 도움이 된다. - 실용주의 프로그래머 중에서



- 서평시작

“파이썬 입문용으로 기획되었습니다. 프로그래밍 언어의 기본 개념과 논리를 익히고 연습하는데 최우선의 목표를 두고 쓰여졌습니다.” - 머리말에서


세상에 존재하는 여러 프로그래밍 언어들 중에서 파이썬은 어떤 언어 보다도 쉽게 배울 수 있고 별도의 컴파일이 필요하지 않은 스크립트형 언어의 편리함으로 인해 처음 프로그래밍을 배우는 입문자 사이에서 매우 인기 있는 언어 이다. 그래서 그런지 파이썬 입문에 관한 책이 굉장히 많이 나온다.


입문자는 아니지만 오랜만에 처음 코딩을 배우는 심정으로 읽어 보았다. 이전 부터 파이썬을 한번 배워보고 싶었던 것도 있지만, 시험공부나 일이 아니라고 생각하니 부담이 없어서인지 더욱 재미있었다.


- 1~10장에서는 파이썬의 설치 및 실행 방법 그리고 프로그래밍의 기본을 다루고 있다. 이미 코딩을 경험한 사람한테는 기본적인 내용으로 다른 언어와 파이썬의 차이점만을 비교하며 금방 읽을 수 있게 되어 있고, 입문 하는 사람은 예제를 타이핑 해가면서 차분하게 읽다 보면 이런게 코딩이구나 라는걸 충분히 느낄 수 있다.


- 9장과 10장에서는 자칫 딱딱해 질 수 있는 자료구조(리스트, 튜플, 사전, 집합)에 대한 내용을 비교적 쉬운 언어와 그림을 사용 하여 이해하기 쉽게 설명해 주었다.


- 14장 파일에서는 파일 목록 및 이름 변환을 다루는 예제를 가지고 파이썬의 가능성에 대한 부분을 설명해주는 것이 좋았다.


- 14장 데이터베이스 부분은 너무 겉핥기 식인거 같다.


- 18장 그래픽 및 19장 wxPython 은 생략하고 읽었다. 파이썬에 흥미를 가지고 책을 읽었던 이유는 웹프로그램을 배워보기 위함 이었기 때문에 개인적으로는 장고(Django)나 플라스크(Flask) 에 대한 간단한 소개가 있었으면 어땠을까 싶다.  


- 소감

2018년부터 코딩교육이 의무화 되면서 코딩 열풍이 불고 있다. 전공자나 회사원이 아닌 학생들도 프로그래밍 언어 하나 하는 것 쯤은 기본인 세상이 되어 가는 듯 하다.


어떤 분야던 그렇겠지만 기본서, 입문서가 가장 어려운것 같다. 막상 배워서 익숙해지면 별거 아니다 싶긴 한데, 그걸 모르는 사람에게 쉽게 전달해 주는 것이 가장 어렵지만 입문서가 해야할 제일 큰 역할 이다.


파이썬정복은 그리 많지 않은 페이지로 파이썬입문에 필요한 모든것을 다루고 있다. 프로그래밍을 입문 하는 고등학생 이상의 사람에게 필히 추천 하고 싶다.


- 서평끝

아래의 책을 가지고 스터디(?) 시작 한다.




http://wikibook.co.kr/flask/


오늘은 첫날 이니깐. 환경 설정만 해보자.

기본적으로 책에는 windows7 32bit 에서 설정 하는 방법이 적혀 있지만,

현재 사용중인 맥북에서 설정 하면서 삽질 하는 것 중심으로 적는다.


1) 파이썬 설치

https://www.python.org/downloads/ 

Mac OS X 용 python 2.7.3 을 다운로드


.pkg 파일 이므로 더블 클릭하여 다음 다음 눌러 가며 설치.

환경 변수 설정 등은 필요 없음.


2) 이클립스 설치

http://www.eclipse.org/downloads/

Eclipse IDE for Java Developers 를 다운로드


.tar.gz 파일 이므로 압축 해제 하면 끝.


3) distribute 설치

https://pypi.python.org/pypi/distribute

0.7.3 버전을 다운로드


압축을 해제 한 후 디렉토리에서 터미널을 실행 한 후 (Go2Shell 사용

python setup.py install 

으로 설치


4) virtualenv 설치

pip install virtualenv

으로 설치

 

5) 가상 환경 생성

virtualenv flask

으로 생성 하면 현재 디렉토리 아래에 flask 라는 디렉토리가 생성 된다.


6) flask 설치

flask 를 설치 하되, 현재 가상 환경인 flask 만 설치 해야 한다.

책에는 activate.bat 를 실행하면 앞에 가상 환경명이 붙으면서 활성화 된다고 되어 있는데

mac 에서는 동작을 안하는건지 어쩐지는 모르겠다.


위에서 생성한 flask 아래에 bin 디렉토리로 이동 한다. (앞으로 flask 디렉토리라고 부른다.)


./pip install Flask

으로 설치 한다.


6-1) flask 설치 확인

flask 디렉토리로 이동 한다.


./python 


from flask import Flask 

입력


정상적으로 설치 되었으면 에러가 없지만 잘못 설치 되었으면 ImportError 가 발생 한다.


6-2) flask 설치 확인 2

flask 디렉토리의 python 말고 설치된 기본 python 을 실행 하여 6-1 을 테스트 해본다.


7) PyDev 설치

이클립스 실행 후 Eclipse Markplace 에서 pydev 로 검색하여 설치 한다.





7) 소스 다운로드

workspace 디렉토리로 이동 한다.


git clone git://github.com/wikibook/flask.git flask_code


으로 flask_code 라는 디렉토리에 소스를 받는다.


8) 프로젝트 생성

이클립스에서 new -> project -> pydev 프로젝트를 선택 한다.

프로젝트 명으로는 flask_code 를 입력 한다.



PyDev 프로젝트 생성


프로젝트가 생성되고 미리 받아 놓은 코드가 등록된 상태


9) 가상 환경 적용

properties -> PyDev Interpreter -> Interpreter -> configure interpreter




9-1) 가상환경 interpreter 추가

new -> browse 버튼 -> flask 디렉토리 아래 bin 디렉토리 안의 python 파일을 선택 한다.



ok 버튼을 눌러서 추가 한다.





프로젝트 설정 화면으로 돌아와서 추가한 interpreter 를 선택 한다.


10) 테스트


ch02/hello.py 를 실행 하여 Flask 가 정상적으로 실행 되는지 확인 한다.



일단 설치 및 환경 설정은 여기 까지.





+ Recent posts