[책 리뷰] 예제부터 배우는 거꾸로 파이썬 - 구재홍.비제이퍼블릭(BJ퍼블릭).2022
[목차 정리] - 코딩을 하게 된 이유와 준비. - 무작정 따라하기.
파이썬을 이용해서 활용할 수 있는 여러가지 기능중 저자의 목적을 위한 프로그래밍을 따라하면서 연습할 수 있도록 만든 파이썬 기초를 위한 책.
disallowed url - 'https://googleads.g.doubleclick.net/pagead/ads?client
저자는 일반인이 코딩을 바라보는 목적으로 시작하게 되었다. 돈벌이를 위해서도 아니고 전공을 살리기 위해서도 아니었다. 그저 코딩을 배우면서 내가 이걸 가지고 써먹으면 좀 더 재밌겠다. 혹은 편하겠다라는 것이 코딩에 대한 마음이었다.
코딩을 배우고 활용하면서 저자의 삶은 많은 부분 달라졌다고 한다. PC를 더 활용하게 됨으로 다양한 부분을 파이썬을 활용해 업무에 자동화를 하기 시작했다. 그리고 코딩을 하게 됨으로 머리속에 아이디어를 구현할 수 있게 되었다는 점이다. 전혀 관계없는 학과를 졸업하고 사회생활을 시작하면서 코딩을 하게 됨으로 삶이 조금씩 많이 변화하게 된 셈이다.
이런 저자의 경험은 내가 코딩을 배우고 싶어하는 목적과 비슷하다. 딱히 코딩을 함으로 당장 무언가가 바뀔거라고 생각하지는 않지만, 코딩을 알고 있음으로 앞으로 뭔가가 바뀔것 같다는 생각은 든다.
disallowed url - 'https://googleads.g.doubleclick.net/pagead/ads?client
세상의 모든 존재하는 지식은 온라인으로 구축되고 있다. 만약 아직 온라인에 존재하지 않는다면, 그건 시간의 문제일 뿐이지 곧 디지털로 변화되어 온라인에 존재하게 될 것이라 생각한다.
목적지는 분명한데 가는 길이 명확하지 않았고, 일상이 우선이라 시간도 부족했다. 그러다보니 탄탄한 기초보다는 효용감을 먼저 느끼고 싶다보니 책의 부제들이 매우 흥미롭게 느껴졌다. "개발은 하고 싶고, 이론은 배우기 싫은 당신" 이 얼마나 와닿는 말인가.
책의 1/3지점까지는 매우 마음에 들었다. 다만 실제로 예제를 따라하면서 부터 지치기 시작했다. 왜? 안되니까. 안되는 이유조차 모르겠으니까. 예를 들어 챕터 1은 KBL 프로농구 과거 경기 데이터 수집하기이다. 그리고 책은 코드 한줄 한줄 기능을 시연하게 하며 보여준다. 그런데 그 코드 한줄 한줄 따라가며 배우던 시나리오가 중반이 지나가면 어느 지점에서 되고 있는지 알 수가 없다. 또한 책에서 보여주는 그림 혹은 사진과 실제 웹 사이트 구조가 조금 달라져 있기도 하다. (특히 다른 네이버 맛집지도 찾기의 예.)
disallowed url - 'https://googleads.g.doubleclick.net/pagead/ads?client
퇴근 후 정리하고 겨우 짬을 낸 오후 10시부터 11시. 한 줄 한 줄 따라가고 있는데 책의 결과물과 같은 결과물이 나오지 않을때. 오래만에 진심으로 짜증이 났다. 그 짜증의 가장 큰 문제는 이유를 알 수 없다는 점이다.
저자의 목적에 맞게 작성한 코드를 깃 허브에 올려놓았다. 저자의 블로그를 통해 찾아갔고, 공유한 코드를 받아서 실행시켰다. 안된다. 왜 안되는지 모르겠지만 저자가 직접 짠 코드를 실행했지만 책과 같은 결과가 나오지 않았다.
기초가 다져지지 않았기에 이해할 수 없는 상황이 발생했을때 대처 할 수 있는게 없었다. 모르면 구글에 검색하면 된다는데 너무 기초적인 내용이라 뭘 물어봐야 할지도 잘 모르겠다. 그래서 잘 보고 따라만 하라는 책을 읽었는데 보고 따라하기도 안되니 서글픈 일이다.
disallowed url - 'https://googleads.g.doubleclick.net/pagead/ads?client
결론적으로. 책을 쓴 동기는 매우 마음에 들고, 어떤 의도, 어떤 목적으로 코딩을 짜고 진행하는지를 책을 통해 배웠다. 그리고 그 외에 모든 실습 예제 및 설명은 실행되지 않았기에 동의하지 않는다. 책의 1/3. 서두를 제외하곤 매우 불만스러웠다. 더불어 서두와 달리 예제 실습쪽의 파트는 불친절하다.
이 리뷰가 감정적인 이유는 책 읽는 시간+예제를 따라한 몇 시간이 날아갔기 떄문이다. 그게 다다. 리뷰 쓰고 나니 저자와 출판사에게 조금 미안해진다. 쌩 초보 주제에 이런 고급 책을 읽은 내가 문제다.
책 리뷰,리뷰,비소설, 예제부터 배우는 거꾸로 파이썬, 구재홍, 비제이퍼블릭, 코딩, 파이썬, 파이썬 기초, 코딩 기초, |
|
언뜻보면 다른 책들과 비슷한 구성인 듯 보여도.. 문법은 기본적인 것들만 설명하고 있습니다. 하지만 이 책의 큰 6가지 예제를 공부하다 보면 이 책의 진가를 알게 되고, 참 좋은 책이라는 것을 느끼게 되었습니다. 파이썬이란 언어는 다양한 라이브러리들을 지원하는 언어로 잘 알려져있는데요.. 저자 분께서 이 점을 잘 이용해 설명하고 있습니다. (예제들 중 하나인 프로농구 데이터 수집에 대해 말해 볼게요.. )
캡처된 화면에는 수집할 데이터를 녹색 네모박스로 표시, 구글 개발자 도구로 해당 데이터의 위치를 파악하는 모습을 보여주고, 함수를 만드는 모습을 보여주고 있습니다. 개개의 데이터를 수집하는 작은 함수 구현부터 시작해 한경기 모든 데이터를 가져오는 함수... 하루의 모든 경기 데이터를 가져오는 함수... 모든 날짜의 경기 데이터를 가져오는 함수... 식으로 점진적으로 확장되어 가는 모습을 보여주고 있어, 파이썬을 처음 공부하시는 분들이라도 예제가 어떤 식으로 확장되어 갈지, 다른 식으로 응용은 어떻게 할지 생각할 수 있게 도와주는 것 같습니다.
코드 구현을 하면서도 바로 결과를 눈으로 확인하면서 할 수 있기 때문에 재밌게 공부할 수 있는 책인 것 같습니다. (파이썬이 지원하는 라이브러리가 상당하기 때문에 그런 것 같기도.. ) 코드 구현하며 해당 라이브러리 함수가 왜 문자열을 리턴하는지.. 때로는 리스트를 리턴하는지 등을 생각해 보시면서 공부하면 문법 공부에도 도움이 될 것 같습니다.
파이썬으로 수집한 데이터를 태블로를 이용해 대시보드에 차트들로 표시하는 부분입니다. 이 책을 공부하면서 파이썬을 공부함에 있어, 여러 라이브러리들과 태블로같은 도구들을 같이 이용해 학습함으로써 더욱 재미있게 공부할 수 있다는 걸 알게 되었습니다. 이 책에서 다루는 예제들이 정말 재미있기 때문에, 파이썬을 이미 공부하신 분들이라도 도움이 많이 되지 않을까 합니다. (처음 공부하시는 분들이라면 두말할 것도 없죠.. ) 저자 분께서 재밌는 예제를 다루는 책을 또 내주시면 좋을 것 같습니다..
|
|
네이버 블로그 리뷰: https://blog.naver.com/rock1192/222854409195
이 책은 파이썬 기초 부터 6가지 예제 프로젝트를 직접 실습해보며 재미있게 파이썬 언어로 코딩을 공부하는 재미를 느낄 수 있게 구성된 코딩 입문자를 위한 책 이다
첫 번째 예제는 'KBL 프로농구의 경기 기록 데이터 가져오기'이다 해당 예제의 코드를 작성했던 이유는 '스포츠토토'를 하기 위해서였다 주식과 스포츠토토 모두 과거의 결과와 지표가 미래에 영향을 줄 수 있다고 생각했다 예를 들면, 주식에서 PER, PBR, ROE와 같은 지표를 주식 투자를 할 때 참고하듯이, 스포츠 경기에서도 과거의 승률, 슛 성공률, 득점력, 수비력, 리바운드 등과 같은 경기 요소들이 미래의 경기 결과에 영향을 줄 것이라 생각했다 과거 여러 지표와 경기 결과와의 관계를 학습하여 승률을 예측할 수 있는 모델을 만든 후, 그것을 다시 토토의 배당률과 연관 짓는 모델을 만들고 싶었다 이 모델을 만들기 위해서는 먼저 KBL에 있는 과거 농구 경기 기록들을 가져와야 했다
두 번째 예제는 '배달의 민족 리뷰 데이터 수집하기'이다 해당 데이터는 '배달의 민족' 서비스를 사용하는 사장님들만 적용할 수 있는 예제이다 하지만 이 예제를 응용해서 각자의 분야에서 활용할 수 있는 데이터 수집기를 만들어보길 바란다 자영업을 하는 주변 지인에게 추천해주는 것도 좋다 파이썬 독학을 시작하고 이것저것 열심히 크롤링 하던 중, 문득 '내가 궁금할 만한 정보를 가져와서 분석할 게아니라, 사람들이 궁금해할 만한 것을 가져와서 분석하면 어떨까?'와 같은 생각이 들었다 그래서 새로운 데이터 수집을 찾던 중, 부모님께 도움이 될 수 있을 것 같아 다음 에제를 작성했다
소비자들의 리뷰 분석 과정 1. 메뉴별 주문량에서 각 메뉴를 클릭한다
2. 월별 평점에서 각 월을 클릭한다
3. 유저별 평점/주문량 또는 유저별 리뷰에서 각 유저를 클릭해 본다
세 번째 예제는 네이버 플레이스, 카카오맵의 평점을 활용한 '맛집 검색기 만들기'이다 '맛집 검색기'는 본인이 원하는 음식과 지역 그리고 기준 평점을 입력하면 네이버 플레이스와 카카오맵의 평점을 비교하여 원하는 맛집 장소를 찾을 수 있는 검색기이다 앞의 예제는 배달의 민족 사장님들을 위한 리뷰 데이터 분석이었다면, 이번 에제는 리뷰 데이터를 바탕으로 맛집을 찾길 원하는 소비자들을 위한 실습 예제이다 이 예제를 진행했던 이유는 보통 밖에서 음식을 먹어야 할 일이 생기면, 주변 맛집을 검색해서 별점을 기준으로 식당을 고르는 습관을 발견했기 때문이다 꼭 별점이 제일 높은 식당을 찾기보다는, 적어도 3.5점 이상의 별점을 가지는 식당 리스트를 찾을 때가 많았다
네이버 플레이스와 카카오맵의 도움을 많이 받았지만 사실 불편한 점도 있었다 매번 하나씩 찾아보고 일일이 카카오맵 또는 구글에서 비교하는 게 귀찮을 뿐만 아니라, 시간도 꽤 걸리는 일이었다 그리고 그렇게 찾은 맛집들이 괜찮은지 네이버 블로그에 다시 하나씩 검색해서 비교까지 하다보면, 약속 장소를 정하기가 쉽지 않았다 그래서 일정의 기준점을 두고 리스트만 먼저 뽑아내면 약속 장소를 찾는 시간을 줄일 수 있지 않을까라는 생각으로 네이버 플레이스, 카카오맵의 별점을 비교한 맛집 검색기를 셀레니움을 활용한 코드로 작성해보기로 했다
네이버 + 카카오 종합하기 네이버, 카카오 검색기를 연결하여 종합 맛집 검색기 함수를 만든다 연결하기에 앞서 어떠한 순서와 방식으로 작성할지 생각해보자
필요한 데이터
필요한 움직임 1. 네이버 플레이스로 이동한다 2. 네이버 검색기의 결과를 데이터 프레임으로 지정한다 3. 결괏값의 개수가 1개 이상일 경우 다음 동작을 진행하고, 0개일 경우 결괏값이 없음을 안내한다 4. 카카오맵으로 이동한다 5. 저장했던 데이터 프레임에서 1개씩 카카오 검색기로 검색하여 카카오맵 별점 값을 저장한다
네 번째로 실습할 예제는 '로또 당첨 지도 만들기'이다 로또 당첨 지도는 기획재정부가 제공한 점포별 1등 당첨 엑셀 파일을 지도로 만든 것이다 지도 안의 점포는 원으로 표시하였고, 1등 당첨이 많이 나온 곳일수록 더 큰 원으로 표시했다 이 로또 지도를 만든 이유는 단순했다 친구들이 로또 사는 걸 좋아하는데, 1등 당첨자가 많이 나온 지점이 어느 지점인지 늘 궁금해했다 궁금증을 해결하기 위해 인터넷 검색을 통해 당첨자를 많이 배출한 지점을 찾을 수는 있었지만, 그렇게 점포를 하나씩 찾는 일은 쉬운 일이 아니었다 조금 더 깊은 검색을 통해 기획재정부에서 제공한 2019~2020년 동안 1등 당첨자가 나온 판매점이 기록된 엑셀 파일도 찾을 수 있었지만, 시각화된 자료가 아니라 보기 불편했다 그래서 지도에 당첨 판매점과 당첨 횟수를 직접 표시하면 어떨까 싶은 마음에 만들게 되었다
무작정 지도 만들어 보기 with 폴리움 가장 먼저 기본적인 라이브러리 활용법부터 알아보자 folium.Map 뒤에 지정한 좌표와 배울을 입력하면 그에 따른 지도를 만들 수 있다
책에서는 위에서 알아본 예제 이외에도 모든 상장사의 재무제표 데이터 한 번에 추출하기, Outlook 이메일 발송하기의 프로젝트가 더 제공되고 있다 이 책에서 소개하고 있는 실생활에서 많이 사용될 법한 여섯가지의 프로젝트를 직접 실습하면서 파이썬 언어와 기본적인 데이터 분석 방법 그리고 파이썬 언어를 활용한 기본적인 프로그램 작성과 응용에 대해서 공부할 수 있다 여기서 더 응용해서 자신에게 필요한 다양한 프로젝트를 혼자서 진행해본다면 원래부터 개발자가 아니였던 사람들도 충분피 프로그래밍을 할 수 있는 능력을 갖추게 될 것이다 프로그래밍이란 대단히 많은 준비와 각오가 필요하기보다는 프로그래밍 언어라는 도구를 활용해 실생활의 문제점을 해결하는 것이 주 목적이 되어야 한다 다양한 프로그램 방법론과 기법들은 그 후에 알아가도 늦지 않다 평소에 프로그래밍을 해보고 싶었거나 파이썬 언어를 활용한 기초적인 프로젝트를 수행해보고 싶었던 사람이라면 이 책이 딱이다 초보자의 눈높이에 맞춰서 파이썬 언어의 기본사용법과 개발환경 구성 그리고 어렵지 않은 프로젝트를 여섯가지나 친절하게 따라하기 쉽게 구성되어 있어서 프로그래밍 언어라는 도구로 어떻게 프로그래밍이라는 것을 할 수 있는지 체험해볼 수 있는 좋은 기회를 제공한다
※출판사로부터 책을 무상으로 제공받아 직접 실습해보고 정성껏 작성한 리뷰 입니다 |