hoodpub 기술 발표

22
Hoodpub Startup with Django

Upload: hyun-min-choi

Post on 12-Jul-2015

356 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Hoodpub 기술 발표

Hoodpub

Startup with Django

Page 2: Hoodpub 기술 발표

2006-2007 eWastecenter2008-2011 Posco ICT2011-2012 WindRiver2012-현재 !무직!

python 을 통해 새롭게 웹을 경험하는 장고 초보

최현민

Page 3: Hoodpub 기술 발표

www.hoodpub.com

2012.08 출생'같은 책을 읽은 다른 사람들과 어울릴 때, 책읽기의 기쁨은 두 배가 된다.'

책에 대한 관심사를 바탕으로 사람을 이어주는 작은 SNS.

HoodPub

Page 4: Hoodpub 기술 발표

순서

# 아이디어

# 사업성

# 기술

# 문제/개선요소

# 소감

Page 6: Hoodpub 기술 발표

아이디어

즐겨 먹는 음식

입고 다니는 옷

언어 습관

같은 책을 읽은 친구들을 찾아주자는 간단한 생각에서 발단

내가 읽은 책 역시 나를 표현하는 막강한 수단이 될 수 있다.

표현수단

책 관심

Page 7: Hoodpub 기술 발표

사업성

- 비지니스 모델 : 네 가지

- 경쟁상대 : 국내 / 국외

- 홍보 : facebook, 유명인사

Page 8: Hoodpub 기술 발표

기술

- 개발

- 환경 ( 개발/운용)

- virtual env 사용

- 소스관리, bitbucket

- 배포, fabfile

- 편집기, emacs

- Django - 장고의 장점 (패키지, template tags)

- Package ( sorl.thumbnail, endless_pagination, djcelery, django_facebook ) - cron 이용하여 간단한 리포팅 결과 얻기

- register.inclusion_tag

- 외부 API

- facebook, - interpark

Page 9: Hoodpub 기술 발표

환경

개발

노트북Genuine Intel(R) CPU U4100 @ 1.30GHzLocal

운용

VPSIntel(R) Xeon(R) CPU E5504 @ 2.00GHzServer(just4fun.co.kr)

# Django를 호스팅하는 업체가 없어서 VPS(Virtual private server)가 필요했음.

# 위 업체는 직통연락처가 없어서 장애시 문제가 되나, 크게 저렴하다는게 매력

runserver Nginx

Gunicorn

Mysql

Page 10: Hoodpub 기술 발표

소스관리

소스 형상 관리툴 : github 쓰다가 변경* 항상 쓰는 명령어는 add, commit 그리고 push

; Fabric is a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

- 노가다에서 탈출하고 싶다면 반드시 사용(south급)

- 서로 다른 환경이라도 비교적 쉽게 customizing 가능

Virtualenv ; python 환경을 OS 완 분리시켜줌.- 서로다른 python 버젼 테스트에 유리- 패키지 관리 편리

Fabric

Page 11: Hoodpub 기술 발표

개발

편집기

Runserver; 개발화경에서 장고 실행기

- 표준 출력으로 실시간 로그 확인 가능

- 소스 수정후 파일 저장을 하면 바로 적용가능

pdb; python 의 gdb

- 굉장히 유용함.

Page 12: Hoodpub 기술 발표

패키지

Sorl-thumbnail ; thumbnail 처리를 도와줌

endless_pagination ; Twitter-style or Digg-style pagination

; Celery is an asynchronous task queue/job queue based on distributed message passing.dcelery

; Django Facebook enables your users to easily register using the Facebook API.

django_facebook

Page 13: Hoodpub 기술 발표

$ pip install django_facebook

django_facebook

# settings.pyFACEBOOK_APP_IDFACEBOOK_APP_SECRET

Features - Access the Facebook API

- Store likes, friends and user data locally

- Facebook FQL access

- OAuth 2.0 compliant

- Automated reauthentication

- Includes Open Facebook

Page 14: Hoodpub 기술 발표

다른 사이트의 OPEN API를 찾아

봤지만, 그 중에 인터파크가 가장 깔

끔하게 데이타를 내려줌.

Book data

yes24, 교보는 OPEN API를 찾을수

없었고, 국내 포탈 사이트는 항상 자

기 서비스를 거쳐가게 하려는 의도가

있어 만족할 수 없었음. # 인터파크 책 API ( link)

- 책검색 API

- 베스트셀러 API

- 추천도서 API

- 신간도서 API

Page 15: Hoodpub 기술 발표

책검색 API (search.api)

인터파크 책 목록

베스트 셀러 API(bestSeller.api)

추천도서API (recommend.api)

신간도서API (newBook.api)

http://book.interpark.com/api/search.api?key=interpark&query=대한민국

http://book.interpark.com/api/bestSeller.api?key=interpark&categoryId=100

http://book.interpark.com/api/recommend.api?key=interpark&categoryId=100

http://book.interpark.com/api/newBook.api?key=interpark&categoryId=100

Page 16: Hoodpub 기술 발표

페이지의 일부 영역에 MTV 개념을 적용하여 재사용 가능

register.inclusion_tag

@register.inclusion_tag('hoodpub/list_inc_book.html', takes_context = True )def list_inc_book(context, user_id): request = context['request'] books = _get_booklist(request, user_id, 4) return {'books': books }

@register.inclusion_tag('hoodpub/list_inc_user_info.html')def list_inc_user_info(user): return {'user': user }

TEMPLATE(html)<div class="index_row" style="min-height:70px;"> {% list_inc_user_info user %}</div> <div class="index_row "> {% list_inc_book user.get_profile.facebook_id %}</div>

Page 17: Hoodpub 기술 발표

#원하는 시간에 정해진 작업을 시키자!사용예

- 모니터링 결과메일로 받아보기 (일일 2회)

- 책 목록 받아오기 (매일)

- 킨들에 무료 신문 보내기 (매일)

cron

$ crontab -l00 02 * * * /bin/bash /home/hoodpub/web_project/web/lib/interpark/run_regularly.sh &>> /tmp/run_regular.log

20,50 * * * * /home/hoodpub/.virt_env/web/bin/python /home/hoodpub/web_project/web/lib/interpark/get_frequent_books.py &>> /tmp/run_regular.log

30 07,19 * * * /home/hoodpub/.virt_env/web/bin/python /home/hoodpub/web_project/web/lib/get_status.py &>> /tmp/send_monitor.log

Page 18: Hoodpub 기술 발표

# logging

# heroku

# google analytics

# email server setting ?

기타

Page 19: Hoodpub 기술 발표

문제/개선요소

디자인

App 화

서버 환경

아름답지 못하다.투박하다

예쁜 디자이너와 함께 작업해야함.

모바일 환경에 최적화 X

고민 필요(서비스 특성상 특별한 모바일 하드웨어 불필요)

가상서버 Intel(R) Xeon(R) CPU E5504 @ 2.00GHz

투자를 받고 싶어요.

Page 20: Hoodpub 기술 발표

소감

안도감 기술적으로 두려움이 컸으나, 방대한 장고 커뮤니티를 보고 나니 안심

맷집 단기간에 결과를 보기는 쉽지 않다.정신적, 경제적, 사회적으로 딴딴한 맷집이 필요

사람 기술, 돈, 능력 그 무엇보다도 사람이 우선

기타 최대한 빨리 피드백을 듣고 반복 수정하자.구글 프리젠테이션 'Research' 기능의 편리함.

Page 21: Hoodpub 기술 발표

계획

# 지도 매핑 서비스

# 공공 데이타 활용 (링크)

# 토스트 마스터 국내 클럽 위치 출력

# 취업

Page 22: Hoodpub 기술 발표

질문과 응답