2013년 8월 31일에 올렸던 speakerdeck에 올렸던 자료 백업
https://speakerdeck.com/perhapsspy/mweonji-moreujiman-balpyo-aspeseo-djangoro-olmgyeogan-sayeon
---
한 개발자의 성장기(아니 삽질기)입니다.
ASP 개발을 하다가 Django를 쓰게 된 이야기를 간략하게 재미위주로 적어보았습니다.
2013년 8월 31일에 올렸던 speakerdeck에 올렸던 자료 백업
https://speakerdeck.com/perhapsspy/mweonji-moreujiman-balpyo-aspeseo-djangoro-olmgyeogan-sayeon
---
한 개발자의 성장기(아니 삽질기)입니다.
ASP 개발을 하다가 Django를 쓰게 된 이야기를 간략하게 재미위주로 적어보았습니다.
이 발표는 [야생의 땅: 듀랑고]의 지형 배포 시스템과 생태계 시뮬레이션 자동화 시스템에 대한 이야기를 다룹니다. 듀랑고의 각 섬은 크기와 지형, 기후 조건이 다양하고 섬의 개수가 많아서 수동으로 관리하는 것은 사실상 불가능합니다. 몇번의 사내 테스트와 베타 테스트를 거치면서 이러한 문제를 해결해주는 자동화된 도구의 필요성이 절실해졌고, 작년에 NDC에서 발표했던 생태계 시뮬레이터와 Docker, 그리고 아마존 웹서비스(AWS)를 이용하여 수많은 섬들을 자동으로 생성하고 관리하는 자동화 시스템을 구축하게 되었습니다. 그 과정에서 했던 고민들, 기존의 애플리케이션을 "Dockerizing" 했던 경험, AWS의 각 서비스들을 적절히 활용했던 이야기, AWS의 각 지역별 요금이 상이하다는 점을 이용해서 비용을 절감한 사례, 그리고 자동화 시스템의 문제점과 앞으로의 방향에 대해서 이야기 할 계획입니다.
빌드? 우선 사용부터 매뉴얼? Getting started 한 번 돌려보기 TV 리모컨 버튼 5개 전문가는 교육받아 만들어진다? 경험=시간+시행착오+성공실패 오픈소스 트러블슈팅 “메시지” 구글링 오픈소스 함부로 수정하지 마라 최신 버전을 대하는 우리의 자세 LTS로 대동단결 팀장 설득하기 오픈소스는 공짜가 아닙니다. 저도 기여하고 싶어요 2,000년 톰캣을 시작으로 Ant, Eclipse, JUnit, JMeter를 거쳐 현재 개발에 잘 사용하고 있는 Yona, Git, VSCode, Jenkins, CentOS, VirtualBox, Nginx, Node.js, Express.js, MariaDB, Uptime, Mocha, SonarQube, ZAP 이야기 등입니다.
https://www.youtube.com/watch?v=5LHOTBxG0hc
Unite'17 Seoul 아이펀팩토리 발표자료
1. 강연주제: 클라이언트 개발자, 서버 개발 시작하기
2. 강연자: 박근환 TD
3. 강연소개: 이 세션은 주로 게임 클라이언트 개발자로 경력을 쌓아오던 개발자가 게임 서버 솔루션 회사에서 일하면서 알게된 사실들을 바탕으로, 클라이언트 개발자가 서버 개발을 시작하려면 필요한 것들이 무엇인지, 어떻게 시작해야 하는지에 대하여 이야기합니다.
Similar to Do not use Django as like as SMARTSTUDY (20)
38. •정말 debug 용. 성능 모니터링은 아닙니다.
•프로덕션에서 이것 또는 linesman 돌리면 사망.
•개발 환경에서만 쓰세요.
• http://werkzeug.pocoo.org/docs/debug/
39.
40. •django-statsd
• https://github.com/andymckay/django-statsd
•이것 저것 보기 위한 UDP 기반 statsd 사용
•그래프를 출력하기 위해 graphite 사용
•graphite 도 django project. (아?)
•좋긴 한데, 왜케 복잡한가...
•django-easy-profiler app 누가 만들어 주세요.
44. •편리합니다, 하지만 잘 써야 합니다.
•뷰에서만 하지 말고 템플릿에서도 캐시.
•여러 웹 서버가 있어도, 캐시 서버는 하나로!
•사용자의 요청에 따라 캐시 갱신(?)
•가끔 위험합니다.
•정말 오래 걸리는 일은 되도록 celery로 넘기기.
• https://gist.github.com/3656474
45.
46. •이미 만들어져 있는 데코레이터를 잘 쓰자.
•@vary_on_headers / @vary_on_cookie
•@never_cache
•@cache_control
public must_revalidate
private proxy_revalidate
no_cache max_age
no_transform s_maxage
61. •원격지에 ssh로 붙어서 할 수 있는 모든 것
•그리고 그 전에 준비해야 하는 모든 일
•모두 fabric으로 통합하세요.
• http://fabfile.org
62.
63. •모든 서비스 각자의 fabfile 을 가진다.
•각종 대몬은 upstart로 규격화.
•개발 서버와 실 서버 환경의 동일하게 유지.
•필수 명령어 정의 init / start / stop / restart
•배포 서버에서 전역 fab 명령어 f로 원격지 작업.
•f <service_name> <command>
•/etc/bash_completion.d 활용.
67. •Celery : Task Queue
•각종 백그라운드 작업 관리 / 구동
•celeryd : 실제 작업을 수행함
•celerybeat : cron과 같이 주기적 작업을 발생
•celerycam : celeryd의 작업을 수집
• http://celeryproject.org/
• http://docs.celeryproject.org/en/latest/django/index.html
68. •옛날에는 수동으로 SQL 하던 작업을,
•Django command로 바꿔서 crontab으로 호출.
•이제는 해당 command의 내용을 task로 바꿔서,
•celery에 periodic task로 등록.