실전 파이썬 핸즈온 프로젝트 (문제 해결과 실무 응용력을 키우기 위한 나만의 파이썬 포트폴리오 만들기)

실전 파이썬 핸즈온 프로젝트 (문제 해결과 실무 응용력을 키우기 위한 나만의 파이썬 포트폴리오 만들기)

$28.94
Description
우리도 전문가처럼 파이썬 프로그램을 만들 수 있다! 짤막한 파이썬 스크립트를 돌리고 그저 결과만 확인하는 단편적인 학습 방식에서 이제는 벗어나자! 통계학, 물리학, 천문학 등 흥미로운 실생활의 16가지 프로젝트로 접근하는, 완전하게 동작 가능한 파이썬 애플리케이션 만들기 대작전! OpenCV, NLTK, 넘파이, 판다스 등을 활용해 컴퓨터 비전, NLP(자연어 처리)를 비롯한 풍부한 프로젝트를 직접 해결하며 배우는 실전 파이썬 학습서.

북 트레일러

  • 출판사의 사정에 따라 서비스가 변경 또는 중지될 수 있습니다.
  • Window7의 경우 사운드 연결이 없을 시, 동영상 재생에 오류가 발생할 수 있습니다. 이어폰, 스피커 등이 연결되어 있는지 확인 하시고 재생하시기 바랍니다.
저자

리본

LeeVaughan
프로그래머이며,열렬한대중문화애호자이자교육자이고,저자로활약중이다.엑슨모빌ExxonMobil의임원급과학자로,수십년동안복잡한컴퓨터모델을구성,검토하고,소프트웨어를개발,테스트했으며,지질학자와엔지니어를교육해왔다.독학을하는파이썬프로그래머들이자신의파이썬기술을날카롭게다듬으면서흥미를느낄수있도록이책과『신비한파이썬프로젝트』(영진닷컴,2020)를저술했다.

목차

1장 베이즈확률로위치예측하기-“실종된난파선선원을찾아라”
베이즈규칙
[프로젝트#1]수색과구조
__전략
__파이썬라이브러리설치
__베이즈코드
__게임플레이
[도전프로젝트]더영리한수색방법
[도전프로젝트]몬테카를로시뮬레이션으로최선의전략찾기
[도전프로젝트]탐지확률계산하기

2장 NLTK로문서간유사도측정하기-“이소설의원작자는누구일까”
[프로젝트#2]사냥개,전쟁,잃어버린세계
__전략
__NLTK설치
__코퍼스
__스타일로메트리코드
[실습프로젝트]분산도그래프를사용한개사냥
[실습프로젝트]구두점히트맵
[도전프로젝트]빈도수고정

3장 NLTK로텍스트요약하기-“핵심문장을뽑아내고단어구름을만들어보자”
[프로젝트#3]나에게는꿈이있습니다…연설을요약하고픈!
__전략
__웹스크레이핑
__‘나에게는꿈이있습니다’코드
[프로젝트#4]gensim을사용한연설문요약
__gensim설치
__‘침대부터정리하라’코드
[프로젝트#5]단어구름을활용한텍스트요약
__PIL모듈과단어구름모듈
__단어구름코드
__단어구름미세조정하기
[도전프로젝트]친목의밤을위한단어구름게임만들기
[도전프로젝트]요약본더간추리기
[도전프로젝트]소설요약
[도전프로젝트]요약에들어갈문장만큼순서도중요하다!

4장 암호화기법으로안전한메시지전송하기-“해독불가능한암호문을작성해보자”
원타임패드
레베카암호
[프로젝트#6]레베카의‘디지털’열쇠
__전략
__암호화코드
__메시지보내기
[실습프로젝트]문자빈도그래프그리기
[실습프로젝트]2차세계대전방식으로비밀메시지보내기

5장 OpenCV로이미지차이분석하기-“천체이미지로명왕성을찾아보자”
[프로젝트#7]반짝비교정복제품만들기
__전략
__데이터
__반짝비교정코드
__반짝비교정사용하기
[프로젝트#8]이미지차이를판별해일시적천체감지하기
__전략
__일시적천체감지기코드
__일시적천체감지기사용
[실습프로젝트]궤도경로그리기
[실습프로젝트]차이가무엇일까?
[도전프로젝트]별의개수세기

6장 터틀그래픽으로궤적그리기-“우주경쟁에서승리하기위한아폴로8호의궤적시뮬레이션”
아폴로8미션의개요
__자유귀환궤적
__삼체문제
[프로젝트#9]아폴로8호를타고달로가자!
__turtle모듈사용
__전략
__아폴로8호자유귀환코드
__시뮬레이션실행하기
[실습프로젝트]수색패턴시뮬레이션
[실습프로젝트]나를끌어올려줘!
[실습프로젝트]나를멈춰줘!
[도전프로젝트]실제규모의시뮬레이션
[도전프로젝트]실제아폴로8호

7장 넘파이로통계분석처리하기-“안전한화성착륙지점을찾아라”
안전하게화성에착륙시킬방법
MOLA지도
[프로젝트#10]화성착륙지점선택하기
__전략
__착륙지점선택코드
__결과
[실습프로젝트]이미지에표시한도형이통곗값에미치는영향확인하기
[실습프로젝트]고도프로파일추출하기
[실습프로젝트]3차원그래프그리기
[실습프로젝트]지도혼합하기
[도전프로젝트]세화산에걸친고도프로파일추출하기
[도전프로젝트]영역직사각형변경하기

8장 OpenCV로이미지를처리하고맷플롯립으로시각화하기-“멀리떨어져있는외계행성을찾아라”
통과광선측정법
[프로젝트#11]외계행성의통과시뮬레이션하기
__전략
__통과코드
__통과광선측정법으로실험해보기
[프로젝트#12]외계행성사진찍기
__전략
__픽셀화기(pixelator)코드
[실습프로젝트]외계거대구조물감지하기
[실습프로젝트]소행성의통과를감지하기
[실습프로젝트]주연감광포함하기
[실습프로젝트]흑점감지하기
[실습프로젝트]외계인의함대탐지하기
[실습프로젝트]달이있는행성감지하기
[실습프로젝트]외계행성의하루길이측정하기
[도전프로젝트]동적인광도곡선만들기

9장 OpenCV로얼굴형태감지하기-“사람과외계인을구별해내는피아식별장치를만들라”
사진에서얼굴감지하기
[프로젝트#13]감시로봇총프로그래밍하기
__전략
__코드
__결과
비디오스트림에서얼굴감지하기
[실습프로젝트]얼굴흐리게하기
[도전프로젝트]고양이얼굴감지하기

10장 머신러닝알고리즘으로개인별얼굴인식하기-“외계인의실험실침입을막아라”
LBPH알고리즘으로얼굴인식하기
__얼굴인식흐름도
__LBPH추출하기
[프로젝트#14]외계인공물에대한접근제한하기
__전략
__지원모듈과파일
__비디오캡처코드
__얼굴훈련코드
__얼굴예측기코드
__결과
[도전프로젝트]암호와비디오캡처추가하기
[도전프로젝트]비슷한사람과쌍둥이
[도전프로젝트]타임머신

11장 판다스와시각화도구로지도그리기-“인터랙티브한인구밀도지도를만들어좀비떼로부터탈출하라”
[프로젝트#15]등치지역도를사용해인구밀도시각화하기
__전략
__파이썬데이터분석라이브러리
__bokeh와holoviews라이브러리
__pandas,bokeh,holoviews설치
__카운티,주,실업률,인구데이터접근하기
__holoviews해킹하기
__등치지역도코드
__탈출계획하기
[도전프로젝트]미국인구변화매핑하기

12장 프로파일러로프로그램실행속도추정하기-“우리는지금현실세계에있는가가상세계에사는가”
[프로젝트#16]삶,우주,그리고예틀의연못
__연못시뮬레이션코드
__연못시뮬레이션의함의
__격자축을벗어나움직이는비용측정하기
__결과
__전략
[도전프로젝트]안전한우주찾기
[도전프로젝트]여기해가뜨네요
[도전프로젝트]개의눈으로바라보기
[도전프로젝트]단어찾기커스텀화하기
[도전프로젝트]축하슬라이드쇼단순화하기
[도전프로젝트]우리가만든거미줄이얼마나많이꼬여있는지!
[도전프로젝트]산위에서외쳐라
부록 [실습프로젝트]해답

출판사 서평

독자여러분이지금까지그저파이썬언어의구문만만지작거리는수준이었다면,이책에서다루는[실습프로젝트]를직접수행함으로써프로그램을완벽하게작성하는수준으로즉시성장할수있을것이다.이책에서우리는실험을수행하고,통계개념을탐구하며,외계행성을탐지하는등인류의역사속에서천재들을괴롭혔던새로운문제를해결하면서파이썬기술을연마해나간다.
각장은명확히프로젝트의목표를정의하면서시작하고,문제를공략하는방법을논의한다음,전문프로그래머처럼생각하도록고안된16가지실습과제를다뤄본다.이책에서함께해안경비대의수색및구조작업을돕고,나사(NASA)의달비행을계획하고실행하며,얼굴인식을사용해보안이필요한실험실의출입을제한하는등의과업을수행해보자.
이책의실습프로그램은초보자도쉽게이해할수있다.하지만,단계가진행됨에따라점차수준높은기법을배울수있으며,그에따라여러분의코딩능력도향상될것이다.이책에서주어진과업을모두달성하고나면,파이썬을활용해실생활의여러문제를풀수있는역량을갖추게될것이다.

|이책에서다루는내용|
-맷플롯립(matplotlib),넘파이(NumPy,보케(Bokeh),판다스(pandas),리퀘스츠(Requests),뷰티플수프(BeautifulSoup)등의라이브러리사용법
-NLTK와OpenCV같은자연어처리와컴퓨터비전모듈을다루는방법
-별시야(starfield)상에서이동하는천체를감지하고추적하는프로그램을작성해보는프로젝트
-인터넷에서연설문을스크레이핑해서자동으로요약해보는프로젝트
-화성궤도레이저고도계(MOLA)지도를사용해화성우주선이착륙할지점을선택하는프로젝트
-데이터시각화와그래프그리기도구의도움을받아서좀비아포칼립스상황에서살아남게하는프로젝트

|이책의구성|
1장베이즈확률로위치예측하기-“실종된난파선선원을찾아라”
파이썬만에서발생한실종사건에서해안경비대가효율적으로탐색과구조임무를수행하도록,베이즈확률규칙을사용해돕는다.OpenCV,NumPy,itertools모듈을활용한다.

2장NLTK로문서간유사도측정하기-“이소설의원작자는누구일까”
자연어처리를통해아서코난도일이나H.G.웰스중누가『잃어버린세계』를썼는지를결정한다.NLTK,matplotlib등의모듈은물론이고불용어(stopwords),품사,어휘의풍부함,자카드유사성(Jaccardsimilarity)등의스타일로메트리(stylometry)기법을활용한다.

3장NLTK로텍스트요약하기-“핵심문장을뽑아내고단어구름을만들어보자”
마틴루터의‘나에게는꿈이있습니다’와같은유명한연설을인터넷에서긁어와서요점을요약한다.그리고소설본문을멋진광고나판촉글로변환한다.BeautifulSoup,Requests,regex,NLTK,Collections,wordcloud,matplotlib등을활용한다.

4장암호화기법으로안전한메시지전송하기-“해독불가능한암호문을작성해보자”
켄폴릿의베스트셀러스파이소설인『레베카의열쇠』에나오는원타임패드방식을디지털방식으로재구성해서,아무도깰수없는암호문을여러분의친구와함께공유한다.Collections모듈을활용한다

5장OpenCV로이미지차이분석하기-“천체이미지로명왕성을찾아보자”
클라이드톰보가1930년명왕성을발견할때사용한장치인‘반짝비교정’을복원한다.그리고현대적인컴퓨터비전기술을사용해자동으로행성이나운석과같이별시야에서이동중인순간적인천체를찾아낸다.OpenCV와NumPy를활용한다.

6장터틀그래픽으로궤적그리기-“우주경쟁에서승리하기위한아폴로8호의궤적시뮬레이션”
위험한도박에참여해미국의아폴로8호가달착륙경쟁에서승리할수있도록돕는다.미항공우주국나사(NASA)가예상보다1년이나더일찍달궤도에도착해서소련이실질적으로달착륙프로그램을포기하게만든,똑똑한자유귀환비행궤적을그림으로그려서실행해본다.turtle모듈을활용한다.

7장넘파이로통계분석처리하기“-안전한화성착륙지점을찾아라”
실제적인미션목표를사용해화성착륙선의잠재적인착륙후보지범위를좁힌다.화성지도에후보지점과각지점의통계를요약해표시한다.OpenCV,파이썬이미징라이브러리(PythonImagingLibrary),PIL,NumPy,tkinter에대한경험을얻을수있다.

8장OpenCV로이미지를처리하고맷플롯립으로시각화하기-“멀리떨어져있는외계행성을찾아라”
외계행성이항성의앞을통과하는우주적사건을시뮬레이션하면서,상대적인광도변화를그래프로그리고행성의지름을추정한다.새로발사된제임스웹우주망원경이직접외계행성을관찰한결과를시뮬레이션해서행성의하루길이를추산하면서8장을끝낸다.OpenCV,NumPy,matplotlib을사용한다.

9장OpenCV로얼굴형태감지하기-“사람과외계인을구별해내는피아식별장치를만들라”
비전을이용해우주군해병대와적대적인돌연변이를구분하는자동포탑을프로그래밍한다.OpenCV,NumPy,playsound,pyttsxw,datetime을사용한다.

10장머신러닝알고리즘으로개인별얼굴인식하기-“외계인의실험실침입을막아라”
얼굴인식을통해보호된실험실에대한접근을제한한다.OpenCV,NumPy,playsound,pyttsxw,datetime을사용한다.

11장판다스와시각화도구로지도그리기-“인터랙티브한인구밀도지도를만들어좀비떼로부터탈출하라”
TV드라마〈워킹데드〉의생존자들이애틀랜타에서탈출해미국서부의안전한지대로대피하도록돕는인구밀도지도를만든다.pandas,bokeh,holoviews,webbrowser를사용한다.

12장프로파일러로프로그램실행속도추정하기-“우리는지금현실세계에있는가가상세계에사는가”
시뮬레이션안의존재(어쩌면우리자신일수도있음)가자신이컴퓨터시뮬레이션안에살고있음을알수있는증거를찾는방법을식별한다.turtle,statistics,perf_counter를사용한다.

각장의끝에는[실습프로젝트]나[도전프로젝트]가있다.해답은이책의부록에실려있다.이책이제시한답이유일한정답은아니며,어쩌면여러분만의더나은해답을찾을수있을것이다.하지만[도전프로젝트]는여러분이직접해결해야한다.직접해보거나아니면포기하거나둘중하나이며,직접해보는것은무언가를배우는아주훌륭한방법이다.이책이여러분에게새로운프로젝트를시작할동기가되길바란다.이책의코드와[실습프로젝트]해답을이책의깃허브페이지인https://github.com/onlybooks/python-projects에서다운로드할수있다.

|이책의대상독자|
이책은2년차개발자를대상으로한파이썬서적이다.기본프로그래밍기법은다루지않으며,핸즈온프로젝트를기반으로하는실전연습을목표로한다.따라서여러분은이미배운개념을재탕한책을사느라쓸데없는돈을들이거나책꽂이를채우지않아도된다.이책에서는프로젝트의모든단계를설명하며,라이브러리나모듈을사용하는자세한절차를제시할것이다.물론라이브러리나모듈을설치하는방법도함께설명한다.

[추천사]

프로그래밍세상에첫발을내디뎠을때가생각나는가?컴퓨터라는만능기계를완전히통제할수있다는기쁨도잠깐이고,말이통하지않는하인을어떻게활용해야할지난관에부딪히면서좌절감이들기시작한다.모든일을할수있으면서,한편아무일도하지못하는컴퓨터를길들이기위해여러가지시도를한다.프로그래밍언어를배우면서표준라이브러리를기웃거리다가,다양한프레임워크와외부라이브러리를활용하면서오픈소스로만들어진각종소프트웨어를실행하고경우에따라뜯어보게된다.여기까지진행해왔다면근본적인질문이떠오르기마련이다.실생활에서부딪히는문제를풀기위해컴퓨터를활용하려한건데정작나는컴퓨터가제대로동작하게만드는기술만익히고있는건아닐까?
하지만현실에서직면한문제를잘정의한다음에컴퓨터가해결하도록만드는작업은결코쉽지않다.많은대기업과스타트업의사무실에서수많은개발자들이매일같이더나은세상을만들기위한소프트웨어개발에매진하고있다는사실이이를증명한다.사람은모호한요구사항도적절히알아서처리하는융통성이있지만,컴퓨터는한바이트만잘못되어도문제풀이를거부한다.아니,이는지극히사람관점으로바라본아쉬움이고,컴퓨터는사람의명령을거부하는대신잘못된한바이트까지묵묵하게수행할뿐이다.소프트웨어개발이어려운이유를설명하려면,컴퓨터가존재하는세상과사람이살아가는세상사이에는크나큰간극이존재한다는사실에서출발할필요가있다.
그렇다면학습목적이나개인적인취미목적으로컴퓨터에게제대로된문제풀이를시키기위해어떤연습이필요할까?수학이나논리학을공부해엄정한요구사항을뽑아내면될까?아니면공학적인관점에서접근해미리만들어진라이브러리나프레임워크를활용해API를적절히조합하면될까?그것도아니면,다양한실험을통해시행착오를거치면서원하는결과를도출할때까지알고리즘을개선하면될까?결론적으로이모든연습이필요하지만체계적이면서도안전하게연습할가상의놀이터를찾기란쉽지않다.우리에게는아주쉽지도그렇다고어렵지도않은문제를확보하고,수학적이고과학적인방법으로문제의해법을정리하며,라이브러리와프레임워크를사용해코드를작성하고,그코드를발전시켜가면서점진적으로개선하기위한지침이필요하다.
이책『실전파이썬핸즈온프로젝트』는프로그래밍언어나기술관점에서만들어낸‘예제를위한예제’를소개하는선에서그치지않고,현실에서찾아볼수있는문제를해결하기위한기술적인접근방식을소개한다.요식체계를대폭줄여다루기쉬운파이썬언어로다양한문제를직접풀어보며그과정에서이론과실전을조합하는방식에대해감을잡고실제현실에적용하는역량을배양하는것이이책의주요목표다.파이썬기본프로그래밍방법만알고있으면,넘파이,OpenCV,NLTK,판다스,맷플롯립등의라이브러리설치와사용방법은물론이고,제대로된파이썬프로그램을만들기위한클래스와함수설계와구성방법도실제사례로배울수있다.
이책에서는단순히데이터베이스에서값을가져오고,사용자인터페이스에서입력받은값을저장하는전형적인CRUD(Create,Read,Update,Delete)형태의업무용애플리케이션이아니라,다양한형태의비정형데이터(이미지,텍스트등)와정형데이터(CSV형태의표데이터)를활용해원하는문제를통계적인방식과머신러닝방식으로해결하는애플리케이션을소개하기에,어떻게보면미래예비데이터과학자를위한현실적이면서도흥미로운파이썬입문서로봐도좋을것같다.이책에서제공하는데이터과학을비롯해,머신러닝과인공지능분야에서자주등장하는다양한문제는복잡한하드웨어나소프트웨어구성없이도부담없이풀수있다.
소설의원작자를찾고,핵심문장을뽑아내고단어구름을만들며,나만의해독불가능한암호문을작성하고,천체이미지로명왕성을찾고,아폴로8호의궤적을시뮬레이션하고,화성이미지를분석해안전한화성착륙지점을찾고,물리학법칙을응용해멀리떨어진외계행성도찾으며,머신러닝을활용해얼굴형태를넘어서개인별얼굴을인식하고,인구밀도지도를상호대화식으로구성해시각화를하는등통계학,물리학,천문학영역에해당하는재미있는내용이연이어나오므로,어릴때과학잡지를읽으면서상상의나래를펼쳤던과학애호가들이라면이책을무척재미있게읽을수있으리라생각한다.
각장에나온내용을즐겁게읽은다음에는기존프로그램을확장하는방식으로설계된[실습프