도도와 파이썬: 좋은 선택과 나쁜 선택

Jc Kim
Jc KimCo-Founder & CTO em Spoqa
도도와 파이썬: 좋은 선택과 나쁜 선택
JC
CTO
파이콘 2015
jc@spoqa.com
스포카는 뭐하는 회사인가요?
01
‹#›
1. 2011년 5월 창업
2. 태블릿 멤버십 서비스 "도도 포인트" 개발/운영중
3. 서울 / 부산 / 일본에서 운영중
스포카는 뭐하는 회사인가요?
스포카
‹#›
‹#›
스포카는 뭐하는 회사인가요?
스포카
‹#›
스포카는 뭐하는 회사인가요?
스포카
‹#›
1. 5,000개 매장, 500만명의 사용자가 이용중
2. 카페, 레스토랑, 리테일샵, 헤어샵 방방 곡곡에서 사용중
3. 퇴직후 치킨집을 고려하고 계시다면?
1. 02-544-6463으로 전화주시면 친절히 상담드립니다.
2. 저희 부스에 브로셔 받아가세요.
스포카는 뭐하는 회사인가요?
도도 포인트
‹#›
스포카는 왜 파이콘에?
Spoqa ❤ Python
‹#›
1. 개발 프로젝트의 거의 대부분이 파이썬으로 개발됨
2. 15명의 개발자가 모두 파이썬을 쓰며, 

익숙하게 쓰시는 분이 다수
3. 여러 오픈소스 프로젝트에도 기여하고 있음
•http://github.com/spoqa
스포카는 왜 파이콘에?
Spoqa ❤ Python
‹#›
1. 스포카가 도도 포인트를 만들면서 있었던

기술적 의사결정을 공유합니다.
1. 어떤 것은 좋은 선택이었고,
2. 어떤 것은 나쁜 선택이었는데,
3. 이 과정에서 파이썬과 어떻게 함께 생존했는지를

알려드리겠습니다.
스포카는 왜 파이콘에?
오늘 공유할 내용은...
좋은 선택: 도도 포인트를 처음 만들때
02
‹#›
1. 로켓이 될거라 자신한 “스포카” 적립 앱은 매장을 100
개나 가맹했는데 아무도 쓰지 않았음
2. 당연히 쓰이고 있지를 않으니 투자 유치도 요원한 상황
좋은 선택: 도도 포인트를 처음 만들때
2012년 1월 당시 상황
‹#›
1. 이 상황에서 당연히 유료화 또한 꿈도 꿀 수 없었고
2. 자신만만하게 엔젤투자도 받았는데 돈도 다 까먹었고
3. 여러모로 절망적인 상황이었음
좋은 선택: 도도 포인트를 처음 만들때
2012년 1월 당시 상황
‹#›
좋은 선택: 도도 포인트를 처음 만들때
2012년 1월 당시 상황
<당시 잠에 들면 꾸던 꿈>
‹#›
그 상황에서 이런저런 다음 피봇할 거리를 고민하던
중, 공동창업자인 대표가 테크크런치를 보다가,
“사람들이 적립한다고 앱을 받지는 않으니 매장에 태
블릿을 깔아놓고 앱 없이도 적립이 되게 하자”
고 제안함
좋은 선택: 도도 포인트를 처음 만들때
2012년 1월 당시 상황
‹#›
지금와서야 말이 되는 것 같지만서도, 당시에는 누가
적립한다고 50만원이 넘는 되는 태블릿을 사;; 같은 생
각이 머리속에 지배적이었음
그런데 대표가 계속 주장을 반복하여 화가 난 나머지
이게 안되는 제품이라는 걸 직접 보여줘야겠다는 생각
이 들었음
좋은 선택: 도도 포인트를 처음 만들때
2012년 1월 당시 상황
‹#›
1. 월급날이 매월 두려워지는 시기였기 때문에,

느긋하게 할 여유 없었음
2. 5일내로 돌아가는걸 보자! 하고 저녁시간에 개발 시작
3. (낮에는 아직 한창 스포카 만들고 있었음;;)
좋은 선택: 도도 포인트를 처음 만들때
1차 프로토타입 제작
‹#›
‹#›
‹#›
1. 제대로 안돌아갈 거라고 생각하고 만들어보니 생각보
다 적립하는 느낌이 괜찮았음
2. 프로토타입을 전사적으로 1차 공유해본 결과 이걸 한
번 실험해보고싶다는 쪽으로 의견이 모아짐
좋은 선택: 도도 포인트를 처음 만들때
엥? 생각보다 경험이 괜찮네?
‹#›
3. 그 자리에서 대표가 1차 프로토타입을 들고 옆 건물 1
층 주커피로 달려감
좋은 선택: 도도 포인트를 처음 만들때
엥? 생각보다 경험이 괜찮네?
‹#›
‹#›
1. 기본적으로는 1차와 별 다를바가 없었음
2. 다만 첫번째 고객의 취향에 완전히 맞추어주었음
•Do things that don’t scale 

http://paulgraham.com/ds.html
좋은 선택: 도도 포인트를 처음 만들때
2차 프로토타입 제작
‹#›
1. 그 외 몇가지 사용성 개선 시도를 더함
1. (e.g. 첫번째 프로토타입을 모르는 사용법을 잘 모르
겠다고 판단하여 아예 동영상을 붙임)
2. 여전히 2개 이상의 매장이 사용할 것은 구조적으로 고려
하지 않음
3.2주 정도 소요
좋은 선택: 도도 포인트를 처음 만들때
2차 프로토타입 제작
‹#›
당시에는 5일동안 만들어본 프로토타입을 써보고 내부
의 감에 의해 2차 프로토타입을 만들었지만, 우리는 피
봇을 확정하기 위한 보다 객관적인 기준이 필요했음
좋은 선택: 도도 포인트를 처음 만들때
2차 프로토타입 제작
‹#›
그래서 대표와 나는 약간 보수적으로, 기존 서비스에서
우리가 사용한 양을 제외한 순수 고객 사용량이 3배 이
상이 나오면 주력 서비스를 태블릿 기반 서비스로 전환
하자고 결정함
좋은 선택: 도도 포인트를 처음 만들때
2차 프로토타입 제작
‹#›
1. 2월의 마지막 금요일에 설치하고, 주말을 보낸 후, 월요
일에 확인해보니, 기존 서비스 대비 사용량이 13배
가 나옴
2. 아 그냥 우리가 바보였구나;;;
3. 스포카 앱의 업데이트는 그 날이 마지막이었다고 한다.
좋은 선택: 도도 포인트를 처음 만들때
2차 프로토타입 제작
‹#›
이 프로토타입을 들고 다니면서,
1. 엔젤투자자님께 돈을 더 빌리고
2. 기술 보증 기금을 받고
3. 정부 지원 사업에 선정되어서
4. 다음달 월급을 지급할 수 있었다.
좋은 선택: 도도 포인트를 처음 만들때
부활
‹#›
1. 백오피스를 가볍게 두고 제품 자체에 집중한 것
2. 개발을 할 수 있다면 모두 고객 경험 자체에 올인한다.
좋은 선택: 도도 포인트를 처음 만들때
개발 기조 확립
‹#›
이유: 스포카에서의 경험
1. 스포카 때는 아주 일반적인 개발 과정을 거쳤음
2. 백엔드 운영, 통계, 배포 도구, 앱 자체를 고루고루 개발
3. 장점: 장기적으로 효율이 좋다. 단, 성공했을 때
4. 그리고 망함
좋은 선택: 도도 포인트를 처음 만들때
개발 기조 확립
‹#›
1. 사실상 스타트업의 성공율은 1% 미만, 99% 제품의
보조 도구는 쓸모 없어진다.
2. 그러면 차라리 1%를 올리는데 집중하고 보조 도구의
개발은 나중으로 미루거나 위임한다.
좋은 선택: 도도 포인트를 처음 만들때
개발 기조 확립
‹#›
1. 최대한 보조 도구는 극단적으로 개발 외 자원으로 아웃
소싱할 수 있도록 한다.
1. 계약은 종이로!
2. 분석은 엑셀로!
3. 디플로이는 Heroku 로!
좋은 선택: 도도 포인트를 처음 만들때
개발 기조 확립
‹#›
1. 처음에는 계약 자체도 많은 수정과 개선이 필요하다.
2. 어떤 비즈니스 모델이 매장과 우리 회사 입장에서 모두
만족스러울 수 있는지 끊임없이 테스트해야 함
3. 개발팀의 의존성 없이 빠르게 계약을 실험해볼 수 있도
록 계약은 당분간 종이로 진행
좋은 선택: 도도 포인트를 처음 만들때
계약은 종이로!
‹#›
1. SQL을 쓸 줄 아는 사람보다 엑셀 쓸 줄 아는 사람이 더
많았음
2. 매장 사용 현황을 깊게 분석해보기 위한 과정에서 개발
의존성을 최소화하고자 했음
3. 그래서 현재 사용 DB를 구글 스프레드시트로 내보내
는 스크립트를 만들고, 모두가 분석할 수 있게 함
좋은 선택: 도도 포인트를 처음 만들때
분석은 엑셀로!
‹#›
4. 이런 방식은 한 시트당 데이터가 40,000 셀이 넘어가
면 더 이상 쓸 수가 없게 되었지만,
5. 다행히 그 때는 다른 분석 도구를 제공해줄 수 있는 여
유가 생겨 큰 문제 없이 넘어감
좋은 선택: 도도 포인트를 처음 만들때
분석은 엑셀로!
‹#›
1. 도도 포인트를 처음 만들 때 마침 Heroku 에서 Cedar
스택을 통해 Python 을 지원하기 시작했음
2. 디플로이 시스템을 만들고 유지보수하는 것도 부담이
있었기 때문에 아예 Heroku 를 써서 운영

(당시에는 어이없어하는 사람들이 많았음)
좋은 선택: 도도 포인트를 처음 만들때
디플로이는 Heroku 로!
‹#›
1. 다만 버지니아에서 날라오는데 레이턴시 이슈가 있었
기 때문에 디플로이 시스템을 개발하여 AWS 도쿄로
옮김
2. 2012년에 여름에만 AWS 버지니아 리전이 2주 간격
으로 태풍/번개를 2번 맞아서 당황스러웠던 기억이...
좋은 선택: 도도 포인트를 처음 만들때
디플로이는 Heroku 로!
‹#›
1. 첫 프로토타입까지, 5일
2. 2차 프로토타입까지, 2주
3. 첫 런칭까지 1개월
좋은 선택: 도도 포인트를 처음 만들때
빠르고, 점진적으로,
‹#›
1. 그로부터 7개월간 3명+1명(인턴) 의 개발팀이 지속적
으로 제품을 개선해나갔고,
2. 제품을 사용하는 매장이 200개까지 늘어났으며,
3. 1차 투자를 유치하며 더 멀리 바라볼 수 있게 되었다.
좋은 선택: 도도 포인트를 처음 만들때
빠르고, 점진적으로,
나쁜 선택: 이제 성장할 시기라고 느꼈을 때
03
‹#›
1. 매장이 1,000개 가까이 늘어나니까 서비스에 대한 요
구사항이 늘어남
2. 기존 서비스는 이미 너무 커져서 새로운 기능을 추가하
기 점점 고통스러워지고 있었음
나쁜 선택: 이제 성장할 시기라고 느꼈을 때
2013년 겨울 당시의 상황
‹#›
1. 그래서 여러가지 작은 서비스들이 서로 API를 통해 통
신하며 발전할 수 있는 구조를 가져가기로 결심
나쁜 선택: 이제 성장할 시기라고 느꼈을 때
2013년 겨울 당시의 상황
‹#›
1. 그런데 문제는 당시에 여러가지 욕심이 많았음
2. 다른 회사에서의 제휴 문의도 많았고
3. 우리도 하고 싶은게 정말 많았음
나쁜 선택: 이제 성장할 시기라고 느꼈을 때
2013년 겨울 당시의 상황
‹#›
1. 그래서 우리는 API를 우리 뿐만 아니라 처음부터 외부
인들도 사용할 수 있게 만들자고 결심했고 (실수1)
2. 개발자 사이트, 개발자 등록, Rate Limit, 관리도구 등
등을 초기 구현 범위에 포함시켰음 (실수2)
나쁜 선택: 이제 성장할 시기라고 느꼈을 때
API에 대한 삽질 시작
‹#›
1. 지금 당장 쓸 실제 외부 개발자가 없었기 때문에, 외부 개
발자가 쓸 상황을 상상하며 설계해야 했음
2. 지금 필요한 내부 개발과는 동떨어진 고민이 자잘하게
많이 섞여있었기 때문에,
1. 확신이 서지 않아 결정이 빨리 내려지지 않음
2. 내부에서는 필요한 API를 제때 공급받지 못함
나쁜 선택: 이제 성장할 시기라고 느꼈을 때
이 과정에서 다양한 문제를 겪게 되는데
‹#›
결국 당시 만든 API는 내부에서 쓰기도, 외부에서 쓰기
도 어려운 물건이 됨
나쁜 선택: 이제 성장할 시기라고 느꼈을 때
실패
‹#›
해당 프로젝트의 실패 이후, 실제로 외부 서비스와 연
동이 필요한 상황에서 계획적이지 않게 급하게 추가한
API가 가장 많이 활용되는 것을 보게 됨
나쁜 선택: 이제 성장할 시기라고 느꼈을 때
실패
교훈
04
‹#›
1. 우리는 종종 "그 때 제대로 해놨으면 지금 이 고생 안
하는데..." 라고 후회
2. 하지만 그건 이미 그 코드를 계속 만질 수 있는 미래 시
점에서의 평가일 뿐
3. 스타트업이었고, 필요한 것에 집중했다면,

사실은 그 선택이 맞는 선택이다.
교훈
지금 필요한 것에 집중하자
‹#›
1. 하지만 이 발표가 단지 똥코드를 계속 방치하는 회사
들의 변명거리가 되지 않았으면 한다.
2. 가치를 만들어야 하는 시기와 성장을 만들어야 하는
시기는 다르다.
3. 태세 전환을 하지 못하고 과거의 영광에 빠지면 성장
스테이지에서도 제대로된 것을 만들지 못함
교훈
지금 필요한 것에 집중하자
서울 본사
서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층
TEL 02-544-6463 FAX 02-544-6460
부산 지사
부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호
TEL 02-544-6463 FAX 02-544-6460
주식회사 스포카
나쁜 결정 늦은 결정
서울 본사
서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층
TEL 02-544-6463 FAX 02-544-6460
부산 지사
부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호
TEL 02-544-6463 FAX 02-544-6460
주식회사 스포카
좋은 결정 나쁜 결정
대격변: 파이썬은 스타트업에게 좋은가?
05
‹#›
1. 기본적으로 익숙한 언어로 창업하시기 바랍니다.
2. 당시에 흔치는 않았지만, 저희 팀에서 파이썬을 채택
한 이유는 기본적으로 익숙했기 때문입니다.
3. 파이썬이 익숙치 않다면 이후의 조언이 의사결정에 반
영되지 않았으면 합니다.
대격변: 파이썬은 스타트업에게 좋은가?
경고
‹#›
대격변: 파이썬은 스타트업에게 좋은가?
Duct Tape 부터 엄격함까지
‹#›
1. 파이썬은 기본적으로 쉽고 빠르게 원하는 것을 만들
수 있는 프로그래밍 언어
2. 하지만 그런 프로그래밍 언어는 이미 많음
3. 파이썬은 동시에 엄격한 코드를 짤 수 있는 프로그래
밍 언어이기도 하다는 점이 조금 다름
대격변: 파이썬은 스타트업에게 좋은가?
Duct Tape 부터 엄격함까지
‹#›
1. 스타트업은 단지 “작은”회사를 뜻하지 않음
2. 스타트업의 가장 중요한 키워드는 “고속성장”
• Startup = Growth 

http://paulgraham.com/growth.html
3. 코드가 처하는 상황 또한 빠르게 바뀐다는 의미
대격변: 파이썬은 스타트업에게 좋은가?
Duct Tape 부터 엄격함까지
서울 본사
서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층
TEL 02-544-6463 FAX 02-544-6460
부산 지사
부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호
TEL 02-544-6463 FAX 02-544-6460
주식회사 스포카
가치 성장
‹#›
1. 처음에는 사람도 적고 경험도 적고 시간도 없으니,
2. 도도 포인트에도 수 많은 똥코드가 산재해있었음
3. 있는 돈과 시간 하에서 우선 “가치”를 만드는데 집중
대격변: 파이썬은 스타트업에게 좋은가?
도도 포인트 코드의 역사
서울 본사
서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층
TEL 02-544-6463 FAX 02-544-6460
부산 지사
부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호
TEL 02-544-6463 FAX 02-544-6460
주식회사 스포카
가치 성장
‹#›
2012년 도도 포인트 코드 상태
대격변: 파이썬은 스타트업에게 좋은가?
도도 포인트 코드의 역사
‹#›
2012년에 예상한 2014년 도도 포인트 코드 상태
대격변: 파이썬은 스타트업에게 좋은가?
도도 포인트 코드의 역사
‹#›
2014년 초 도도 포인트 코드 상태
대격변: 파이썬은 스타트업에게 좋은가?
도도 포인트 코드의 역사
‹#›
1. 어느정도 제품이 충분히 시장의 니즈를 충족하게 되면
이를 더 많은 사람들이 쓸 수 있도록 해야...
2. 그렇게 하기 위해 제품의 안정성, 지속 가능성을 확보
해야 함
대격변: 파이썬은 스타트업에게 좋은가?
성장 모델로 전환을 위해
서울 본사
서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층
TEL 02-544-6463 FAX 02-544-6460
부산 지사
부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호
TEL 02-544-6463 FAX 02-544-6460
주식회사 스포카
가치 성장
똥코드를 개선하는 방법 #1
‹#›
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #1: 빠따
‹#›
1. Pull Request를 통해 변경사항에 대해 리뷰를 받고,
리뷰어가 각종 문법 오류와 설계를 지적하는 것
2. 고차원의 코드 퀄리티에 대한 논의가 가능한 것은 장
점이나,
3. 여러가지 단점과 한계가 있음
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #1: 빠따
‹#›
1. 리뷰를 해주는 사람에 따라 리뷰 퀄리티도 차이가 남
2. 리뷰를 보는 사람도, 듣는 사람도 감정이 상하는 경우
가 왕왕 있음
• 넌 왜 이렇게밖에 못짜냐
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #1: 빠따
‹#›
1. 그래서 잡플래닛 평점이 내려감
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #1: 빠따
똥코드를 개선하는 방법 #2: 시어머니 봇
‹#›
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #2: 시어머니 봇
‹#›
1. 코드 리뷰의 상당 부분을 자동화
• 봇은 잔인하게 엄격함
• 봇한테 화가 날 수는 있어도 미워하진 않더라
2. CI에 붙어있음 / 테스트와 동급으로 취급
3. 인간이 하는 코드 리뷰 시간을 상당히 아낌
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #2: 시어머니 봇
‹#›
처음부터 다 고치려면 시간이 너무 오래 걸리므로, 첫
스크립트는 이렇게 통과 가능해보이는 것들만 먼저 검
사하도록 함
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #2: 시어머니 봇
$ pep8 --statistics --count --show-source --
ignore=E123,E126,E127,E201,E202,E225,E226,E231,E241,E30
2,E501,E711,E712,W391,W601 dodo
‹#›
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #2: 시어머니 봇
‹#›
1. flake8: pep8 + pyflakes
2. eslint
3. 마이그레이션 스크립트 검사
4. import 순서 검사
https://github.com/spoqa/import-order
대격변: 파이썬은 스타트업에게 좋은가?
똥코드를 개선하는 방법 #2: 시어머니 봇은 지금
‹#›
1. 성숙한 모노리스 + 몇개의 마이크로서비스
2. 성숙한 모노리스 (도도 포인트 + 도도 인사이트)
1. 무중단 운영
2. 하루 10번 이상의 디플로이
3. 준수한 코드 퀄리티 유지중
4. 모노리스의 크기를 조금씩 줄이는 중
3. 신규 마이크로 서비스 일부는 여전히 똥코드
대격변: 파이썬은 스타트업에게 좋은가?
요즘 도도 포인트
서울 본사
서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층
TEL 02-544-6463 FAX 02-544-6460
부산 지사
부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호
TEL 02-544-6463 FAX 02-544-6460
주식회사 스포카
가치 성장
‹#›
2015년 도도 포인트 코드 지향점
대격변: 파이썬은 스타트업에게 좋은가?
도도 포인트 코드의 역사
‹#›
잘못되면...
대격변: 파이썬은 스타트업에게 좋은가?
도도 포인트 코드의 역사
‹#›
감사합니다.
Q&A
https://github.com/spoqa/spoqa-
pycon-2015-codegolf
1 de 84

Recomendados

[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규 por
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규ChangKyu Song
9.5K visualizações105 slides
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅) por
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)Taeung Song
3.7K visualizações40 slides
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기 por
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기Soojin Ro
5.9K visualizações69 slides
커뮤니티와 함께한 예비개발자 성장기- 조성수님 por
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
7.7K visualizações84 slides
학교에선 알려주지 않는 오픈소스이야기 - 박치완님 por
학교에선 알려주지 않는 오픈소스이야기 - 박치완님학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님NAVER D2
11K visualizações86 slides
[D2 fest 2014]yobi hands on lab por
[D2 fest 2014]yobi hands on lab[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on labNAVER D2
7.4K visualizações41 slides

Mais conteúdo relacionado

Mais procurados

Work With Engineer por
Work With EngineerWork With Engineer
Work With EngineerSungchul Park
1K visualizações72 slides
안드로이드 개발에 유용한 도구들 por
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들Sewon Ann
3.9K visualizações32 slides
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대) por
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
3.3K visualizações47 slides
개발을잘하고싶어요-네이버랩스 송기선님 por
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님NAVER D2
13.4K visualizações45 slides
5.yobi를 활용한 개발자 협업 및 배포 프로세스 por
5.yobi를 활용한 개발자 협업 및 배포 프로세스5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스NAVER D2
16.9K visualizações31 slides
깨끗한 코드 (클린 코드, Clean Code) por
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)Jay Park
51.7K visualizações40 slides

Mais procurados(20)

Work With Engineer por Sungchul Park
Work With EngineerWork With Engineer
Work With Engineer
Sungchul Park1K visualizações
안드로이드 개발에 유용한 도구들 por Sewon Ann
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
Sewon Ann3.9K visualizações
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대) por Jaewon Choi
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
Jaewon Choi3.3K visualizações
개발을잘하고싶어요-네이버랩스 송기선님 por NAVER D2
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
NAVER D213.4K visualizações
5.yobi를 활용한 개발자 협업 및 배포 프로세스 por NAVER D2
5.yobi를 활용한 개발자 협업 및 배포 프로세스5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스
NAVER D216.9K visualizações
깨끗한 코드 (클린 코드, Clean Code) por Jay Park
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)
Jay Park51.7K visualizações
Github 으로 학교 팀 프로젝트 하기 por nexusz99
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
nexusz9934K visualizações
C++ 코드 품질 관리 비법 por 선협 이
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
선협 이27.1K visualizações
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT por Young D
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTPHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
Young D9.6K visualizações
[Hello World 천안아산] 안드로이드 입문 por Taeho Kim
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문
Taeho Kim4.4K visualizações
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기 por NAVER Engineering
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
NAVER Engineering458 visualizações
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018 por devCAT Studio, NEXON
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
devCAT Studio, NEXON8.3K visualizações
제 5회 D2 CAMPUS FEST O.T - billboard.js 차트오픈소스개발기 por NAVER D2
제 5회 D2 CAMPUS FEST O.T -  billboard.js 차트오픈소스개발기제 5회 D2 CAMPUS FEST O.T -  billboard.js 차트오픈소스개발기
제 5회 D2 CAMPUS FEST O.T - billboard.js 차트오픈소스개발기
NAVER D22.5K visualizações
진보한 개발 환경에서 품질 좋은 코드 생산 (WebStorm) por 우영 주
진보한 개발 환경에서 품질 좋은 코드 생산 (WebStorm)진보한 개발 환경에서 품질 좋은 코드 생산 (WebStorm)
진보한 개발 환경에서 품질 좋은 코드 생산 (WebStorm)
우영 주10.7K visualizações
[111]open, share, enjoy 네이버의 오픈소스 활동 por NAVER D2
[111]open, share, enjoy 네이버의 오픈소스 활동[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동
NAVER D29.8K visualizações
코드 리뷰 시스템 소개 por Young-Ho Cha
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개
Young-Ho Cha8.5K visualizações
회사에서 새로운 기술_적용하기 por Dexter Jung
회사에서 새로운 기술_적용하기회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기
Dexter Jung3.3K visualizações
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개) por NAVER D2
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)
NAVER D29.2K visualizações
필요해서 하는 개발 자동화 por none
필요해서 하는 개발 자동화필요해서 하는 개발 자동화
필요해서 하는 개발 자동화
none1.5K visualizações
D2 CAMPUS FEST 2015 오리엔테이션 session1 por NAVER D2
D2 CAMPUS FEST 2015 오리엔테이션 session1D2 CAMPUS FEST 2015 오리엔테이션 session1
D2 CAMPUS FEST 2015 오리엔테이션 session1
NAVER D24.7K visualizações

Similar a 도도와 파이썬: 좋은 선택과 나쁜 선택

131 deview 2013 yobi-채수원 por
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
14.7K visualizações112 slides
스위처를 만드는 아이오의 개발팀 이야기 por
스위처를 만드는 아이오의 개발팀 이야기스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기Mijeong Park
6.1K visualizações52 slides
16 학술제 마무리 자료 por
16 학술제 마무리 자료16 학술제 마무리 자료
16 학술제 마무리 자료Junyoung Jung
806 visualizações34 slides
여기컨_스타트업 기획자의 월화수목금_이수지 por
여기컨_스타트업 기획자의 월화수목금_이수지여기컨_스타트업 기획자의 월화수목금_이수지
여기컨_스타트업 기획자의 월화수목금_이수지TechFeministgroup
2.2K visualizações52 slides
임태현, 프로그래머 생존 가이드 por
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드태현 임
1.3K visualizações64 slides
How To Become Better Engineer por
How To Become Better EngineerHow To Become Better Engineer
How To Become Better EngineerDaeMyung Kang
20.6K visualizações66 slides

Similar a 도도와 파이썬: 좋은 선택과 나쁜 선택(20)

131 deview 2013 yobi-채수원 por NAVER D2
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
NAVER D214.7K visualizações
스위처를 만드는 아이오의 개발팀 이야기 por Mijeong Park
스위처를 만드는 아이오의 개발팀 이야기스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기
Mijeong Park6.1K visualizações
16 학술제 마무리 자료 por Junyoung Jung
16 학술제 마무리 자료16 학술제 마무리 자료
16 학술제 마무리 자료
Junyoung Jung806 visualizações
여기컨_스타트업 기획자의 월화수목금_이수지 por TechFeministgroup
여기컨_스타트업 기획자의 월화수목금_이수지여기컨_스타트업 기획자의 월화수목금_이수지
여기컨_스타트업 기획자의 월화수목금_이수지
TechFeministgroup2.2K visualizações
임태현, 프로그래머 생존 가이드 por 태현 임
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드
태현 임1.3K visualizações
How To Become Better Engineer por DaeMyung Kang
How To Become Better EngineerHow To Become Better Engineer
How To Become Better Engineer
DaeMyung Kang20.6K visualizações
현장에서 사용하는 Software production por Jinho Yoo
현장에서 사용하는 Software production현장에서 사용하는 Software production
현장에서 사용하는 Software production
Jinho Yoo2.8K visualizações
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며 por NAVER Engineering
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
NAVER Engineering388 visualizações
레거시 프로젝트 개선기 (사내 발표 자료) por SungChanHwang
레거시 프로젝트 개선기 (사내 발표 자료)레거시 프로젝트 개선기 (사내 발표 자료)
레거시 프로젝트 개선기 (사내 발표 자료)
SungChanHwang145 visualizações
Hello World 천안아산 발표자료 - 학생 개발자로 학생을 뛰어넘기 por JuHong Jeong
Hello World 천안아산 발표자료 - 학생 개발자로 학생을 뛰어넘기Hello World 천안아산 발표자료 - 학생 개발자로 학생을 뛰어넘기
Hello World 천안아산 발표자료 - 학생 개발자로 학생을 뛰어넘기
JuHong Jeong736 visualizações
Software engineer가 되기 위한 여정 por Aree Oh
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
Aree Oh157 visualizações
PoApper Introduction por Byungjin Park
PoApper IntroductionPoApper Introduction
PoApper Introduction
Byungjin Park1.1K visualizações
Business Driven Development.pdf por ssuser24f6db
Business Driven Development.pdfBusiness Driven Development.pdf
Business Driven Development.pdf
ssuser24f6db15 visualizações
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011 por devCAT Studio, NEXON
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
devCAT Studio, NEXON32.8K visualizações
NDC2019 - 게임플레이 프로그래머의 역할 por Hoyoung Choi
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할
Hoyoung Choi2.5K visualizações
아이패드기획강연 플루토미디어 외부_100915 por jinwook shin
아이패드기획강연 플루토미디어 외부_100915아이패드기획강연 플루토미디어 외부_100915
아이패드기획강연 플루토미디어 외부_100915
jinwook shin1.2K visualizações
NDC 2015 게임 스타트업 시작하기 por 기룡 남
NDC 2015 게임 스타트업 시작하기NDC 2015 게임 스타트업 시작하기
NDC 2015 게임 스타트업 시작하기
기룡 남7.6K visualizações
인디 게임을 개발하는 여러 가지 방법들 por springgames
인디 게임을 개발하는 여러 가지 방법들인디 게임을 개발하는 여러 가지 방법들
인디 게임을 개발하는 여러 가지 방법들
springgames4.6K visualizações
스마일게이트 서버개발캠프 - 5vengers por ServerDevCamp
스마일게이트 서버개발캠프 - 5vengers 스마일게이트 서버개발캠프 - 5vengers
스마일게이트 서버개발캠프 - 5vengers
ServerDevCamp108 visualizações
퇴근 후 해볼만한 N 가지 활동(개발자 ver.) por Seokjae Lee
퇴근 후 해볼만한 N 가지 활동(개발자 ver.)퇴근 후 해볼만한 N 가지 활동(개발자 ver.)
퇴근 후 해볼만한 N 가지 활동(개발자 ver.)
Seokjae Lee170 visualizações

Último

클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략 por
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략Open Source Consulting
111 visualizações25 slides
컴포넌트 설계 por
컴포넌트 설계컴포넌트 설계
컴포넌트 설계Wonjun Hwang
8 visualizações21 slides
CES 처음 가는 분을 위한 가이드 por
CES 처음 가는 분을 위한 가이드CES 처음 가는 분을 위한 가이드
CES 처음 가는 분을 위한 가이드Minsuk Lee
650 visualizações31 slides
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기 por
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기Jinkyoung Kim
46 visualizações139 slides
Exploring Deep Learning Acceleration Technology Embedded in LLMs por
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsTae Young Lee
26 visualizações53 slides
AD의 TAD와 협업.pptx por
AD의 TAD와 협업.pptxAD의 TAD와 협업.pptx
AD의 TAD와 협업.pptxVisual Tech Dev
50 visualizações24 slides

Último(7)

클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략 por Open Source Consulting
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
Open Source Consulting111 visualizações
컴포넌트 설계 por Wonjun Hwang
컴포넌트 설계컴포넌트 설계
컴포넌트 설계
Wonjun Hwang8 visualizações
CES 처음 가는 분을 위한 가이드 por Minsuk Lee
CES 처음 가는 분을 위한 가이드CES 처음 가는 분을 위한 가이드
CES 처음 가는 분을 위한 가이드
Minsuk Lee650 visualizações
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기 por Jinkyoung Kim
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
Jinkyoung Kim46 visualizações
Exploring Deep Learning Acceleration Technology Embedded in LLMs por Tae Young Lee
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Tae Young Lee26 visualizações
AD의 TAD와 협업.pptx por Visual Tech Dev
AD의 TAD와 협업.pptxAD의 TAD와 협업.pptx
AD의 TAD와 협업.pptx
Visual Tech Dev50 visualizações
성능 테스트 por Wonjun Hwang
성능 테스트성능 테스트
성능 테스트
Wonjun Hwang8 visualizações

도도와 파이썬: 좋은 선택과 나쁜 선택

  • 1. 도도와 파이썬: 좋은 선택과 나쁜 선택 JC CTO 파이콘 2015 jc@spoqa.com
  • 3. ‹#› 1. 2011년 5월 창업 2. 태블릿 멤버십 서비스 "도도 포인트" 개발/운영중 3. 서울 / 부산 / 일본에서 운영중 스포카는 뭐하는 회사인가요? 스포카
  • 7. ‹#› 1. 5,000개 매장, 500만명의 사용자가 이용중 2. 카페, 레스토랑, 리테일샵, 헤어샵 방방 곡곡에서 사용중 3. 퇴직후 치킨집을 고려하고 계시다면? 1. 02-544-6463으로 전화주시면 친절히 상담드립니다. 2. 저희 부스에 브로셔 받아가세요. 스포카는 뭐하는 회사인가요? 도도 포인트
  • 9. ‹#› 1. 개발 프로젝트의 거의 대부분이 파이썬으로 개발됨 2. 15명의 개발자가 모두 파이썬을 쓰며, 
 익숙하게 쓰시는 분이 다수 3. 여러 오픈소스 프로젝트에도 기여하고 있음 •http://github.com/spoqa 스포카는 왜 파이콘에? Spoqa ❤ Python
  • 10. ‹#› 1. 스포카가 도도 포인트를 만들면서 있었던
 기술적 의사결정을 공유합니다. 1. 어떤 것은 좋은 선택이었고, 2. 어떤 것은 나쁜 선택이었는데, 3. 이 과정에서 파이썬과 어떻게 함께 생존했는지를
 알려드리겠습니다. 스포카는 왜 파이콘에? 오늘 공유할 내용은...
  • 11. 좋은 선택: 도도 포인트를 처음 만들때 02
  • 12. ‹#› 1. 로켓이 될거라 자신한 “스포카” 적립 앱은 매장을 100 개나 가맹했는데 아무도 쓰지 않았음 2. 당연히 쓰이고 있지를 않으니 투자 유치도 요원한 상황 좋은 선택: 도도 포인트를 처음 만들때 2012년 1월 당시 상황
  • 13. ‹#› 1. 이 상황에서 당연히 유료화 또한 꿈도 꿀 수 없었고 2. 자신만만하게 엔젤투자도 받았는데 돈도 다 까먹었고 3. 여러모로 절망적인 상황이었음 좋은 선택: 도도 포인트를 처음 만들때 2012년 1월 당시 상황
  • 14. ‹#› 좋은 선택: 도도 포인트를 처음 만들때 2012년 1월 당시 상황 <당시 잠에 들면 꾸던 꿈>
  • 15. ‹#› 그 상황에서 이런저런 다음 피봇할 거리를 고민하던 중, 공동창업자인 대표가 테크크런치를 보다가, “사람들이 적립한다고 앱을 받지는 않으니 매장에 태 블릿을 깔아놓고 앱 없이도 적립이 되게 하자” 고 제안함 좋은 선택: 도도 포인트를 처음 만들때 2012년 1월 당시 상황
  • 16. ‹#› 지금와서야 말이 되는 것 같지만서도, 당시에는 누가 적립한다고 50만원이 넘는 되는 태블릿을 사;; 같은 생 각이 머리속에 지배적이었음 그런데 대표가 계속 주장을 반복하여 화가 난 나머지 이게 안되는 제품이라는 걸 직접 보여줘야겠다는 생각 이 들었음 좋은 선택: 도도 포인트를 처음 만들때 2012년 1월 당시 상황
  • 17. ‹#› 1. 월급날이 매월 두려워지는 시기였기 때문에,
 느긋하게 할 여유 없었음 2. 5일내로 돌아가는걸 보자! 하고 저녁시간에 개발 시작 3. (낮에는 아직 한창 스포카 만들고 있었음;;) 좋은 선택: 도도 포인트를 처음 만들때 1차 프로토타입 제작
  • 20. ‹#› 1. 제대로 안돌아갈 거라고 생각하고 만들어보니 생각보 다 적립하는 느낌이 괜찮았음 2. 프로토타입을 전사적으로 1차 공유해본 결과 이걸 한 번 실험해보고싶다는 쪽으로 의견이 모아짐 좋은 선택: 도도 포인트를 처음 만들때 엥? 생각보다 경험이 괜찮네?
  • 21. ‹#› 3. 그 자리에서 대표가 1차 프로토타입을 들고 옆 건물 1 층 주커피로 달려감 좋은 선택: 도도 포인트를 처음 만들때 엥? 생각보다 경험이 괜찮네?
  • 23. ‹#› 1. 기본적으로는 1차와 별 다를바가 없었음 2. 다만 첫번째 고객의 취향에 완전히 맞추어주었음 •Do things that don’t scale 
 http://paulgraham.com/ds.html 좋은 선택: 도도 포인트를 처음 만들때 2차 프로토타입 제작
  • 24. ‹#› 1. 그 외 몇가지 사용성 개선 시도를 더함 1. (e.g. 첫번째 프로토타입을 모르는 사용법을 잘 모르 겠다고 판단하여 아예 동영상을 붙임) 2. 여전히 2개 이상의 매장이 사용할 것은 구조적으로 고려 하지 않음 3.2주 정도 소요 좋은 선택: 도도 포인트를 처음 만들때 2차 프로토타입 제작
  • 25. ‹#› 당시에는 5일동안 만들어본 프로토타입을 써보고 내부 의 감에 의해 2차 프로토타입을 만들었지만, 우리는 피 봇을 확정하기 위한 보다 객관적인 기준이 필요했음 좋은 선택: 도도 포인트를 처음 만들때 2차 프로토타입 제작
  • 26. ‹#› 그래서 대표와 나는 약간 보수적으로, 기존 서비스에서 우리가 사용한 양을 제외한 순수 고객 사용량이 3배 이 상이 나오면 주력 서비스를 태블릿 기반 서비스로 전환 하자고 결정함 좋은 선택: 도도 포인트를 처음 만들때 2차 프로토타입 제작
  • 27. ‹#› 1. 2월의 마지막 금요일에 설치하고, 주말을 보낸 후, 월요 일에 확인해보니, 기존 서비스 대비 사용량이 13배 가 나옴 2. 아 그냥 우리가 바보였구나;;; 3. 스포카 앱의 업데이트는 그 날이 마지막이었다고 한다. 좋은 선택: 도도 포인트를 처음 만들때 2차 프로토타입 제작
  • 28. ‹#› 이 프로토타입을 들고 다니면서, 1. 엔젤투자자님께 돈을 더 빌리고 2. 기술 보증 기금을 받고 3. 정부 지원 사업에 선정되어서 4. 다음달 월급을 지급할 수 있었다. 좋은 선택: 도도 포인트를 처음 만들때 부활
  • 29. ‹#› 1. 백오피스를 가볍게 두고 제품 자체에 집중한 것 2. 개발을 할 수 있다면 모두 고객 경험 자체에 올인한다. 좋은 선택: 도도 포인트를 처음 만들때 개발 기조 확립
  • 30. ‹#› 이유: 스포카에서의 경험 1. 스포카 때는 아주 일반적인 개발 과정을 거쳤음 2. 백엔드 운영, 통계, 배포 도구, 앱 자체를 고루고루 개발 3. 장점: 장기적으로 효율이 좋다. 단, 성공했을 때 4. 그리고 망함 좋은 선택: 도도 포인트를 처음 만들때 개발 기조 확립
  • 31. ‹#› 1. 사실상 스타트업의 성공율은 1% 미만, 99% 제품의 보조 도구는 쓸모 없어진다. 2. 그러면 차라리 1%를 올리는데 집중하고 보조 도구의 개발은 나중으로 미루거나 위임한다. 좋은 선택: 도도 포인트를 처음 만들때 개발 기조 확립
  • 32. ‹#› 1. 최대한 보조 도구는 극단적으로 개발 외 자원으로 아웃 소싱할 수 있도록 한다. 1. 계약은 종이로! 2. 분석은 엑셀로! 3. 디플로이는 Heroku 로! 좋은 선택: 도도 포인트를 처음 만들때 개발 기조 확립
  • 33. ‹#› 1. 처음에는 계약 자체도 많은 수정과 개선이 필요하다. 2. 어떤 비즈니스 모델이 매장과 우리 회사 입장에서 모두 만족스러울 수 있는지 끊임없이 테스트해야 함 3. 개발팀의 의존성 없이 빠르게 계약을 실험해볼 수 있도 록 계약은 당분간 종이로 진행 좋은 선택: 도도 포인트를 처음 만들때 계약은 종이로!
  • 34. ‹#› 1. SQL을 쓸 줄 아는 사람보다 엑셀 쓸 줄 아는 사람이 더 많았음 2. 매장 사용 현황을 깊게 분석해보기 위한 과정에서 개발 의존성을 최소화하고자 했음 3. 그래서 현재 사용 DB를 구글 스프레드시트로 내보내 는 스크립트를 만들고, 모두가 분석할 수 있게 함 좋은 선택: 도도 포인트를 처음 만들때 분석은 엑셀로!
  • 35. ‹#› 4. 이런 방식은 한 시트당 데이터가 40,000 셀이 넘어가 면 더 이상 쓸 수가 없게 되었지만, 5. 다행히 그 때는 다른 분석 도구를 제공해줄 수 있는 여 유가 생겨 큰 문제 없이 넘어감 좋은 선택: 도도 포인트를 처음 만들때 분석은 엑셀로!
  • 36. ‹#› 1. 도도 포인트를 처음 만들 때 마침 Heroku 에서 Cedar 스택을 통해 Python 을 지원하기 시작했음 2. 디플로이 시스템을 만들고 유지보수하는 것도 부담이 있었기 때문에 아예 Heroku 를 써서 운영
 (당시에는 어이없어하는 사람들이 많았음) 좋은 선택: 도도 포인트를 처음 만들때 디플로이는 Heroku 로!
  • 37. ‹#› 1. 다만 버지니아에서 날라오는데 레이턴시 이슈가 있었 기 때문에 디플로이 시스템을 개발하여 AWS 도쿄로 옮김 2. 2012년에 여름에만 AWS 버지니아 리전이 2주 간격 으로 태풍/번개를 2번 맞아서 당황스러웠던 기억이... 좋은 선택: 도도 포인트를 처음 만들때 디플로이는 Heroku 로!
  • 38. ‹#› 1. 첫 프로토타입까지, 5일 2. 2차 프로토타입까지, 2주 3. 첫 런칭까지 1개월 좋은 선택: 도도 포인트를 처음 만들때 빠르고, 점진적으로,
  • 39. ‹#› 1. 그로부터 7개월간 3명+1명(인턴) 의 개발팀이 지속적 으로 제품을 개선해나갔고, 2. 제품을 사용하는 매장이 200개까지 늘어났으며, 3. 1차 투자를 유치하며 더 멀리 바라볼 수 있게 되었다. 좋은 선택: 도도 포인트를 처음 만들때 빠르고, 점진적으로,
  • 40. 나쁜 선택: 이제 성장할 시기라고 느꼈을 때 03
  • 41. ‹#› 1. 매장이 1,000개 가까이 늘어나니까 서비스에 대한 요 구사항이 늘어남 2. 기존 서비스는 이미 너무 커져서 새로운 기능을 추가하 기 점점 고통스러워지고 있었음 나쁜 선택: 이제 성장할 시기라고 느꼈을 때 2013년 겨울 당시의 상황
  • 42. ‹#› 1. 그래서 여러가지 작은 서비스들이 서로 API를 통해 통 신하며 발전할 수 있는 구조를 가져가기로 결심 나쁜 선택: 이제 성장할 시기라고 느꼈을 때 2013년 겨울 당시의 상황
  • 43. ‹#› 1. 그런데 문제는 당시에 여러가지 욕심이 많았음 2. 다른 회사에서의 제휴 문의도 많았고 3. 우리도 하고 싶은게 정말 많았음 나쁜 선택: 이제 성장할 시기라고 느꼈을 때 2013년 겨울 당시의 상황
  • 44. ‹#› 1. 그래서 우리는 API를 우리 뿐만 아니라 처음부터 외부 인들도 사용할 수 있게 만들자고 결심했고 (실수1) 2. 개발자 사이트, 개발자 등록, Rate Limit, 관리도구 등 등을 초기 구현 범위에 포함시켰음 (실수2) 나쁜 선택: 이제 성장할 시기라고 느꼈을 때 API에 대한 삽질 시작
  • 45. ‹#› 1. 지금 당장 쓸 실제 외부 개발자가 없었기 때문에, 외부 개 발자가 쓸 상황을 상상하며 설계해야 했음 2. 지금 필요한 내부 개발과는 동떨어진 고민이 자잘하게 많이 섞여있었기 때문에, 1. 확신이 서지 않아 결정이 빨리 내려지지 않음 2. 내부에서는 필요한 API를 제때 공급받지 못함 나쁜 선택: 이제 성장할 시기라고 느꼈을 때 이 과정에서 다양한 문제를 겪게 되는데
  • 46. ‹#› 결국 당시 만든 API는 내부에서 쓰기도, 외부에서 쓰기 도 어려운 물건이 됨 나쁜 선택: 이제 성장할 시기라고 느꼈을 때 실패
  • 47. ‹#› 해당 프로젝트의 실패 이후, 실제로 외부 서비스와 연 동이 필요한 상황에서 계획적이지 않게 급하게 추가한 API가 가장 많이 활용되는 것을 보게 됨 나쁜 선택: 이제 성장할 시기라고 느꼈을 때 실패
  • 49. ‹#› 1. 우리는 종종 "그 때 제대로 해놨으면 지금 이 고생 안 하는데..." 라고 후회 2. 하지만 그건 이미 그 코드를 계속 만질 수 있는 미래 시 점에서의 평가일 뿐 3. 스타트업이었고, 필요한 것에 집중했다면,
 사실은 그 선택이 맞는 선택이다. 교훈 지금 필요한 것에 집중하자
  • 50. ‹#› 1. 하지만 이 발표가 단지 똥코드를 계속 방치하는 회사 들의 변명거리가 되지 않았으면 한다. 2. 가치를 만들어야 하는 시기와 성장을 만들어야 하는 시기는 다르다. 3. 태세 전환을 하지 못하고 과거의 영광에 빠지면 성장 스테이지에서도 제대로된 것을 만들지 못함 교훈 지금 필요한 것에 집중하자
  • 51. 서울 본사 서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층 TEL 02-544-6463 FAX 02-544-6460 부산 지사 부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호 TEL 02-544-6463 FAX 02-544-6460 주식회사 스포카 나쁜 결정 늦은 결정
  • 52. 서울 본사 서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층 TEL 02-544-6463 FAX 02-544-6460 부산 지사 부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호 TEL 02-544-6463 FAX 02-544-6460 주식회사 스포카 좋은 결정 나쁜 결정
  • 54. ‹#› 1. 기본적으로 익숙한 언어로 창업하시기 바랍니다. 2. 당시에 흔치는 않았지만, 저희 팀에서 파이썬을 채택 한 이유는 기본적으로 익숙했기 때문입니다. 3. 파이썬이 익숙치 않다면 이후의 조언이 의사결정에 반 영되지 않았으면 합니다. 대격변: 파이썬은 스타트업에게 좋은가? 경고
  • 55. ‹#› 대격변: 파이썬은 스타트업에게 좋은가? Duct Tape 부터 엄격함까지
  • 56. ‹#› 1. 파이썬은 기본적으로 쉽고 빠르게 원하는 것을 만들 수 있는 프로그래밍 언어 2. 하지만 그런 프로그래밍 언어는 이미 많음 3. 파이썬은 동시에 엄격한 코드를 짤 수 있는 프로그래 밍 언어이기도 하다는 점이 조금 다름 대격변: 파이썬은 스타트업에게 좋은가? Duct Tape 부터 엄격함까지
  • 57. ‹#› 1. 스타트업은 단지 “작은”회사를 뜻하지 않음 2. 스타트업의 가장 중요한 키워드는 “고속성장” • Startup = Growth 
 http://paulgraham.com/growth.html 3. 코드가 처하는 상황 또한 빠르게 바뀐다는 의미 대격변: 파이썬은 스타트업에게 좋은가? Duct Tape 부터 엄격함까지
  • 58. 서울 본사 서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층 TEL 02-544-6463 FAX 02-544-6460 부산 지사 부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호 TEL 02-544-6463 FAX 02-544-6460 주식회사 스포카 가치 성장
  • 59. ‹#› 1. 처음에는 사람도 적고 경험도 적고 시간도 없으니, 2. 도도 포인트에도 수 많은 똥코드가 산재해있었음 3. 있는 돈과 시간 하에서 우선 “가치”를 만드는데 집중 대격변: 파이썬은 스타트업에게 좋은가? 도도 포인트 코드의 역사
  • 60. 서울 본사 서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층 TEL 02-544-6463 FAX 02-544-6460 부산 지사 부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호 TEL 02-544-6463 FAX 02-544-6460 주식회사 스포카 가치 성장
  • 61. ‹#› 2012년 도도 포인트 코드 상태 대격변: 파이썬은 스타트업에게 좋은가? 도도 포인트 코드의 역사
  • 62. ‹#› 2012년에 예상한 2014년 도도 포인트 코드 상태 대격변: 파이썬은 스타트업에게 좋은가? 도도 포인트 코드의 역사
  • 63. ‹#› 2014년 초 도도 포인트 코드 상태 대격변: 파이썬은 스타트업에게 좋은가? 도도 포인트 코드의 역사
  • 64. ‹#› 1. 어느정도 제품이 충분히 시장의 니즈를 충족하게 되면 이를 더 많은 사람들이 쓸 수 있도록 해야... 2. 그렇게 하기 위해 제품의 안정성, 지속 가능성을 확보 해야 함 대격변: 파이썬은 스타트업에게 좋은가? 성장 모델로 전환을 위해
  • 65. 서울 본사 서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층 TEL 02-544-6463 FAX 02-544-6460 부산 지사 부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호 TEL 02-544-6463 FAX 02-544-6460 주식회사 스포카 가치 성장
  • 67. ‹#› 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #1: 빠따
  • 68. ‹#› 1. Pull Request를 통해 변경사항에 대해 리뷰를 받고, 리뷰어가 각종 문법 오류와 설계를 지적하는 것 2. 고차원의 코드 퀄리티에 대한 논의가 가능한 것은 장 점이나, 3. 여러가지 단점과 한계가 있음 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #1: 빠따
  • 69. ‹#› 1. 리뷰를 해주는 사람에 따라 리뷰 퀄리티도 차이가 남 2. 리뷰를 보는 사람도, 듣는 사람도 감정이 상하는 경우 가 왕왕 있음 • 넌 왜 이렇게밖에 못짜냐 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #1: 빠따
  • 70. ‹#› 1. 그래서 잡플래닛 평점이 내려감 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #1: 빠따
  • 71. 똥코드를 개선하는 방법 #2: 시어머니 봇
  • 72. ‹#› 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #2: 시어머니 봇
  • 73. ‹#› 1. 코드 리뷰의 상당 부분을 자동화 • 봇은 잔인하게 엄격함 • 봇한테 화가 날 수는 있어도 미워하진 않더라 2. CI에 붙어있음 / 테스트와 동급으로 취급 3. 인간이 하는 코드 리뷰 시간을 상당히 아낌 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #2: 시어머니 봇
  • 74. ‹#› 처음부터 다 고치려면 시간이 너무 오래 걸리므로, 첫 스크립트는 이렇게 통과 가능해보이는 것들만 먼저 검 사하도록 함 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #2: 시어머니 봇 $ pep8 --statistics --count --show-source -- ignore=E123,E126,E127,E201,E202,E225,E226,E231,E241,E30 2,E501,E711,E712,W391,W601 dodo
  • 75. ‹#› 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #2: 시어머니 봇
  • 76. ‹#› 1. flake8: pep8 + pyflakes 2. eslint 3. 마이그레이션 스크립트 검사 4. import 순서 검사 https://github.com/spoqa/import-order 대격변: 파이썬은 스타트업에게 좋은가? 똥코드를 개선하는 방법 #2: 시어머니 봇은 지금
  • 77. ‹#› 1. 성숙한 모노리스 + 몇개의 마이크로서비스 2. 성숙한 모노리스 (도도 포인트 + 도도 인사이트) 1. 무중단 운영 2. 하루 10번 이상의 디플로이 3. 준수한 코드 퀄리티 유지중 4. 모노리스의 크기를 조금씩 줄이는 중 3. 신규 마이크로 서비스 일부는 여전히 똥코드 대격변: 파이썬은 스타트업에게 좋은가? 요즘 도도 포인트
  • 78. 서울 본사 서울특별시 강남구 테헤란로 420 하이리빙 빌딩 9층 TEL 02-544-6463 FAX 02-544-6460 부산 지사 부산광역시 부산진구 부전동 426-7 신동아오피스텔 1007호 TEL 02-544-6463 FAX 02-544-6460 주식회사 스포카 가치 성장
  • 79. ‹#› 2015년 도도 포인트 코드 지향점 대격변: 파이썬은 스타트업에게 좋은가? 도도 포인트 코드의 역사
  • 80. ‹#› 잘못되면... 대격변: 파이썬은 스타트업에게 좋은가? 도도 포인트 코드의 역사
  • 83. Q&A