SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Hoodpub


Startup with Django
최현민




2006-2007 eWastecenter
2008-2011 Posco ICT
2011-2012 WindRiver
2012-현재 !무직!



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



www.hoodpub.com

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


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

 # 아이디어

 # 사업성

 # 기술

 # 문제/개선요소

 # 소감
아이디어
아이디어
표현수단

  즐겨 먹는 음식
                          내가 읽은 책 역시 나를 표현하는 막강한 수
  입고 다니는 옷
                          단이 될 수 있다.
  언어 습관




책 관심

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

 - 비지니스 모델 : 네 가지


 - 경쟁상대 : 국내 / 국외


 - 홍보 : facebook, 유명인사
기술
     - 개발
       - 환경 ( 개발/운용)
       - virtual env 사용
       - 소스관리, bitbucket
       - 배포, fabfile
       - 편집기, emacs

     - Django
       - 장고의 장점 (패키지, template tags)
       - Package ( sorl.thumbnail, endless_pagination, djcelery, django_facebook )
       - cron 이용하여 간단한 리포팅 결과 얻기
       - register.inclusion_tag

     - 외부 API
       - facebook,
       - interpark
환경
                 개발                    운용
     노트북                    VPS
     Genuine Intel(R) CPU   Intel(R) Xeon(R) CPU
     U4100 @ 1.30GHz        E5504 @ 2.00GHz
     Local                  Server(just4fun.co.kr)


     runserver              Nginx


                            Gunicorn


                            Mysql



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

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

               소스 형상 관리툴 : 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.

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

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




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

                 편집기




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

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

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




                 ; python 의 gdb
       pdb       - 굉장히 유용함.
패키지
                                  ; thumbnail 처리를 도와줌
   Sorl-thumbnail
                                  ; Twitter-style or Digg-style pagination
endless_pagination

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




                              django_facebook

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

$ pip install django_facebook




# settings.py
FACEBOOK_APP_ID
FACEBOOK_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
Book data

 다른 사이트의 OPEN API를 찾아
봤지만, 그 중에 인터파크가 가장 깔
끔하게 데이타를 내려줌.




 yes24, 교보는 OPEN API를 찾을수
없었고, 국내 포탈 사이트는 항상 자
기 서비스를 거쳐가게 하려는 의도가
있어 만족할 수 없었음.                # 인터파크 책 API ( link)

                            - 책검색 API

                            - 베스트셀러 API

                            - 추천도서 API

                            - 신간도서 API
인터파크 책 목록

책검색 API            http://book.interpark.com/api/search.api?key=interpark&query=대한민국
(search.api)




베스트 셀러 API         http://book.interpark.com/api/bestSeller.api?key=interpark&categoryId=100
(bestSeller.api)




추천도서API            http://book.interpark.com/api/recommend.api?key=interpark&categoryId=100
(recommend.api)




신간도서API
                   http://book.interpark.com/api/newBook.api?key=interpark&categoryId=100
(newBook.api)
register.inclusion_tag

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


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


                                            @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 }


                  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>
cron

#원하는 시간에 정해진 작업을 시키자!
사용예
 - 모니터링 결과메일로 받아보기 (일일 2회)
 - 책 목록 받아오기 (매일)
 - 킨들에 무료 신문 보내기 (매일)


$ crontab -l
00 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
기타
# logging

# heroku

# google analytics

# email server setting ?
문제/개선요소


 디자인     아름답지 못하다.
         투박하다
                                예쁜 디자이너와 함께 작업해야함.




                                고민 필요
 App 화   모바일 환경에 최적화 X          (서비스 특성상 특별한 모바일 하드웨어
                                불필요)




         가상서버 Intel(R) Xeon
                                투자를 받고 싶어요.
 서버 환경   (R) CPU E5504 @ 2.00
         GHz
소감
 안도감   기술적으로 두려움이 컸으나, 방대한 장고 커뮤니티를 보고 나니 안심




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




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




 기타    최대한 빨리 피드백을 듣고 반복 수정하자.
       구글 프리젠테이션 'Research' 기능의 편리함.
계획
# 지도 매핑 서비스

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

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

# 취업
질문과 응답

Contenu connexe

Tendances

왕초보, 코딩없이 챗봇 만들기
왕초보, 코딩없이 챗봇 만들기왕초보, 코딩없이 챗봇 만들기
왕초보, 코딩없이 챗봇 만들기deepseaswjh
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐라한사 아
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 DjangoTaehoon Kim
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
Django개발은 PyCharm에서
Django개발은 PyCharm에서Django개발은 PyCharm에서
Django개발은 PyCharm에서Kyoung Up Jung
 
Python Recipes for django girls seoul
Python Recipes for django girls seoulPython Recipes for django girls seoul
Python Recipes for django girls seoulJoeun Park
 
Kakao Bot(Plus friend)
Kakao Bot(Plus friend)Kakao Bot(Plus friend)
Kakao Bot(Plus friend)SeongSik Choi
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)성일 한
 
아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리라한사 아
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Joongi Kim
 
스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료라한사 아
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나JeongHwan Kim
 
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글라한사 아
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문라한사 아
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기Kyoung Up Jung
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Kyoung Up Jung
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYHyun-woo Park
 
구글 검색엔진 최적화(Seo) 정리
구글 검색엔진 최적화(Seo) 정리구글 검색엔진 최적화(Seo) 정리
구글 검색엔진 최적화(Seo) 정리라한사 아
 
REST API 디자인 개요
REST API 디자인 개요REST API 디자인 개요
REST API 디자인 개요nexusz99
 

Tendances (20)

왕초보, 코딩없이 챗봇 만들기
왕초보, 코딩없이 챗봇 만들기왕초보, 코딩없이 챗봇 만들기
왕초보, 코딩없이 챗봇 만들기
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 Django
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
Django개발은 PyCharm에서
Django개발은 PyCharm에서Django개발은 PyCharm에서
Django개발은 PyCharm에서
 
Python Recipes for django girls seoul
Python Recipes for django girls seoulPython Recipes for django girls seoul
Python Recipes for django girls seoul
 
Kakao Bot(Plus friend)
Kakao Bot(Plus friend)Kakao Bot(Plus friend)
Kakao Bot(Plus friend)
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
 
아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료
 
Django beginning
Django beginningDjango beginning
Django beginning
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
 
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
 
구글 검색엔진 최적화(Seo) 정리
구글 검색엔진 최적화(Seo) 정리구글 검색엔진 최적화(Seo) 정리
구글 검색엔진 최적화(Seo) 정리
 
REST API 디자인 개요
REST API 디자인 개요REST API 디자인 개요
REST API 디자인 개요
 

Similaire à Hoodpub 기술 발표

SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표Sinhyub Kim
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기NAVER D2
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료지원 정
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdfSeung kyoo Park
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지Sunwoo Park
 
구글 앱 엔진의 활용(Google App Engine) 2부
구글 앱 엔진의 활용(Google App Engine) 2부구글 앱 엔진의 활용(Google App Engine) 2부
구글 앱 엔진의 활용(Google App Engine) 2부mosaicnet
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?주식회사 내일비
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?Sang-ho Choi
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)sung yong jung
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기Jaeseung Ha
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...MaRoKim4
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with AngularJT Jintae Jung
 

Similaire à Hoodpub 기술 발표 (20)

SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
피니엔진
피니엔진피니엔진
피니엔진
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지
 
구글 앱 엔진의 활용(Google App Engine) 2부
구글 앱 엔진의 활용(Google App Engine) 2부구글 앱 엔진의 활용(Google App Engine) 2부
구글 앱 엔진의 활용(Google App Engine) 2부
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 

Hoodpub 기술 발표

  • 2. 최현민 2006-2007 eWastecenter 2008-2011 Posco ICT 2011-2012 WindRiver 2012-현재 !무직! python 을 통해 새롭게 웹을 경험하 는 장고 초보
  • 3. HoodPub www.hoodpub.com 2012.08 출생 '같은 책을 읽은 다른 사람들과 어울 릴 때, 책읽기의 기쁨은 두 배가 된 다.' 책에 대한 관심사를 바탕으로 사람을 이어주는 작은 SNS.
  • 4. 순서 # 아이디어 # 사업성 # 기술 # 문제/개선요소 # 소감
  • 6. 아이디어 표현수단 즐겨 먹는 음식 내가 읽은 책 역시 나를 표현하는 막강한 수 입고 다니는 옷 단이 될 수 있다. 언어 습관 책 관심 같은 책을 읽은 친구들을 찾아주자는 간단한 생각에서 발단
  • 7. 사업성 - 비지니스 모델 : 네 가지 - 경쟁상대 : 국내 / 국외 - 홍보 : facebook, 유명인사
  • 8. 기술 - 개발 - 환경 ( 개발/운용) - virtual env 사용 - 소스관리, bitbucket - 배포, fabfile - 편집기, emacs - Django - 장고의 장점 (패키지, template tags) - Package ( sorl.thumbnail, endless_pagination, djcelery, django_facebook ) - cron 이용하여 간단한 리포팅 결과 얻기 - register.inclusion_tag - 외부 API - facebook, - interpark
  • 9. 환경 개발 운용 노트북 VPS Genuine Intel(R) CPU Intel(R) Xeon(R) CPU U4100 @ 1.30GHz E5504 @ 2.00GHz Local Server(just4fun.co.kr) runserver Nginx Gunicorn Mysql # Django를 호스팅하는 업체가 없어서 VPS(Virtual private server)가 필요했음. # 위 업체는 직통연락처가 없어 서 장애시 문제가 되나, 크게 저렴하다는게 매력
  • 10. 소스관리 소스 형상 관리툴 : 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. Fabric - 노가다에서 탈출하고 싶다면 반드시 사용(south급) - 서로 다른 환경이라도 비교적 쉽게 customizing 가능 ; python 환경을 OS 완 분리시켜줌. Virtualenv - 서로다른 python 버젼 테스트에 유리 - 패키지 관리 편리
  • 11. 개발 편집기 ; 개발화경에서 장고 실행기 Runserver - 표준 출력으로 실시간 로그 확인 가능 - 소스 수정후 파일 저장을 하면 바로 적용가능 ; python 의 gdb pdb - 굉장히 유용함.
  • 12. 패키지 ; thumbnail 처리를 도와줌 Sorl-thumbnail ; Twitter-style or Digg-style pagination endless_pagination ; Celery is an asynchronous task queue/job queue based dcelery on distributed message passing. django_facebook ; Django Facebook enables your users to easily register using the Facebook API.
  • 13. django_facebook $ pip install django_facebook # settings.py FACEBOOK_APP_ID FACEBOOK_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
  • 14. Book data 다른 사이트의 OPEN API를 찾아 봤지만, 그 중에 인터파크가 가장 깔 끔하게 데이타를 내려줌. yes24, 교보는 OPEN API를 찾을수 없었고, 국내 포탈 사이트는 항상 자 기 서비스를 거쳐가게 하려는 의도가 있어 만족할 수 없었음. # 인터파크 책 API ( link) - 책검색 API - 베스트셀러 API - 추천도서 API - 신간도서 API
  • 15. 인터파크 책 목록 책검색 API http://book.interpark.com/api/search.api?key=interpark&query=대한민국 (search.api) 베스트 셀러 API http://book.interpark.com/api/bestSeller.api?key=interpark&categoryId=100 (bestSeller.api) 추천도서API http://book.interpark.com/api/recommend.api?key=interpark&categoryId=100 (recommend.api) 신간도서API http://book.interpark.com/api/newBook.api?key=interpark&categoryId=100 (newBook.api)
  • 16. register.inclusion_tag 페이지의 일부 영역에 MTV 개념을 적용하여 재사용 가능 @register.inclusion_tag('hoodpub/list_inc_user_info.html') def list_inc_user_info(user): return {'user': user } @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 } 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>
  • 17. cron #원하는 시간에 정해진 작업을 시키자! 사용예 - 모니터링 결과메일로 받아보기 (일일 2회) - 책 목록 받아오기 (매일) - 킨들에 무료 신문 보내기 (매일) $ crontab -l 00 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
  • 18. 기타 # logging # heroku # google analytics # email server setting ?
  • 19. 문제/개선요소 디자인 아름답지 못하다. 투박하다 예쁜 디자이너와 함께 작업해야함. 고민 필요 App 화 모바일 환경에 최적화 X (서비스 특성상 특별한 모바일 하드웨어 불필요) 가상서버 Intel(R) Xeon 투자를 받고 싶어요. 서버 환경 (R) CPU E5504 @ 2.00 GHz
  • 20. 소감 안도감 기술적으로 두려움이 컸으나, 방대한 장고 커뮤니티를 보고 나니 안심 맷집 단기간에 결과를 보기는 쉽지 않다. 정신적, 경제적, 사회적으로 딴딴한 맷집이 필요 사람 기술, 돈, 능력 그 무엇보다도 사람이 우선 기타 최대한 빨리 피드백을 듣고 반복 수정하자. 구글 프리젠테이션 'Research' 기능의 편리함.
  • 21. 계획 # 지도 매핑 서비스 # 공공 데이타 활용 ( 링크) # 토스트 마스터 국내 클럽 위치 출력 # 취업