JAVA/우아한테크코스 4기

[우아한테크코스] 레벨3 프로젝트 시작_ 내 마음을 편지로, 내편 📮

kth990303 2022. 7. 5. 22:37
반응형

우테코에서는 레벨3부터 본격적으로 프로젝트를 2달 동안 구현하는 시간을 가진다. 총 8주의 시간동안, 2주마다 4번의 데모데이를 진행하며, 매번 에자일하게 개발하도록 한다. 즉, 2주마다 조금씩 기능을 구현하는 것이 아닌, 특정 기능을 완성시키고 거기에 이어서 살을 덧붙이는 느낌으로 진행한다. 따라서 매 데모데이마다 특정 기능은 완성된 상태로 프로젝트 결과물을 선보여야 하는 것.

 

우리는 모임을 기반으로 하는 롤링페이퍼 프로젝트를 만드려고 한다. 내마음을편지로, 줄임말로 내편 이라는 이름으로 프로젝트명을 지었으며, 레포 이름은 2022-nae-pyeon이 되었다. 아래 레포에서 확인 가능하다.

https://github.com/woowacourse-teams/2022-nae-pyeon

 

GitHub - woowacourse-teams/2022-nae-pyeon: 내 마음을 편지로, 내 편 📮

내 마음을 편지로, 내 편 📮. Contribute to woowacourse-teams/2022-nae-pyeon development by creating an account on GitHub.

github.com


프로젝트 주제 생성

프로젝트 팀원은 총 6명이다. 백엔드는 나(케이), 제로, 승팡, 알렉스이며, 프론트엔드는 소피아, 도리.

레벨2 방학식 때 팀원이 결정됐으며, 3기 때와 다르게 4기 때는 완전 랜덤으로 짜여졌다.

상당히 신기했던건, 6명 중 3명이 근로활동을 하는 크루들이며, 그 3명(나, 제로, 소피아) 모두 다 지원플랫폼 제작근로라는 것이다. 덕분에 일정을 맞추기 편할 듯하다.

 

담당코치는 브리. 나의 경우는 레벨1 브리조, 레벨2 브리조에 이어 레벨3 프로젝트까지 브리와 함께 하게 돼서 브리의 아들이라는 소문까지 났다ㅋㅋㅋ 브리 커피 쿠폰까지 나한테 있기 때문에 나중에 커피 사달라고 할 예정이다 ㅎㅎ

 

레벨3 시작때까지 기획서를 작성해야 했기 때문에, 방학 때 매주 모여서 기획 회의와 함께 간단한 기능 명세서를 작성해서 제출했다.

처음에는 우테코 위키를 만들어서 크루들의 스토리 및 우테코 역사를 작성하려 했었다. 그러나 위키 특성 상 굉장히 사용성이 자유롭고, 위키 에디터와 부트스트랩을 사용해버리면 개발할 것이 너무 없다는 문제점이 존재했다. 따라서 회의 결과, 조금 방향을 틀어서 크루들의 스토리를 서로 써줄 수 있고 특정 모임에게도 롤링페이퍼를 써주면서 역사를 남겨줄 수 있는 `모임 기반의 롤링페이퍼` 프로젝트를 만들기로 결정했다.

 

이 프로젝트를 생각한 이유는 아래와 같다.

 

  • 롤링페이퍼 사이트는 흔하게 존재하나, 마이페이지가 존재하는 추억용 롤링페이퍼 사이트는 거의 없다. 싸이월드 같은 미니홈피를 떠올릴 수도 있겠지만, 우리는 롤링페이퍼에 초점을 맞추어서 최대한 그 외 기능은 제외한다.
  • 개인에게 롤링페이퍼를 작성해줄 수 있는 사이트는 흔하나, 모임에게까지 롤링페이퍼를 작성할 수 있는 사이트는 흔치 않다
  • 우테코에서 감동크루 및 회고를 작성할 때, github discussion을 이용한다. 우리가 이 기능을 편하게 이용할 수 있도록 만들어주면 어떨까?
  • 마이페이지, 익명 기능, 알림 기능 등을 다양하게 추가할 수 있어 기술적으로 트러블 슈팅 경험을 다양하게 할 수 있을 듯하다.

팀문화

초기에 노션에 작성했던 팀문화는 아래와 같다. (레벨2 방학식 때 작성)

# 팀 문화
---

- 데일리, 회고
    - 각자 컨디션, 작업 진행 상황, 각자 스케줄 공유
    - 찐한 회고의 시간 (일주일에 한번쯤)
    - 회의 중간에 쉬는 시간 무조건 정하기
    
- 회의
    - 서기를 누가 할 것이냐? (매일 바꾸기)
    - 회의록이나 명세서를 수정하지 말기!
    - 프론트와 백이랑 서로 이해하기 쉽게 이야기하기
        - 서로 각자의 영역에서 이야기가 길어지면 따로 프론트엔드, 백엔드 부분별로 회의하기
    - 회의는 최대한 오프라인이면 좋겠다
    - 회의 중간에 쉬는 시간 무조건 정하기
    
- 규칙
    - 지각하지 말기!
    - 프로젝트 진행 시간을 딱 정해서 하기!
    - 의견이 나온다면 이모지라도 눌러주기 (무언가 글을 확인했다는 표시 남기기)
    
- 개발 문화
    - 기능 단위로 나눈 후에 페어를 할지 안할지 정해보기
    - 초기에는 페어로 했다가, 이후에 페어 찢기
    - 초기에 같은 영역끼리 페어 → 이후에 프론트-백 함께 페어
    - 유동적으로 상황에 맞게 정해보자
    - 모든 인원의 approve를 받아야 하도록
    - restdocs를 활용한 api 자동 문서화

현재는 대체로 잘 지켜지고 있다.

회의도 오프라인으로 진행되고 있고, 진행자와 서기 모두 매일매일 변경되고 있다. 개발 방식은 처음에는 BE는 2인/2인 분업 페어로 했다가, 컨벤션 통일 때문에 이후에는 4인 협업으로 진행하고 있다. FE는 2명이어서 페어로 잘 진행되고 있는 듯하다.

 

매일 다같이 모여서 진행상황 브리핑, 오늘 하루 컨디션을 얘기하는 시간을 가지고 썰푸는 시간도 가져서 분위기도 화목하게 잘 유지되는 중.


Notion, Github 컨벤션 설정

현재 우리가 채택한 방안은 아래와 같다.

 

  • 데일리 회의, 진행 회의록 등 회의 내용은 notion에 기록.
  • 기술적 이슈, 디스커션, 관리는 github으로
  • github issue template 생성 (https://github.com/woowacourse-teams/2022-nae-pyeon/pull/33)
  • github issue 생성 -> 해당 issue 관련 PR 제출 -> pr merge 시 issue 자동 close하도록 
    • PR을 작성할 때, close #{issue번호} 를 작성해주면, 해당 PR merge 시 이슈도 자동으로 닫힌다.
  • github PR merge할 때, 공동 작업자가 있을 경우 아래 문구 작성해주기
Co-authored-by: {github 핸들명} <github 이메일>

ex. Co-authored-by: kth990303 <kth990303@naver.com>
  • Git Flow
    • main
    • develop (default) : 데모데이 때마다 main 으로 merge
    • feature, chore, docs 등등 : PR은 upstream의 develop으로
      • 해당 브랜치는 이슈번호 및 상세 내용까지 브랜치명에 담아주기
      • ex. feature/10-rollingpaper-crud
  • 기술적 컨벤션 불일치로 인한 회의 내용은 notion 또는 github discussion으로.
  • github issue, PR 라벨을 붙여서 분류하기 편하게 한다.

 

예쁘게 정리된 라벨

 

추가적으로 생각 중인 것

  • github Wiki
    • 프로젝트 설명, 트러블 슈팅 경험 등을 wiki로 관리하는 것은 어떨지 고민중이다.
    • 노션, restdocs 등 이미 충분히 좋은 대체제들이 많아서 후순위이긴 하다.

 

  • github actions를 이용한 CI/CD
    • 매 PR마다 test를 자동으로 돌려주고 실패 시, 해당 pr은 close 시켜버리도록
    • 아직은 크게 고려하고 있지 않음.

2주차동안 구현할 내용

현재까지 구현된 부분

포스트잇은 메시지, 해당 포스트잇의 모음집은 롤링페이퍼이다.

(ex. kth990303에게 보내는 롤링페이퍼, '신난다' -> 메시지에 해당된다.)

 

  • 롤링페이퍼를 CRUD할 수 있다.
    • U에 해당되는 부분은 롤링페이퍼 타이틀이다.
  • 롤링페이퍼 내에 메시지를 CRUD할 수 있다.
  • 회원, 모임 관련 기능은 구현하지 않는다.
  • 우리만의 로고를 디자인해본다.

 

현재, 거의 대부분은 구현된 상태이다. (덕분에 매일매일 밤까지 우테코에서 코딩한듯... 원래 나랑 제로는 18시 칼퇴러인데 ㅎ.. 그래도 정말 뿌듯하다)

 

기술적으로 더 자세한 이슈는 여기서 확인할 수 있다.

https://github.com/woowacourse-teams/2022-nae-pyeon/issues

 

GitHub - woowacourse-teams/2022-nae-pyeon: 내 마음을 편지로, 내 편 📮

내 마음을 편지로, 내 편 📮. Contribute to woowacourse-teams/2022-nae-pyeon development by creating an account on GitHub.

github.com


1주하고도 조금 더 프로젝트를 개발해보면서 다양한 이슈들이 생겼다. 특히, JpaRepository 계층 추상화 관련 이슈가 있었다. 확실히 프로젝트를 하면서 다양한 트러블 슈팅 경험들을 많이 채울 수 있을 것 같아 좋다 ㅎㅎ

 

기술적 트러블슈팅은 생길 때마다, 그리고 시간이 된다면 블로그에 꼭 포스팅할 예정이다.

 

팀원들이 모두 친절하고 으쌰으샤 해주는 분위기여서 문제없이 잘 진행되는 중이다.

빨리 데모데이 끝나고 팀회식하는 날이 왔음 좋겠다! :+1 

 

반응형