레벨3가 끝이 나면서 우아한테크코스 데모데이도 4차 최종까지 끝이 나게 됐다! 원래는 3차와 4차를 따로 쓰려 했지만, 필자의 귀차니즘으로 인해 3차와 4차를 한꺼번에 묶어서 쓰게 됐다 ㅎㅎ
이와 함께 우리 프로젝트도 레벨3가 끝남과 동시에 출시가 됐다.
아직 리팩터링하고 싶은 부분, 구현하고 싶은 부분이 좀 남아있어서 메이저버전을 올리지 않은 0.4.1 버전이긴 하다. 하지만 자유롭게 모임을 생성해서 롤링페이퍼와 메시지를 쓰고 마이페이지에서 그에 대한 정보를 확인할 수 있으니 편하게 접속해서 롤링페이퍼를 이용해주면 좋을 듯하다.
우리가 만든 프로젝트를 구경하려면 위 링크로 접속하면 된다 :)
모임 기반 롤링페이퍼 서비스 플랫폼이기 때문에 누구든지 자유롭게 공개모임, 비밀모임을 생성할 수 있도록 하였다.
비밀모임은 초대링크를 통해서만 초대된다.
롤링페이퍼 대상을 모임에게 쓸지, 멤버에게 쓸지 선택할 수 있다.
롤링페이퍼 내에는 여러 메시지를 작성할 수 있다. 자유롭게 익명, 비밀 옵션을 설정하여 이용하면 된다!
롤링페이퍼, 메시지를 쓰면서 서로 친목을 다지고, 솔직하게 전하지 못한 말들을 온라인으로 자유롭게, 간편하게 보내면 된다.
버그가 존재한다면 이 포스팅에 댓글로 남겨주거나, 아래 깃허브 홈페이지에 이슈를 생성해서 자유롭게 남겨주면 좋겠다 :)
실제로 친구들이 QA를 열심히 해준 덕분에 사파리 브라우저에서 일부 버그가 있다는 것을 확인하기도 했다.
https://github.com/woowacourse-teams/2022-nae-pyeon
또한, 이 포스팅에서 BE, FE 코드 설계에 대한 부분은 생략할 예정이다.
코드가 보고 싶다면 위 깃허브 링크로 들어가서 확인하면 된다.
프로젝트 구조 및 인프라
처음에는 CI/CD를 Jenkins에게 모두 맡기고 있었다. 2차 데모데이 후기 포스팅을 봤다면 프로젝트 구조가 위와 다르다는 것을 인지할 수도 있겠다.
EC2가 추가되고 프로젝트 크기가 커지다보니 t4g.micro 인스턴스를 사용하고 있는 Jenkins에서 버거워하는 게 느껴졌다. 가끔씩 젠킨스 서버가 다운되기도 했다. 그렇기 때문에 PR build test를 진행하는 책임을 Github Actions에게 위임하기로 결정했다.
실제로 AWS CloudWatch로 Jenkins CPU 점유율을 확인했을 때, Github Actions 역할 위임 전과 후가 확실히 차이나는 것을 확인할 수 있다.
웹서버를 추가하고 HTTPS를 적용했다.
웹서버로는 NGinx를 사용하기로 했으며, Certbot을 이용해 무료 인증서인 Let's Encrypt TLS를 발급받았다.
이후에 규모가 커져 여러 WAS가 생긴다 하더라도 NGinx가 로드밸런서 역할을 해줄 것이라 생각하니 든든하다.
BE에서는 Sonarqube를 이용하여 정적 코드 분석을 하여 취약점을 확인할 수 있도록 했다. 소나큐브를 github plugin과 연동하여 PR을 보낼 때, BE에 변경분이 있다면 sonarqube가 PR에 댓글을 달아 테스트 커버리지, 이슈, 취약점 등을 분석한 결과를 댓글로 달아준다. 위 사진은 소나큐브 홈페이지에 들어가서 리포트를 확인한 것이다.
FE에서 테스트 자동화를 진행하였는데, 여기에는 Jest와 함께 Storybook, React Testing library를 이용하였다. 컴포넌트 단위 테스트를 철저하게 진행할 수 있도록 하기 위해서 Cypress 대신 Jest와 React Testing Library를 이용했다고 한다.
성능 리포트를 공유할 수 있도록 lighthouse를 사용했다.
lighthouse를 통해 LCP(공통 접두사 길이를 구하는 알고리즘이 아니다...) 가 느리다는 것을 알 수 있었고, 이를 통해 번들 사이즈를 줄이겠다는 목표를 세울 수 있었다.
그 외에 로깅 전략을 수립하여 log4j2로 로그 파일을 생성하도록 하기도 했고, flyway DB 형상관리 툴을 이용하여 스키마 버전관리의 용이성을 높이기도 했다.
https://kth990303.tistory.com/357
https://kth990303.tistory.com/369
내편 프로젝트 개발 모습
몹 프로그래밍
내편에서는 스프린트마다 하나 이상의 주제로 몹 프로그래밍을 진행했다.
BE, FE의 코드 변경이 모두 필요하며 흐름을 모두가 이해하는 것이 좋을 때 몹 프로그래밍 주제로 선정되곤 한다.
위 사진은 OAuth 로그인 구현을 몹 프로그래밍으로 진행할 때의 사진이다.
데모데이 발표 응원 모습
레벨3 기간동안 총 4번의 발표가 있었는데, 우리는 매번 발표때마다 노트북 또는 아이패드로 응원문구를 띄워주곤 했다.
그 결과 다른 크루들에게 어그로가 끌려 사진이 찍히기도 했고, 심지어 우테코 인스타에도 우리의 모습이 올라왔다 ㅋㅋㅋ
회고
데모데이를 마치면 회고를 진행하고, 팀 문화가 어땠는지 되돌아보는 시간을 가진다.
위 사진은 최종데모데이(4차)를 진행하면서 우리의 팀 문화, 우리의 개발모습이 어땠는지 포스트잇으로 되돌아본 시간을 가진 것이다.
주1회 팀 세미나를 통해 각자 분업한 내용을 설명해줌으로써 모두가 해당 부분에 대한 지식을 쌓을 수 있게 하였다. 스프린트 단위 별로 첫째주 목요일, 둘째주 화요일마다 진행했다. 사진이 없는 점이 아쉽다.
프론트-백 몹 프로그래밍을 통해 진행상황 및 흐름을 공유할 수 있도록 했다.
지각하면 커피 사기... 커피를 공짜로 마실 수 있는 좋은 팀문화 ㅇㅈ합니다.
10시 30분 출근은 정말 기똥찬 팀문화였다. 30분의 여유가 정말 컸다 ㅎㅎ
매 스프린트가 끝날 때, 또는 중간에 일탈이 당길 때엔 애슐리 회식, 곱창 맛집 찾아가기, 얼음 소주 먹기, 달무티 보드게임 하기 등을 재밌게 즐기곤 했다 ㅎㅎ
이번 프로젝트를 통해 개발, 인프라 세팅 관련해서 많은 걸 배울 수 있었다.
그 뿐만 아니라 팀원들과 협업 및 소통하는 방법을 배울 수 있었던 뜻깊은 프로젝트였다.
레벨4 때에도 이 프로젝트를 리팩터링, 일부 기능 추가를 통해 1.0.0 버전을 출시할 수 있으면 좋겠다 :)
내편 화이팅!
'JAVA > 우아한테크코스 4기' 카테고리의 다른 글
[220913] 우아한테크코스 레벨4 - 톰캣 구현하기 미션 후기 (0) | 2022.09.13 |
---|---|
[우아한테크코스] 레벨3 레벨로그 인터뷰 후기 (10) | 2022.09.05 |
[220722] 우아한테크코스 2차 데모데이 후기 (6) | 2022.07.24 |
[220708] 우아한테크코스 1차 데모데이 후기 (0) | 2022.07.22 |
[우아한테크코스] 레벨3 프로젝트 시작_ 내 마음을 편지로, 내편 📮 (4) | 2022.07.05 |