우리는 이렇게
개발하고 있어요
8퍼센트 이호성
소개
- KAIST 전산과 (2001 입학)
- 아이뉴정보통신(병특) (2006~2008)
- 엔써즈 (2008~2015) DevOps Team Lead
- Gracenote (2015) DevOps and Operations Director
- 8퍼센트 (2015~현재) CTO
8퍼센트
옛날 이야기
(여기 와보니 생각 나는)
일단 간단한 것 부터
시작 해 볼까?
일 명확히 하기
가장 효율적인 채널을 통해서 개발자가 일에 착수 할 수 있을 만큼 커뮤니케이션을 합니다.
- 간단한 일은 슬랙으로
- 좀 더 복잡한일은 1:1로
- 다양한 관계자가 관련 있을때에는 회의 요청으로
삽질을 줄일 수 있는 가장 중요한 단계
=> 트랠로 카드 생성하기
코딩하기
- PyCharm을 사용합니다.
- Academic License 가 있으니 사용해 보세요.
- 필요하면 주위 분들과 설계를 논의합니다.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067211/pasted-from-clipboard.png)
테스트 작성하기
- 모든 코드는 관련된 테스트를 작성합니다.
- 테스트 코드의 양이 더 많은 경우도 꽤 있습니다.
- Edge 케이스들을 잘 테스트 합니다.
- 테스트 케이스의 경우에는 한글로 함수명을
쓰는 경우도 있습니다.
테스트 작성도 코딩 가이드라인이 있어요!
Commit 하기
- commit message 는 규칙에 맞게 간결하게 작성합니다.
- commit hook 으로 다음을 확인합니다.
- import 규칙에 맞게 작성되었는가? (isort)
- 1M가 넘는 파일이 존재하지 않는가?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067247/pasted-from-clipboard.png)
Push 하기
- 적당한 단위가 되면 (보통 Pull Request를 생성하기 전에) github 에 push 를 합니다.
- Push 전에는 hook을 통해 다음을 체크합니다.
- 규칙에 맞게 Python 코드를 작성 했는가? (flake8)
- 규칙에 맞게 Javascript 코드를 작성 했는가? (jshint)
- DB migration 파일을 생성 했는가?
PR 생성하기
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067348/pasted-from-clipboard.png)
- 리뷰어를 위한 설명을 작성합니다.
- 최대한 작은 단위로 PR을 생성합니다.
Test with TravisCI
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067411/pasted-from-clipboard.png)
Coverage Test
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067351/pasted-from-clipboard.png)
- 테스트를 충분히 작성 하였는가?
- 테스트가 커버하지 못하는 코드는 어디인가?
Code Review
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067199/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067393/pasted-from-clipboard.png)
지적하는 과정이 아닌
함께 코딩하는 과정
Merge
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067407/pasted-from-clipboard.png)
Deploy & Monitoring
- 머지된 PR은 즉시 배포합니다.
- 배포한 기능은 관련자들에게 직접 알립니다.
- 배포한 기능이 정상동작하는지를 책임지고
모니터링 합니다.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067455/pasted-from-clipboard.png)
큰 일은
어떻게 계획하지?
무엇이 중요한 일인가?
회사의 비전에 따라, but
기회 평가서 작성
새로운 일을 하고 싶은 사람들이 답해야 하는 질문
- 어떤 문제를 풀고 싶은가요?
- 무엇를 위해 이 문제를 푸는 건가요?
- 어떻게 문제를 풀 건가요?
- 이를 통해 어떤 가치를 얻을 수 있을까요?
- 어떻게 이것의 성공을 측정할 수 있나요?
- 왜 지금 해야 하나요?
- 어느 정도의 비용과 기간이 예상되나요?
기회 평가서의 예
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067485/pasted-from-clipboard.png)
싸우자!
3개월에 한번씩 돌아오는
끝 장 토 론
결론이 안나면?
이번에는
개발주기를 한바퀴
돌아볼까?
스크럼
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067509/pasted-from-clipboard.png)
해야할 수 많은 일들
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066533/pasted-from-clipboard.png)
스프린트 계획 회의
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066457/pasted-from-clipboard.png)
시간의 추정
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066460/pasted-from-clipboard.png)
하나의 스프린트
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066455/pasted-from-clipboard.png)
옆으로 옆으로
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6067149/pasted-from-clipboard.png)
데모
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066469/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066473/pasted-from-clipboard.png)
회고
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066512/pasted-from-clipboard.png)
오예!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066517/pasted-from-clipboard.png)
다음에는 좀 더 잘하기
![](https://s3.amazonaws.com/media-p.slid.es/uploads/367542/images/6066521/pasted-from-clipboard.png)
QA
혹시 8퍼센트에
관심이 있으시다면?
혹시 도움이
필요하시다면?
감사합니다
웹서비스개발, 우리는 이렇게 하고 있어요
By Ho Sung Lee
웹서비스개발, 우리는 이렇게 하고 있어요
카이스트 코딩하라톤
- 1,516