Python생활코딩(아꿈사2015.07.23)

31
파파파파파 파파파파파파 파파파 파파 파파 파파 (2015.07.23)

Transcript of Python생활코딩(아꿈사2015.07.23)

Page 1: Python생활코딩(아꿈사2015.07.23)

파이선으로 생활코딩하기

아꿈사 판교 모임박일 (2015.07.23)

Page 2: Python생활코딩(아꿈사2015.07.23)

목표• 파이선과 그 외 궁금했던 기술을 사용해 보자 .• 생활에 도움이 되는 앱을 만들자 .

Page 3: Python생활코딩(아꿈사2015.07.23)

단어장• 필요한 기능–어디에서 단어를 가져올 것인가 ?–어디에서 단어 뜻을 가져올 것인가 ?–아이폰용 깜빡이 어플리케이션은 어떻게 만들

것인가 ?

Page 4: Python생활코딩(아꿈사2015.07.23)

단어풀 만들기• 책에서 텍스트 뽑아내기– Free PDF to Text Converter– Adobe Reader XI– Kindle Converter

Page 5: Python생활코딩(아꿈사2015.07.23)

단어풀 정의하기• 텍스트를 단어로 보여주기• 텍스트 에디터에서 중복값 제거하기

Page 6: Python생활코딩(아꿈사2015.07.23)

단어뜻 가져오기• lingoes• lingoes-extractor

Page 7: Python생활코딩(아꿈사2015.07.23)

단어뜻 가져오기• lingoes• lingoes-extractor

Page 8: Python생활코딩(아꿈사2015.07.23)

깜빡이 어플리케이션 만들기 (?)

• gFlash+–단어 200 개까지 지원

Page 9: Python생활코딩(아꿈사2015.07.23)

깜빡이 어플리케이션 만들기 (?)

• Unforget–단어 1000 개까지 지원– UI 가 더 이쁨

Page 10: Python생활코딩(아꿈사2015.07.23)

깜빡이 어플리케이션 만들기 (?)

• Unforget–단어 1000 개까지 지원– UI 가 더 이쁨

Page 11: Python생활코딩(아꿈사2015.07.23)

TODO

• 영단어를 사전에 있는 형태로 변환하기– encourages -> encourage– restricted -> restrict

• 알고 있는 단어를 제거하기– Blacklist 를 관리할 것인가 ?

Page 12: Python생활코딩(아꿈사2015.07.23)

라디오 방송 곡 크롤링• 직장인 밴드–실력이 없으니 선곡이라도 잘 하자–배철수의 음악캠프에 어떤 노래가 나왔는지를

알고 싶다 .

Page 13: Python생활코딩(아꿈사2015.07.23)

배철수의 음악캠프 공식 홈페이지

Page 14: Python생활코딩(아꿈사2015.07.23)

배철수의 음악캠프 공식 홈페이지

http://www.imbc.com/broad/radio/fm4u/musiccamp/mcamp_musictable/

Page 15: Python생활코딩(아꿈사2015.07.23)

아쉬운 점• 듣기 기능 없음• 얼마나 자주 방송되었는지 알 수 없음• 곡별 방송 날짜 , 아티스트별 방송된 곡 보기

기능 없음

Page 16: Python생활코딩(아꿈사2015.07.23)

크롤링부터 만들어 보자 .

• 필요한 기능–크롤링• Requests: HTTP for Humans• BeautifulSoup

– DB 저장• MongoDB

– Pymongo

• MySQL(X)– Windows 에서 설치하려다가 암 걸리는 줄 ...

Page 17: Python생활코딩(아꿈사2015.07.23)

영감을 준 프로젝트

Page 18: Python생활코딩(아꿈사2015.07.23)

영감을 준 프로젝트

Page 19: Python생활코딩(아꿈사2015.07.23)

결과

https://twitter.com/rigmania/status/562256359509356544

Page 20: Python생활코딩(아꿈사2015.07.23)

MongoDB 쿼리문 싫어• MongoDB 쿼리문– db.inventory.find( { type: { $in: [ 'food', 'snacks' ]

} } )– db.inventory.find( { type: 'food', price: { $lt: 9.95

} } )– db.inventory.find( { $or: [ { qty: { $gt: 100 } },

{ price: { $lt: 9.95 } } ] } )

• 웹페이지로 front-end 를 만들어보자 .

Page 21: Python생활코딩(아꿈사2015.07.23)

사용기술• Django(X)• Flask– Flask is a microframework for Python

based on Werkzeug, Jinja 2 and good in-tentions. And before you ask: It's BSD li-censed!

Page 22: Python생활코딩(아꿈사2015.07.23)

외부에서 볼 수 있게 하자 .

• 호스팅을 해야 하나 ?

http://www.amazon.co.jp/ProLiant-Mi-croServer

Page 23: Python생활코딩(아꿈사2015.07.23)

호스팅• 구글 앱 엔진 , Heroku• Microsoft Azure

– 그냥 쓰면 됨– 공짜 :MSDN subscription 사용자에게는 6 만원 포인트 제공

• 단점– using server 2012, you can go to 'Server Manager'

click on 'Local Server' and your 'IE Enhanced Secu-rity Configuration‘ 'On' and turn it 'Off'

– Firewall 을 off 시켜야 한다 .– 가끔 업데이트를 위해 서버를 재시작해야 한다는 메시지가 뜬다 .

( 다중화 강요 ?)

Page 24: Python생활코딩(아꿈사2015.07.23)

추가 기능• Youtube 링크도 자동으로 보여주자 .• 트위터봇도 만들어 보자 .• 사용 기술– Youtube API– Twitter API• Windows Scheduled Tasks

Page 25: Python생활코딩(아꿈사2015.07.23)

배철수의 음악캠프 공식 홈페이지

http://www.imbc.com/broad/radio/fm4u/musiccamp/mcamp_musictable/

Page 26: Python생활코딩(아꿈사2015.07.23)

배철수의 음악캠프 공식 홈페이지

http://parkpd1.cloudapp.net:5000/music_selection/20150722

Page 27: Python생활코딩(아꿈사2015.07.23)

배철수의 음악캠프 공식 홈페이지

http://parkpd1.cloudapp.net:5000/artist/The%20Beach%20Boys

Page 28: Python생활코딩(아꿈사2015.07.23)

배철수의 음악캠프 공식 홈페이지

http://parkpd1.cloudapp.net:5000/song/Low-down

Page 29: Python생활코딩(아꿈사2015.07.23)

배철수의 음악캠프 공식 홈페이지

http://parkpd1.cloudapp.net:5000/song/Low-down

Page 30: Python생활코딩(아꿈사2015.07.23)

TODO

• Python 의 거지같은 유니코드 지원• 첫 화면에 날짜 목록 보여주기• 전체 재생 횟수 보여주기• 인기 지수 ( 뭔가 수식을 만들어서 ) 보여주기• 검색 Submit 창 만들기• song, artist 를 lowercase 에 space 제거해서

같은 이름이 약간 다르게 입력되어도 같이 인식되도록 하기

• 날짜 범위 검색 가능하게 하기• 통계 페이지 만들기

Page 31: Python생활코딩(아꿈사2015.07.23)

마무리 (?)

• 배철수의 음악캠프 배순탁 작가