우리는 이렇게
개발하고 있어요
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 가 있으니 사용해 보세요.
- 필요하면 주위 분들과 설계를 논의합니다.
테스트 작성하기
- 모든 코드는 관련된 테스트를 작성합니다.
- 테스트 코드의 양이 더 많은 경우도 꽤 있습니다.
- Edge 케이스들을 잘 테스트 합니다.
- 테스트 케이스의 경우에는 한글로 함수명을
쓰는 경우도 있습니다.
테스트 작성도 코딩 가이드라인이 있어요!
Commit 하기
- commit message 는 규칙에 맞게 간결하게 작성합니다.
- commit hook 으로 다음을 확인합니다.
- import 규칙에 맞게 작성되었는가? (isort)
- 1M가 넘는 파일이 존재하지 않는가?
Push 하기
- 적당한 단위가 되면 (보통 Pull Request를 생성하기 전에) github 에 push 를 합니다.
- Push 전에는 hook을 통해 다음을 체크합니다.
- 규칙에 맞게 Python 코드를 작성 했는가? (flake8)
- 규칙에 맞게 Javascript 코드를 작성 했는가? (jshint)
- DB migration 파일을 생성 했는가?
PR 생성하기
- 리뷰어를 위한 설명을 작성합니다.
- 최대한 작은 단위로 PR을 생성합니다.
Test with TravisCI
Coverage Test
- 테스트를 충분히 작성 하였는가?
- 테스트가 커버하지 못하는 코드는 어디인가?
Code Review
지적하는 과정이 아닌
함께 코딩하는 과정
Merge
Deploy & Monitoring
- 머지된 PR은 즉시 배포합니다.
- 배포한 기능은 관련자들에게 직접 알립니다.
- 배포한 기능이 정상동작하는지를 책임지고
모니터링 합니다.
큰 일은
어떻게 계획하지?
무엇이 중요한 일인가?
회사의 비전에 따라, but
기회 평가서 작성
새로운 일을 하고 싶은 사람들이 답해야 하는 질문
- 어떤 문제를 풀고 싶은가요?
- 무엇를 위해 이 문제를 푸는 건가요?
- 어떻게 문제를 풀 건가요?
- 이를 통해 어떤 가치를 얻을 수 있을까요?
- 어떻게 이것의 성공을 측정할 수 있나요?
- 왜 지금 해야 하나요?
- 어느 정도의 비용과 기간이 예상되나요?
기회 평가서의 예
싸우자!
3개월에 한번씩 돌아오는
끝 장 토 론
결론이 안나면?
이번에는
개발주기를 한바퀴
돌아볼까?
스크럼
해야할 수 많은 일들
스프린트 계획 회의
시간의 추정
하나의 스프린트
옆으로 옆으로
데모
회고
오예!
다음에는 좀 더 잘하기
QA
혹시 8퍼센트에
관심이 있으시다면?
혹시 도움이
필요하시다면?
감사합니다
웹서비스개발, 우리는 이렇게 하고 있어요
By Ho Sung Lee
웹서비스개발, 우리는 이렇게 하고 있어요
카이스트 코딩하라톤
- 1,600