우아한테크코스 레벨4 - 프로젝트 1주차 팀빌딩 아이디어 선정 및 개발 후기
우아한테크코스의 마지막 레벨인 4단계에서는 팀프로젝트를 진행한다. 기획부터 직접하기 때문에 재밌는 프로젝트를 기획해서 해볼 수 있다.
45명이 각자 아이디어를 내서 상위 9개의 아이디어가 선정 된 후 5명씩 팀을 지어서 하게 된다. 운이 좋게 내가 제안한 아이디어가 선출이 되어서 시작하게 되었다. 아이디어를 선택한 팀원 들도 매우 좋은 사람들이어서 훌륭한 환경 속에서 진행하게 되었다.
서비스이름은 개장모(개발자 장비모임)로 개발자들이 자신의 개발환경과 장비를 소개하고 공유하는 플랫폼이다.
본격적으로 시작하기에 앞서 기획을 조금 더 구체화 해보았다. 생각보다 기획을 매우 축소시켜야 정해진 기간안에 출시할 수 있기 때문에 최소한으로 진행하려고 노력했다. 추후 서비스 기능 추가를 하는것으로!
Planning Poker 플래닝 포커
캡틴이 제안한 플래닝 포커 방식으로 백 로그에 대한 우선순위를 정해보았다. 플래닝 포커의 방식은 먼저 백 로그(피쳐)에 대해 상대적 시간 값을 각자 던진다. 그리고 그 숫자 중 제일 낮게 나온 것과 높게 나온 것의 차이에 대해 논의한다. 숫자를 제안한 사람들은 각 기능에 대한 값들을 계산해 일정이 얼마나 걸린다고 명확한 일 수로 말할 수 있어야 한다. 이로써 얻는 이점은 그 기능에 대해 명확히 할 수 있고 일정을 잡는데 큰 도움을 준다.
실제 종이로 해도 되지만 우리 팀은 구글 docs로 실시간으로 진행하였다.
팀원 중에 구글 docs 의 장인이 있어서 매우 편하게 진행하였다. (액셀 함수를 적용을해서 평균 값 혹은 최대 최솟값도 옆에 셀에 자동으로 뜨게 만들었다. 덕분에 매우 편하게 진행했다.) 이런방식으로 문서 하나를 두고 여러 사람이 동시에 접속해서 플래닝 포커를 할 수 있다.
1주차 백로그 목록
구글 docs 에 마일스톤 딱지를 만들어서 붙였다. 중요도를 기반으로 sorting을 하고 각자 한명씩 pull 방식으로 하나씩 가져가는 것이다. 각자 작업이 끝났다면 다음 중요도의 작업을 가져가는 방식이 pull 방식이다. 강압적인(?) push 방식과는 다른 방식이다. 무엇이 더 좋다고 말할 수는 없지만 이런 방식도 처음 해보기 때문에 신선했다. 하지만 팀을 위해서 강압적인 방식도 일부 있어야 된다고 생각은 한다. 모든지 극단적인 것은 좋지 않다. 각 진영의 장점들을 취합해서 최적의 퍼포먼스를 내는 것이 중요하다.
일정을 조금 무리하게 잡았는데, 그 이유는 총 4주라는 기간동안 안에 완성해야 하기 때문이다. 대신에 2주안에 끝내는 것을 목표로 했다. 1주차 마일스톤이 1주차에 끝날지는 않았는데 최대한 2주안에 빡빡하게 집어넣었다. 3,4주차에는 밀린 것들과 추가기능, 베타 테스트를 해보아야 하기 때문이다.
레포지토리 관리
다음과 같이 Project 탭을 이용해서 관리한다.
저장소는 Organization으로 만들었다. (1주차 현재상황 모습)
같이 할 때 모습...
큰 회의를 할 때는 화이트보드에서 같이 그려보면서 이야기를 한다.
매일 오후 쯤 회의실도 예약해서 같이 작업 내용에 대해서 상의를 한다. 시설이 너무 좋아서 기분이 좋고 팀원 들도 뛰어나서 너무 기분이 좋다.
혼자 할 때 모습..
혼자 할 때도 항상 공책에 그려 본다.
디자인..
팀원 중에 디자인 전공한 사람이 있어서 이것 또한 수월하게 할 수 있었다.
1주차 나의 작업 목록
앱 서버의 Product 정의
todo
제품 검색 서버의 구축
나는 제품 쪽을 맡았다. 먼저 검색 서버를 따로 만들었다. 메인 앱 쪽에서 제품을 검색 했을 때 검색 데이터를 적절히 가공해서 넘겨주는 서버이다. api는 네이버 검색 api를 연동 했고 RestTemplate을 이용해서 api 호출을 구현했다. api 호출부분을 mock으로 테스트하고 실제 api 키를 통해서 통합테스트도 진행했다.
open source 배포
앱에서 사용하는 유틸 모듈을 jcenter에 배포하였다. 굳이 필요는 없었지만 한 번도 해본 적 없는 작업이었다. 그래서 공부차원에서 해보기로 하였다. bintray를 이용해서 배포를 해보고 앱에서 의존성을 추가해 사용해보는 것 까지 진행했다.
https://pjh3749.tistory.com/275
config 서버 구축
api 키와 비밀번호, 디비 설정 정보들, 그리고 앱에서 사용하는 각종 설정 정보들을 숨겨야 해서 설정을 분리하는 방법을 찾아보았다. Spring Cloud Config라는 것을 발견했고, 주말 간 삽질을 통해서 겨우 만들어 보았다. 거의 인내심 한계까지 도달 했는데 다행히 작동은 했다. 코드양은 거의 없는데 인프라 지식이 부족해서 힘들었다. 하면서 많은 공부가 되었다.
https://pjh3749.tistory.com/276
배포
아직 앱이 각자한 작업들이 조립이 되지 않아서 도커로 젠킨스를 띄워만 놓았다. 2주차에 작업이 합쳐지면 그 때부터 연결할 생각이다.
느낀 점
4주간 올인을 해보자.