SlideShare a Scribd company logo
1 of 165
Download to read offline
Django
in Production
PYCON KOREA 2015
@lqez
장고,
현실은 시궁창
파이콘 한국 2015
@lqez
본 문서는 실제 있었던 일을
바탕으로 작성되었지만
어차피 개인적인 경험이므로
잘 걸러 들으시길 부탁드립니다.
TL;DR
거의
모든 서비스는
만든 이를 닮는다.
겉모습 뿐 아니라
발전하는 방식까지 닮는다.
http://www.slideshare.net/KellyYun/smartstudy-
fullremote201506-49674381
http://www.slideshare.net/watchncompass/freedom-
responsibility-culture
http://www.slideshare.net/lqez/ss-36301654
적정 기술을 고민했던
지난 5년간의 이야기
Chapter I
태초에 문서가 있었다
index.html
이렇게
 시작해서,
…
menu.html
index.html
order.html
…보통은
 이렇게
 만들었습니다.
…
menu.php3
index.php
order.phtml
…특이하게
 발전하면
 이렇게
 되기도
 합니다.
WSGI
Web Server Gateway Interface
파이썬의
 웹서비스는
 올바르게
 성장했습니다.
PEP333
PEP3333
PEP
 표준에
 PEP333,
 그리고
 Python3를
 위해

PEP3333
 문서가
 있습니다.
Django
The web framework for perfectionists with deadlines.
장고는
 이런
 제안을
 잘
 따라
 만들어진

웹
 프레임워크
 입니다.
한국어로
 번역을
 해보면
 이렇습니다.
번역에
 다소
 오류가
 있다고
 생각됩니다만...
Django
마감 시간을 가진 완벽주의자의 웹 프레임워크
어쨌든
 그렇다고
 합니다.
Flask
마감 시간을 가진 적당주의자의 웹 프레임워크
그렇다면
 Flask
 는
 어떨까요?
Flask
마감 시간이 없는 완벽주의자의 웹 프레임워크
농담이긴
 합니다만
 Django
 와
 Flask
 는
 

그만큼
 성격이
 다른
 웹
 프레임워크
 입니다.
Django
The web framework for perfectionists with deadlines.
각셜하고,
 장고
django-admin.py
이것만
 실행하면
 일단
 됩니다.
startproject mysite
이
 명령어로
 바로
 사이트를
 만들
 수
 있습니다.
manage.py runserver
이렇게
 하면
 간단하게
 웹
 서버가
 실행됩니다.
참
 쉽죠?
models.py
뭔가
 저장하려면
 모델이
 필요하다고
 합니다.
admin.py
모델의
 관리
 페이지가
 바로
 나오긴
 하지만
 
그대로
 쓰기에는
 2%
 부족하고...
views.py
여기에
 함수만
 쓰면
 간단히
 될
 줄
 알았는데,
 
Class-based
 view
 를
 배우라고
 하네요.
forms.py
사용자에게
 값을
 입력받으려면
 이걸
 쓰면
 되는데
 
FormSet
 은
 또
 뭐고...
USE_I18N
USE_L10N
USE_TZ
국제화,
 지역화,
 타임존
 등을
 고려하려면
 
프레임워크가
 도와줘도
 산
 너머
 산입니다.
Static / media files
웹
 페이지를
 완성하려면
 
정적
 /
 미디어
 파일들도
 필요한데요...
CSS
Javascript
(LE|SA|SC)SS
[A-Z][a-z]+Script
이런
 것들도
 요즘
 유행하는데다가
Bower
django-bower?
Bower
 로
 프론트엔드
 파일을
 관리하려고
 보니
 
django-bower
 는
 또
 뭐고…⋯?
AJAX
Django Rest Framework
Tastypie
Piston
SPA는
 아니어도

More Related Content

What's hot

개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
NAVER D2
 
MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용
흥배 최
 

What's hot (20)

[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기
 
Django admin site 커스텀하여 적극적으로 활용하기
Django admin site 커스텀하여 적극적으로 활용하기Django admin site 커스텀하여 적극적으로 활용하기
Django admin site 커스텀하여 적극적으로 활용하기
 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better Engineer
 
서울거래 비상장 HR 설명자료
서울거래 비상장 HR 설명자료서울거래 비상장 HR 설명자료
서울거래 비상장 HR 설명자료
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]
 
ふつうのcore.async
ふつうのcore.asyncふつうのcore.async
ふつうのcore.async
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for Beginners
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
 
Flask Basics
Flask BasicsFlask Basics
Flask Basics
 
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
 
MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용
 
PHPでマルチスレッド
PHPでマルチスレッドPHPでマルチスレッド
PHPでマルチスレッド
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
SQLチューニング勉強会資料
SQLチューニング勉強会資料SQLチューニング勉強会資料
SQLチューニング勉強会資料
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해
 
An Introduction to Redux
An Introduction to ReduxAn Introduction to Redux
An Introduction to Redux
 

Viewers also liked

Function calling convention
Function calling conventionFunction calling convention
Function calling convention
Yuk SeungChan
 
Regulator 1st stage
Regulator 1st stageRegulator 1st stage
Regulator 1st stage
Jung Kyu Kim
 
초간단 동영상 만들기
초간단 동영상 만들기초간단 동영상 만들기
초간단 동영상 만들기
Dong Cheon Park
 

Viewers also liked (20)

스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기
 
파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 Coveralls파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 Coveralls
 
그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
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
 
Stack frame
Stack frameStack frame
Stack frame
 
Function calling convention
Function calling conventionFunction calling convention
Function calling convention
 
초임계 추출
초임계 추출초임계 추출
초임계 추출
 
Deview2013 - 게임기술과 수퍼컴퓨팅의 공생관계
Deview2013 - 게임기술과 수퍼컴퓨팅의 공생관계Deview2013 - 게임기술과 수퍼컴퓨팅의 공생관계
Deview2013 - 게임기술과 수퍼컴퓨팅의 공생관계
 
Logging 101
Logging 101Logging 101
Logging 101
 
Keynote storyboard
Keynote storyboardKeynote storyboard
Keynote storyboard
 
Deploying flask with nginx & uWSGI
Deploying flask with nginx & uWSGIDeploying flask with nginx & uWSGI
Deploying flask with nginx & uWSGI
 
Storyboard
StoryboardStoryboard
Storyboard
 
We Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese ShopWe Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese Shop
 
2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝
 
Regulator 1st stage
Regulator 1st stageRegulator 1st stage
Regulator 1st stage
 
초간단 동영상 만들기
초간단 동영상 만들기초간단 동영상 만들기
초간단 동영상 만들기
 
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
 
파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기
 
Dive into OpenSource
Dive into OpenSourceDive into OpenSource
Dive into OpenSource
 

Similar to Django in Production

프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
중선 곽
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
Jeongkyu Shin
 

Similar to Django in Production (20)

장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리
 
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호
 
Docker registry swift
Docker registry swiftDocker registry swift
Docker registry swift
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
Node.js in Flitto
Node.js in FlittoNode.js in Flitto
Node.js in Flitto
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
백기선의 스프링 부트
백기선의 스프링 부트백기선의 스프링 부트
백기선의 스프링 부트
 
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTPHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
 
스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기
 
파이썬으로 할 수 있는 일 - 파이썬 기초 교육
파이썬으로 할 수 있는 일 - 파이썬 기초 교육파이썬으로 할 수 있는 일 - 파이썬 기초 교육
파이썬으로 할 수 있는 일 - 파이썬 기초 교육
 
7. html5 api
7. html5 api7. html5 api
7. html5 api
 

More from Hyun-woo Park

WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
Hyun-woo Park
 

More from Hyun-woo Park (11)

2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분
 
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
 
WE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDYWE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDY
 
그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말
 
Using CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYUsing CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDY
 
The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
 
Using AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDYUsing AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDY
 
넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모
 
SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08
 

Django in Production