본문 바로가기
+ 펴낸 책

실전 파이썬 핸즈온 프로젝트

by 책만 2022. 5. 23.

 

실전 파이썬 핸즈온 프로젝트

문제 해결과 실무 응용력을 키우기 위한
나만의 파이썬 포트폴리오 만들기

리 본 지음 | 오현석 옮김
420쪽 | 28,000원 | 2022년 5월 31일 출간 | 185*240*20 | ISBN13 9791189909406

 

판매처 | [교보문고] [YES24] [알라딘] [인터파크] + 전국 교보문고 매장

전자책판매처 | [리디북스] [교보문고] [YES24] [알라딘] | ISBN 9791189909444 | PDF 포맷 | (7월 29일 출간)


* 원서: REAL WORLD PYTHON: A HACKER’S GUIDE TO SOLVING PROBLEMS WITH CODE

 

소스 코드 다운로드: https://github.com/rlvaugh/Real_World_Python

★ 정오표: https://www.onlybook.co.kr/entry/python-projects-errata (아직 등록된 정오사항이 없습니다)

[실습 프로젝트] 해답 다운로드: 

실전 파이썬 핸즈온 프로젝트_부록.pdf
1.23MB

✔ 우리도 전문가처럼 파이썬 프로그램을 만들 수 있다!

OpenCV, NLTK, 넘파이, 판다스 등을 활용해 컴퓨터 비전, NLP(자연어 처리) 등

다양한 프로젝트를 직접 해결하며 배우는 실전 파이썬 학습서!

 

✔  짤막한 파이썬 스크립트를 돌리고 그저 결과만 확인하는
단편적인 학습 방식에서 이제는 벗어나자!

 

 통계학, 물리학, 천문학 등 흥미로운 실생활의 16가지 프로젝트로 접근하는,
완전하게 동작 가능한 파이썬 애플리케이션 만들기 대작전! 

 

| 이 책에서 다루는 내용 | 

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

독자 여러분이 지금까지 그저 파이썬 언어의 구문만 만지작거리는 수준이었다면, 이 책에서 다루는 [실습 프로젝트]를 직접 수행함으로써 프로그램을 완벽하게 작성하는 수준으로 즉시 성장할 수 있을 것이다. 이 책에서 우리는 실험을 수행하고, 통계 개념을 탐구하며, 외계 행성을 탐지하는 등 인류의 역사 속에서 천재들을 괴롭혔던 새로운 문제를 해결하면서 파이썬 기술을 연마해 나간다.

각 장은 명확히 프로젝트의 목표를 정의하면서 시작하고, 문제를 공략하는 방법을 논의한 다음, 전문 프로그래머처럼 생각하도록 고안된 16가지 실습 과제를 다뤄본다. 이 책에서 함께 해안 경비대의 수색 및 구조 작업을 돕고, 나사(NASA)의 달 비행을 계획하고 실행하며, 얼굴 인식을 사용해 보안이 필요한 실험실의 출입을 제한하는 등의 과업을 수행해보자.

이 책의 실습 프로그램은 초보자도 쉽게 이해할 수 있다. 하지만, 단계가 진행됨에 따라 점차 수준 높은 기법을 배울 수 있으며, 그에 따라 여러분의 코딩 능력도 향상될 것이다. 이 책에서 주어진 과업을 모두 달성하고 나면, 파이썬을 활용해 실생활의 여러 문제를 풀 수 있는 역량을 갖추게 될 것이다.

추천의 글

초보 딱지를 떼고 실생활과 연관된 재미 있는 예제를 찾아나선 파이썬 프로그래머라면 이 책을 읽어야 한다.
- <긱 테크 스터프(Geek Tech Stuff)>
파이썬을 공부하는 모든 이에게 초강추!
- 켈리 퍼레디스(Kelly Paredes) / ‘티칭 파이썬(Teaching Python)’ 팟캐스트 운영자
머신러닝은 배웠는데 그걸로 당최 뭘 해야 할지 모른다면 이 책을 읽어라!
- 이안 마이저(Ian Mizer) / 애틀란타 파이썬 프로그래머 그룹
이 책을 읽고 바로 실행해보라. 어느 분야에서 일하든, 실세계의 문제를 해결하는 프로그램을 짜고 도전적인 과제를 해결할 준비가 된 자신을 발견하게 될 것이다.
- 샌드라 헨리스토커(Sandra Henry-Stocker) / <네트워크 월드(IDG)> 리눅스 저널리스트
프로그래밍 세상에 첫발을 내디뎠을 때가 생각나는가? 컴퓨터라는 만능 기계를 완전히 통제할 수 있다는 기쁨도 잠깐이고, 말이 통하지 않는 하인을 어떻게 활용해야 할지 난관에 부딪히면서 좌절감이 들기 시작한다. 모든 일을 할 수 있으면서, 한편 아무 일도 하지 못하는 컴퓨터를 길들이기 위해 여러 가지 시도를 한다. 프로그래밍 언어를 배우면서 표준 라이브러리를 기웃거리다가, 다양한 프레임워크와 외부 라이브러리를 활용하면서 오픈소스로 만들어진 각종 소프트웨어를 실행하고 경우에 따라 뜯어보게 된다. 여기까지 진행해왔다면 근본적인 질문이 떠오르기 마련이다. 실생활에서 부딪히는 문제를 풀기 위해 컴퓨터를 활용하려 한 건데 정작 나는 컴퓨터가 제대로 동작하게 만드는 기술만 익히고 있는 건 아닐까?

하지만 현실에서 직면한 문제를 잘 정의한 다음에 컴퓨터가 해결하도록 만드는 작업은 결코 쉽지 않다. 많은 대기업과 스타트업의 사무실에서 수많은 개발자들이 매일같이 더 나은 세상을 만들기 위한 소프트웨어 개발에 매진하고 있다는 사실이 이를 증명한다. 사람은 모호한 요구사항도 적절히 알아서 처리하는 융통성이 있지만, 컴퓨터는 한 바이트만 잘못되어도 문제 풀이를 거부한다. 아니, 이는 지극히 사람 관점으로 바라본 아쉬움이고, 컴퓨터는 사람의 명령을 거부하는 대신 잘못된 한 바이트까지 묵묵하게 수행할 뿐이다. 소프트웨어 개발이 어려운 이유를 설명하려면, 컴퓨터가 존재하는 세상과 사람이 살아가는 세상 사이에는 크나큰 간극이 존재한다는 사실에서 출발할 필요가 있다.
그렇다면 학습 목적이나 개인적인 취미 목적으로 컴퓨터에게 제대로 된 문제 풀이를 시키기 위해 어떤 연습이 필요할까? 수학이나 논리학을 공부해 엄정한 요구사항을 뽑아내면 될까? 아니면 공학적인 관점에서 접근해 미리 만들어진 라이브러리나 프레임워크를 활용해 API를 적절히 조합하면 될까? 그것도 아니면, 다양한 실험을 통해 시행착오를 거치면서 원하는 결과를 도출할 때까지 알고리즘을 개선하면 될까? 결론적으로 이 모든 연습이 필요하지만 체계적이면서도 안전하게 연습할 가상의 놀이터를 찾기란 쉽지 않다. 우리에게는 아주 쉽지도 그렇다고 어렵지도 않은 문제를 확보하고, 수학적이고 과학적인 방법으로 문제의 해법을 정리하며, 라이브러리와 프레임워크를 사용해 코드를 작성하고, 그 코드를 발전시켜가면서 점진적으로 개선하기 위한 지침이 필요하다.

이 책 『실전 파이썬 핸즈온 프로젝트』는 프로그래밍 언어나 기술 관점에서 만들어낸 ‘예제를 위한 예제’를 소개하는 선에서 그치지 않고, 현실에서 찾아볼 수 있는 문제를 해결하기 위한 기술적인 접근 방식을 소개한다. 요식 체계를 대폭 줄여 다루기 쉬운 파이썬 언어로 다양한 문제를 직접 풀어보며 그 과정에서 이론과 실전을 조합하는 방식에 대해 감을 잡고 실제 현실에 적용하는 역량을 배양하는 것이 이 책의 주요 목표다. 파이썬 기본 프로그래밍 방법만 알고 있으면, 넘파이, OpenCV, NLTK, 판다스, 맷플롯립 등의 라이브러리 설치와 사용 방법은 물론이고, 제대로 된 파이썬 프로그램을 만들기 위한 클래스와 함수 설계와 구성 방법도 실제 사례로 배울 수 있다.

이 책에서는 단순히 데이터베이스에서 값을 가져오고, 사용자 인터페이스에서 입력받은 값을 저장하는 전형적인 CRUD(Create, Read, Update, Delete) 형태의 업무용 애플리케이션이 아니라, 다양한 형태의 비정형 데이터(이미지, 텍스트 등)와 정형 데이터(CSV 형태의 표 데이터)를 활용해 원하는 문제를 통계적인 방식과 머신러닝 방식으로 해결하는 애플리케이션을 소개하기에, 어떻게 보면 미래 예비 데이터 과학자를 위한 현실적이면서도 흥미로운 파이썬 입문서로 봐도 좋을 것 같다. 이 책에서 제공하는 데이터 과학을 비롯해, 머신러닝과 인공지능 분야에서 자주 등장하는 다양한 문제는 복잡한 하드웨어나 소프트웨어 구성 없이도 부담 없이 풀 수 있다.

소설의 원작자를 찾고, 핵심 문장을 뽑아내고 단어 구름을 만들며, 나만의 해독 불가능한 암호문을 작성하고, 천체 이미지로 명왕성을 찾고, 아폴로 8호의 궤적을 시뮬레이션하고, 화성 이미지를 분석해 안전한 화성 착륙 지점을 찾고, 물리학 법칙을 응용해 멀리 떨어진 외계행성도 찾으며, 머신러닝을 활용해 얼굴 형태를 넘어서 개인별 얼굴을 인식하고, 인구 밀도 지도를 상호대화식으로 구성해 시각화를 하는 등 통계학, 물리학, 천문학 영역에 해당하는 재미있는 내용이 연이어 나오므로, 어릴 때 과학 잡지를 읽으면서 상상의 나래를 펼쳤던 과학 애호가들이라면 이 책을 무척 재미있게 읽을 수 있으리라 생각한다.

각 장에 나온 내용을 즐겁게 읽은 다음에는 기존 프로그램을 확장하는 방식으로 설계된 [실습 프로젝트]를 직접 풀어보고 [도전 프로젝트]에 나오는 고급 내용까지 해결해보자. 그러고 나서 결과물을 정리해 깃허브 저장소에 올려 자신만의 해법을 외부에 공개하면, 여느 포트폴리오도 부럽지 않을 것이다. 아무쪼록 이 책과 함께 독자 여러분들의 문제 풀이 실력이 한 단계 더 높아지면 좋겠다.
- 박재호 / ‘컴퓨터 vs 책’ 블로그 운영자, 유튜브 채널박재호, 『클린 코드』 역자

| 이 책의 구성 | 

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

2장 NLTK로 문서 간 유사도 측정하기 - “이 소설의 원작자는 누구일까
자연어 처리를 통해 아서 코난 도일이나 H. G. 웰스 중 누가 『잃어버린 세계』를 썼는지를 결정한다. NLTK, matplotlib 등의 모듈은 물론이고 불용어(stop words), 품사, 어휘의 풍부함, 자카드 유사성(Jaccard similarity) 등의 스타일로메트리(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, 파이썬 이미징 라이브러리(Python Imaging Library), 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년 차 개발자를 대상으로 한 파이썬 서적이다. 기본 프로그래밍 기법은 다루지 않으며, 핸즈온 프로젝트를 기반으로 하는 실전 연습을 목표로 한다. 따라서 여러분은 이미 배운 개념을 재탕한 책을 사느라 쓸데없는 돈을 들이거나 책꽂이를 채우지 않아도 된다. 이 책에서는 프로젝트의 모든 단계를 설명하며, 라이브러리나 모듈을 사용하는 자세한 절차를 제시할 것이다. 물론 라이브러리나 모듈을 설치하는 방법도 함께 설명한다.

 

지은이 리 본Lee Vaughan

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

파이썬 코딩 기초를 배웠다면 실제 세상에서 써먹을 수 있는 완전한 프로그램을 작성할 준비가 된 것이다. 이 책에서는 아폴로 8호의 달 착륙 경쟁을 돕고, 클라이드 톰보(Clyde Tombaugh)가 명왕성을 발견하도록 도우며, 화성에서 운행될 로버(Rover)가 활동할 착륙 지점을 선택하고, 외계행성의 위치를 찾고, 친구들에게 극비 메시지를 보내며, 괴물 돌연변이들과 싸우고, 난파선 선원을 돕고, 좀비로부터 탈출하는 등의 모험을 모두 파이썬 프로그래밍 언어를 사용해 진행할 것이다. 이 과정에서 OpenCV, NLTK, NumPy, pandas, matplotlib 등의 컴퓨터 비전, 자연어 처리, 과학 계산 모듈을 사용하고 여러분의 프로그래밍 생활을 편하게 해줄 다양한 패키지들도 살펴본다.
파이썬 코딩 기초를 배웠다면 실제 세상에서 써먹을 수 있는 완전한 프로그램을 작성할 준비가 된 것이다.

 

옮긴이 오현석

비사이드소프트BSIDESOFT 이사로 일하면서 매일매일 고객의 요청에 따라 코드를 만들어내고 있는 현업 개발자다. 어릴 때 처음 컴퓨터를 접하고 매혹된 후 경기과학고, KAIST 전산학과(프로그래밍 언어 전공 석사)를 거치면서 계속 컴퓨터를 사용해왔다.
직장에서는 주로 코틀린이나 자바를 사용한 서버 프로그래밍을 하고, 주말이나 빈 시간에는 번역을 하거나 공부를 하면서 즐거움을 찾는다. 시간이 아주 많이 남을 때는 시뮬레이션 게임을 하면서 머리를 식히며 놀고, 어떻게 하면 막내자식을 프로그래밍의 세계로 끌어들일 수 있을까 고민 중인 아빠이기도 하다.
『코어 파이썬 애플리케이션 프로그래밍 Core Python Applications Programming Third Edition』(에이콘출판, 2014)을 시작으로 『Kotlin in Action』(에이콘출판, 2017), 『한 권으로 읽는 컴퓨터 구조와 프로그래밍』(책만, 2021), 『파이썬으로 살펴보는 아키텍처 패턴』(한빛미디어, 2021), 『Programming in Scala 4/e』(에이콘출판, 2021) 등 30여 권의 책을 번역했다.

프로그래밍 언어를 배울 때는 보통 기본 문법을 배우고, 간단한 예제를 풀어보면서 다양한 프로그래밍 요소와 표준 라이브러리를 문제를 해결할 때 활용하는 방법을 익히게 된다. 이 정도 수준이 되면 이제부터 할 수 있는 일이 무궁무진해지지만, 오히려 할 수 있는 일이 너무 많아서 무엇을 해야 할지 정하지 못하고 주저하는 사이 시간은 가고 언어에 대해 배웠던 지식도 머릿속에서 사라져가는 경우가 흔히 있다.

이럴 때 가장 좋은 방법은 일상생활에서 해결하고 싶은 일을 찾아서 프로젝트를 시작하는 것이다. 보통 주변에서 절실히 필요한 무언가가 있을 때 생산성도 높아지고, 자기 자신에게 절실한 현실의 문제를 제대로 푸는 프로그램을 개발하면 의외로 그 프로그램이 남에게도 유용하다는 사실을 발견하고 그 자체가 큰 사업이 되거나 제품이 되는 경우도 흔히 있다.

하지만 적절한 프로젝트를 찾지 못한 사람은 이 책에서 큰 도움을 얻을 수 있다. 이 책은 천문학이나 로켓과학, 인공지능 등의 분야에서 실제로 해결해야 했던 문제나 있을 법한 문제를 파이썬으로 푸는 방법을 보여준다. 문제 자체도 흥미진진하고, 문제에 얽힌 역사적·과학적 사실도 재미 삼아 읽기에 부족함이 없으며, 문제를 해결하기 위한 아이디어를 프로그램으로 풀어나가는 방법 또한 흥미진진하다. 그리고 이런 복잡한 문제를 파이썬과 파이썬 생태계에 존재하는 편리한 라이브러리를 통해 얼마나 짧은 코드로 쉽게 풀 수 있는지를 감상하면서 감탄하는 경험도 할 수 있다.
아무쪼록 파이썬 기초를 뗀 독자들이 이 책을 통해 프로그래밍의 재미를 더 느끼고 파이썬 기술도 한층 더 갈고닦기 바란다.

 

[차례]

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] 삶, 우주, 그리고 예틀의 연못
__연못 시뮬레이션 코드
__연못 시뮬레이션의 함의
__격자 축을 벗어나 움직이는 비용 측정하기
__결과
__전략
[도전 프로젝트] 안전한 우주 찾기
[도전 프로젝트] 여기 해가 뜨네요
[도전 프로젝트] 개의 눈으로 바라보기
[도전 프로젝트] 단어 찾기 커스텀화하기
[도전 프로젝트] 축하 슬라이드 쇼 단순화하기
[도전 프로젝트] 우리가 만든 거미줄이 얼마나 많이 꼬여 있는지!
[도전 프로젝트] 산 위에서 외쳐라
부록 [실습 프로젝트] 해답

 

댓글