팀바팀 3주차 회고 (개발 시작)
기간: 23/07/10 ~ 23/07/14
https://github.com/woowacourse-teams/2023-team-by-team
GitHub - woowacourse-teams/2023-team-by-team: 대학생이 여러 팀플을 하는데 쉽게 협업을 할 수 있도록 도와
대학생이 여러 팀플을 하는데 쉽게 협업을 할 수 있도록 도와주는 서비스😎. Contribute to woowacourse-teams/2023-team-by-team development by creating an account on GitHub.
github.com
드디어 개발이 시작되었다. 이번주 뭐했더라… 흐으음 개발속도가 생각보다 느리다. 근데 이거보다 더 빨리 할 수 있을까? 왤케 천천히 진행되는 것 같지. 뭔가 애매하게 진행되고 있어서 조급할 때가 많은 것 같아 아쉽다…
이번주에 진행한 일정
- 스프린트 회의
- 전체 스프린트 회의
- 프론트 스프린트 회의
- UX 워크숍
- 이슈 관리 및 일정 추정
- Git 브랜칭 전량 세우기
- 캘린더 디자인 픽스
- 일정 등록 모달
- 일정 조회 모달
- 개발
- 공통 컴포넌트 구현(Text, Modal, Button)
- 캘린더 로직 구현
- API 논의
- 일정 등록 및 조회 모킹 구현
스프린트 회의
우리팀은 데모데이 발표 기간인 2주를 기준으로 잡고 스프린트로 개발을 진행하고 있다. 그동안은 기획에 시간을 많이 썼기 때문에 스프린트가 무의미했지만 본격적인 개발이 시작되고나선 유의미해지고 있다.
전체 스프린트 회의
전체 스프린트 회의에서는 공통의 목표를 잡았다. 또한 파트별로 개발의 순서는 약간씩 다르지만 큰 틀에서는 개발 진행 상황이 비슷해야 자주 연결해볼 수 있을 것 같다는 생각이 들어 작업 우선순위도 같이 정했다.
- 스프린트 목표 (2주)
- ‘팀 캘린더’, ‘통합 캘린더’ 완성
- 스프린트 시작 지점
- 2023.07.10
- 작업 목록에서 스프린트 정하기
- 작업 목록의 우선순위 정하기
- 스프린트에서 정한 모든 작업 목록을 칸반보드에 등록하기 (기능 목록)
- 작업 배분하기
- 작업자가 명확한 경우를 제외하고 작업을 배분하지 않기
- 우선순위에 따라 본인이 각자 본인의 업무 할당하기 (스스로 주도적으로 업무 선택)
이번 스프린트의 최우선 개발은 팀 캘린더이다. 통합 캘린더의 경우에는 팀 캘린더가 완료된다면 어렵지 않게 해결할 수 있다고 생각하기도 하고 큰 도메인을 같이한다면 자잘한 이슈들은 각자 쳐낼 수 있으니 정 안되면 나중에(데모데이 3차쯤?!) 파트 분배를 해서 고도화 할 듯하다.
프론트 스프린트 회의
전체에서 산정된 이번 스프린트 목표를 바탕으로 프론트 스프린트 회의를 통해 조금 더 세부적으로 요구사항을 나누어보았다. 본격적인 개발은 이제 시작이기에 시행착오를 최대한 적게 겪기 위해 생각을 했다. 그래서 일단은 가장 많이 사용할 것 같은 세가지의 공통 컴포넌트를 정해 온보딩 느낌으로 각자 개발해보기로 했다.
- 공통 컴포넌트
- 공통 컴포넌트이므로, 범용적으로 사용될 수 있고 도메인 로직이 섞여있으면 안 됩니다!
- 스토리북으로 테스트 작성
- Text
- 루루
- Button
- 요토
- Modal
- 유스
- 캘린더 페이지 생성
- UI
- 달력 한칸
- 일정 컴포넌트
- 이전달, 다음달로 움직이는 버튼
- (오늘 날짜 하이라이트)
- UI
- 팀 캘린더에 등록된 일정을 수정
- 팀 캘린더 일정을 삭제
- 팀 캘린더 특정 일정 조회 (특정 일정)
- 일정 컴포넌트에 이벤트 달기
- 일정 조회 모달
- 수정 & 삭제 버튼
- 팀 캘린더 일정 조회 (기간)
- 해당 달 등록된 일정 조회
- 전달, 다음달도 함께 API요청(후순위)
- 필요한 데이터만 가공해서 렌더링
- 팀 캘린더에 일정을 등록한다.
- 일정 등록 모달 (내용, 일정 기간)
UX 워크숍
공통 강의로 진행된 수업이다. 우리의 서비스가 사용자에게 없어선 안될 진통제인지, 있으면 좋은 비타민인지 판단할 수 있도록 도와주는 강의였다.
- 비타민보다는 진통제같은 서비스를 만들어라.
- 진통제 같은 서비스 핵심 기능에는 무엇이 있을지 생각해보기
- 전문가는 어떤 의사 결정을 통해 해결하는가?
- 서비스를 사용한 후에 더 팀플이 잘 됐는가?
- 어떻게하면 이러한 경험을 느끼게 할지 생각해보기
- 핵심 기능이 유용하면 UI가 조금 아쉽고, 기능 구현이 덜 돼도 사용자들이 모인다.
- 핵심 기능이 잘 정의되어야 초반부터 사용자에게 피드백을 잘 받을 수 있다.
이슈 관리 및 일정 추정
공통 강의로 진행된 수업이다. 각 팀마다 이슈를 어떻게 관리하고 일정을 추정하는 방식을 정하긴 했지만 조금 더 고도화 할 수 있도록 알려주는 강의였다. 미리 일정 관리하면서 발생한 어려움이나 질문을 설문을 통해 수집한 후 같이 이야기 하는 시간을 가졌었다.
아래는 고도화 시킨 팀바팀의 일정 추정 방식이다.
일정 추정
- 스프린트 회의를 통해 일정 추정을 한다.
- 공통 회의에서는 구현할 기능 범위와 기능 구현 순서를 정한다.
- 파트별 회의에서 세부적인 이슈를 생성하고 일정을 추정한다.
- 일정 추정 시에는 스토리 포인트를 사용한다.
- 가장 작은 이슈를 기준 이슈로 선정하고 해당 이슈의 스토리 포인트를 산정한다.
- 나머지 이슈들은 기준 이슈를 기준으로 스토리 포인트를 산정한다.
- 스토리포인트의 범위는 1 ~ 10점 사이의 정수로 한다.
- 스토리 포인트의 단위는 아래 2가지 방안중 추후 1가지를 선정한다.
- 가장 최소 단위의 이슈를 1로 보고 상대적으로 결정한다.
- 1점 당의 시간을 산정해 절대적인 단위로 결정한다.
- 스토리 포인트의 단위는 아래 2가지 방안중 추후 1가지를 선정한다.
- 일정추정이 필요한 항목에 따라 모든 팀원이 필요하다고 생각하는 시간을 작성한다.
- 팀원들간 해당 점수를 산정한 이유에 대해 이야기를 나누고 최종 점수를 결정한다.
- 스토리포인트의 범위는 1 ~ 10점 사이의 정수로 한다.
Git 브랜칭 전략 세우기
공통 강의로 진행된 수업이다. 각 브랜칭 전략의 장단점을 같이 알아보고 각 팀에 맞는 브랜칭 전략을 세우는 시간이었다. 팀바팀도 어느정도 브랜칭 전략이 있었지만 세세하게 정하지는 않았기 때문에 이번 기회에 팀바팀 브랜칭 전략을 더 꼼꼼히 세웠다.
브랜치 전략
main | 배포 가능한 브랜치 | 안정적으로 배포할 수 있는 코드 |
develop | 기능을 통합하는 브랜치 | 개발이 끝난 기능을 통합하는 branch로 머지 후 삭제하지 않는다. |
feat | 신규 기능 개발 | 최신 develop 블에서 checkout 한다. 기능 구현 후 develop branch에 merge하면 삭제한다. |
hotfix | 운영 중 발생한 issue를 fix하는 branch | 최신 main branch에서 checkout한다. 이슈를 fix한 다음 main branch에 merge 후 삭제한다. |
Merge 전략
기능 통합 | |
(feat → develop) | squash Merge |
배포 준비 | |
(develop → main) | rebase → Merge |
💡 Branch protection rules
develop 브랜치
pull request 필수(push 불가)
approvals 최소 2개 필수
conversation 해결 필수
setting bypassing 불가
main 브랜치
pull request 필수(push 불가)
setting bypassing 불가
문제가 생기는 경우 settings에서 Branches-Branch protection rules 설정
캘린더 디자인 픽스
팀바팀은 디자인이 완벽하게 픽스되지 않고 개발하면서 디자인을 하는 방식으로 프로젝트를 진행하고 있다. 그 때문인지 캘린더를 개발하기로 한 날까지 디자인이 안나왔다. 불안한 나머지 내가 디자인을 했었다. 저번에 정해진 디자인 시안들을 기준으로 디자인 했음.
흠 투박하긴 해도 나름 열심히 디자인했다..
다른 팀원의 의견도 들어가야 하니 만들면서 팀원들에게 내일까지 디자인 가져오지 않으면 투표권만 있고 디자인 고나리 불가라고 통보했다. 마냥 기다릴 수 없어!! 아무튼 그렇게 해서 완성된 최종 캘린더 페이지는 아래와 같다.
조금 더 깔끔해지고 입체적이다! 통합캘린더는 또 이후에 개발할 때 디자인하기로 했다ㅋㅋㅋ 디자인 하루살이들…
일정 등록 모달
일정 등록 모달도 개발하다가 등록 연결해야 할 때 디자인했다. 하는 김에 조회 모달도 같이 디자인함. 등록 모달은 내가 완전 다 디자인했다 (수정없었음 Vv) 수정 모달은 유스꺼라 처음에는 버튼 색상 달랐는데 조금 수정해서 버튼 색상 맞췄더니 나름 짝으로 보인다.
개발
이번주에 개발은 공통 컴포넌트 구현과, 캘린더 랜더링 로직이 주 되었다. 컴포넌트 UI 구현과 같은 건 각자 주말동안 해오는 것이 더 효율있어서 같이 해야하는 일들 위주로 진행했다. 또한 백엔드와 API 관련 논의를 진행해 캘린더 부분의 CRUD는 완성이 되었다. 코드는 팀 레포에서 구경하세뇽~
- 공통 컴포넌트 구현(Text, Modal, Button)
- 캘린더 로직 구현
- 일정 등록 및 조회 모킹 구현
https://github.com/woowacourse-teams/2023-team-by-team
GitHub - woowacourse-teams/2023-team-by-team: 대학생이 여러 팀플을 하는데 쉽게 협업을 할 수 있도록 도와
대학생이 여러 팀플을 하는데 쉽게 협업을 할 수 있도록 도와주는 서비스😎. Contribute to woowacourse-teams/2023-team-by-team development by creating an account on GitHub.
github.com
API 논의
이번주엔 크론이랑 한 시간정도 수다 떨었었는데 그때 팀플 관련해서 이것저것 허점을 물어보셔서 많이 당황했다. 진짜 순살이 되듯,, 텉털 털렸다ㅎㅎ헤ㅔㅔㅎㅎ.. 크론과의 대화에서 내가 내린 결론은 팀바팀의 요구사항을 모두 구현하기 어려울 것 같다는 것! 그래서 아마 캘린더쪽을 더 보완하고 팀 채팅방 기능을 다른 기능으로 대체하게 될 것 같다. 정해야한다는 것이 하나 더 생겨서 불안했다. 그래도 크론 덕분에 부족한 부분도, 과대평가한 부분도 알게되어서 정말 감사하다고 느끼는 중! 다만 관련된 도메인은 이번 스프린트 기간의 주제는 아니기 때문에 다음 스프린트 기간에 다시 논의해보기로 했다. 해야하는 일부터 해결햇! 우리,, 잘,, 하고 있지?ㅎㅎㅠㅠ 화이팅해서 꼭 만족스러운 결과를 얻자 팀바팀