SlideShare a Scribd company logo
1 of 31
파이선으로 생활코딩하기
아꿈사 판교 모임
박일(2015.07.23)
목표
• 파이선과 그 외 궁금했던 기술을 사용해
보자.
• 생활에 도움이 되는 앱을 만들자.
단어장
• 필요한 기능
– 어디에서 단어를 가져올 것인가?
– 어디에서 단어 뜻을 가져올 것인가?
– 아이폰용 깜빡이 어플리케이션은 어떻게 만들
것인가?
단어풀 만들기
• 책에서 텍스트 뽑아내기
– Free PDF to Text Converter
– Adobe Reader XI
– Kindle Converter
단어풀 정의하기
• 텍스트를 단어로 보여주기
• 텍스트 에디터에서 중복값 제거하기
단어뜻 가져오기
• lingoes
• lingoes-extractor
단어뜻 가져오기
• lingoes
• lingoes-extractor
깜빡이 어플리케이션 만들기(?)
• gFlash+
– 단어 200개까지 지원
깜빡이 어플리케이션 만들기(?)
• Unforget
– 단어 1000개까지 지원
– UI가 더 이쁨
깜빡이 어플리케이션 만들기(?)
• Unforget
– 단어 1000개까지 지원
– UI가 더 이쁨
TODO
• 영단어를 사전에 있는 형태로 변환하기
– encourages -> encourage
– restricted -> restrict
• 알고 있는 단어를 제거하기
– Blacklist를 관리할 것인가?
라디오 방송 곡 크롤링
• 직장인 밴드
– 실력이 없으니 선곡이라도 잘 하자
– 배철수의 음악캠프에 어떤 노래가 나왔는지를
알고 싶다.
배철수의 음악캠프 공식 홈페이지
배철수의 음악캠프 공식 홈페이지
http://www.imbc.com/broad/radio/fm4u/musiccamp/mcamp_musictable/
아쉬운 점
• 듣기 기능 없음
• 얼마나 자주 방송되었는지 알 수 없음
• 곡별 방송 날짜, 아티스트별 방송된 곡 보
기 기능 없음
크롤링부터 만들어 보자.
• 필요한 기능
– 크롤링
• Requests: HTTP for Humans
• BeautifulSoup
– DB 저장
• MongoDB
– Pymongo
• MySQL(X)
– Windows에서 설치하려다가 암 걸리는 줄...
영감을 준 프로젝트
영감을 준 프로젝트
결과
https://twitter.com/rigmania/status/562256359509356544
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를 만들어보자.
사용기술
• Django(X)
• Flask
– Flask is a microframework for Python based
on Werkzeug, Jinja 2 and good intentions.
And before you ask: It's BSD licensed!
외부에서 볼 수 있게 하자.
• 호스팅을 해야 하나?
http://www.amazon.co.jp/ProLiant-MicroServer
호스팅
• 구글 앱 엔진, Heroku
• Microsoft Azure
– 그냥 쓰면 됨
– 공짜:MSDN subscription 사용자에게는 6만원 포인트
제공
• 단점
– using server 2012, you can go to 'Server Manager'
click on 'Local Server' and your 'IE Enhanced
Security Configuration‘ 'On' and turn it 'Off'
– Firewall을 off시켜야 한다.
– 가끔 업데이트를 위해 서버를 재시작해야 한다는 메
시지가 뜬다.(다중화 강요?)
추가 기능
• Youtube 링크도 자동으로 보여주자.
• 트위터봇도 만들어 보자.
• 사용 기술
– Youtube API
– Twitter API
• Windows Scheduled Tasks
배철수의 음악캠프 공식 홈페이지
http://www.imbc.com/broad/radio/fm4u/musiccamp/mcamp_musictable/
배철수의 음악캠프 공식 홈페이지
http://parkpd1.cloudapp.net:5000/music_selection/20150722
배철수의 음악캠프 공식 홈페이지
http://parkpd1.cloudapp.net:5000/artist/The%20Beach%20Boys
배철수의 음악캠프 공식 홈페이지
http://parkpd1.cloudapp.net:5000/song/Lowdown
배철수의 음악캠프 공식 홈페이지
http://parkpd1.cloudapp.net:5000/song/Lowdown
TODO
• Python의 거지같은 유니코드 지원
• 첫 화면에 날짜 목록 보여주기
• 전체 재생 횟수 보여주기
• 인기 지수(뭔가 수식을 만들어서) 보여주기
• 검색 Submit 창 만들기
• song, artist 를 lowercase 에 space 제거해서
같은 이름이 약간 다르게 입력되어도 같이 인
식되도록 하기
• 날짜 범위 검색 가능하게 하기
• 통계 페이지 만들기
마무리(?)
• 배철수의 음악캠프 배순탁 작가

More Related Content

Viewers also liked

Oop design principle
Oop design principleOop design principle
Oop design principle
Ryan Park
 
6장 지능형 웹 크롤링
6장 지능형 웹 크롤링6장 지능형 웹 크롤링
6장 지능형 웹 크롤링
Chanil Kim
 

Viewers also liked (16)

온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
 
온라인 게임에서 사례로 살펴보는 디버깅
온라인 게임에서 사례로 살펴보는 디버깅온라인 게임에서 사례로 살펴보는 디버깅
온라인 게임에서 사례로 살펴보는 디버깅
 
나도(기술서)번역한번해볼까
나도(기술서)번역한번해볼까나도(기술서)번역한번해볼까
나도(기술서)번역한번해볼까
 
Unicode 이해하기
Unicode 이해하기Unicode 이해하기
Unicode 이해하기
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
 
Unicode
UnicodeUnicode
Unicode
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
 
문자셋과 인코딩
문자셋과 인코딩문자셋과 인코딩
문자셋과 인코딩
 
Domain Driven Design Ch7
Domain Driven Design Ch7Domain Driven Design Ch7
Domain Driven Design Ch7
 
Unicode100
Unicode100Unicode100
Unicode100
 
Oop design principle SOLID
Oop design principle SOLIDOop design principle SOLID
Oop design principle SOLID
 
Oop design principle
Oop design principleOop design principle
Oop design principle
 
6장 지능형 웹 크롤링
6장 지능형 웹 크롤링6장 지능형 웹 크롤링
6장 지능형 웹 크롤링
 
KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기
 
The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of Everything
 

More from Ryan Park

More from Ryan Park (6)

OOP 설계 원칙 S.O.L.I.D.
OOP 설계 원칙 S.O.L.I.D.OOP 설계 원칙 S.O.L.I.D.
OOP 설계 원칙 S.O.L.I.D.
 
프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장
 
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005
 
UnitTest, Tdd For Games Kgc2007 ParkPD
UnitTest, Tdd For Games Kgc2007 ParkPDUnitTest, Tdd For Games Kgc2007 ParkPD
UnitTest, Tdd For Games Kgc2007 ParkPD
 
Agile Test Driven Development For Games What, Why, And How
Agile Test Driven Development For Games What, Why, And HowAgile Test Driven Development For Games What, Why, And How
Agile Test Driven Development For Games What, Why, And How
 
Agd Test Driven Development For Games What, Why, And How)(Game Connect 2006...
Agd   Test Driven Development For Games What, Why, And How)(Game Connect 2006...Agd   Test Driven Development For Games What, Why, And How)(Game Connect 2006...
Agd Test Driven Development For Games What, Why, And How)(Game Connect 2006...
 

Recently uploaded

Recently uploaded (8)

JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 

Python생활코딩(아꿈사2015.07.23)