3차 프로젝트 회고
프로젝트 기간 - 2024년 10월 21일 ~ 2024년 11월 08일
프로젝트 명 - Kinderpia
프로젝트 내용 - 부모와 아이들이 함께할 공간을 소개하고 모임을 만들어 함께 할 수 있는 플랫폼
프로젝트 Repo - https://github.com/ymind14563/kinderpia_back
KEEP: 잘한 점
- 자유로운 의견 공유 및 소통
- 중간 결과물 체크 및 상황 공유
- Docker, Jenkins 활용
- WebSocket과 STOMP를 활용한 채팅
- 적절한 역할 분배
- 세부적인 문서화
PROBLEM: 아쉬웠던 점
- 향후 팀원 부재에 대한 염려로 프로젝트를 작게 구성한 점
- 같은 이유로 각 팀원 맡은 역할이 적음
- 회의를 진행하는데 결론이 미흡한 상황의 반복
- 프로젝트 진행 도중 트러블 슈팅 블로그 작성
TRY: 다음에 챙길 것
- 배포 진행 여유시간 확보
- 목데이터 활용한 테스트 코드 작성
- 추가 기능 코드 수정 여부에 대한 면밀한 생각
- 프로젝트 진행 도중 트러블 슈팅 블로그 작성
잘한 점
3차 프로젝트는 많은 인원이 있었음에도 불구하고 의견 공유가 좋았습니다.
발언권자가 많다는 것은 서로 다른 생각으로 인해 계획 수립에 어려움이 있을 수 있지만
다수결의 원칙도 잘 따랐고, 서로 다른 생각으로 대립이 있어도 잘 해결되었습니다.
AWS 환경에서 Docker와 Jenkins를 활용하였습니다.
WebSocket과 STOMP를 활용한 채팅 기능 구현하였습니다.
아쉬운 점
떄떄로 회의의 결론이 명확히 나지 않는 점이 아쉬웠습니다.
많은 의견을 주고 받다보니 다양성은 좋았지만 결론이 아쉬울 떄가 있었습니다.
그로 인해 정작 프로젝트 진행하는데 있어서 다시 회의를 해야하는 과정이 필요했습니다.
매칭데이(취업연계)가 프로젝트 기간 도중에 있다보니 갑작스런 인원 공백을 염려하여 프로젝트 규모를 작게 구성한 점이 아쉬웠습니다.
Docker와 Jenkins를 활용하여 CI 는 성공하였지만, CD는 실패하였습니다. 좀 더 안되는 부분을 연구하여 성공시켜보고 싶었지만, 아쉽지만 일정 상 문제로 인해 기존 방식으로 처리하였고 추후 다시 적용시켜볼 계획입니다. (11/15 기준으로 성공)
3차 프로젝트가 끝났습니다.
3차 프로젝트는 인원이 8명으로 진행되었습니다. 그리고 프로젝트 기간 중 매칭데이 일정이 있었습니다. 이전 프로젝트 진행 당시 갑작스런 인원 공백이 있었던 경험이 있었던터라, 갑자기 많은 인원이 빠질 것을 염려하여 프로젝트 크기를 작게 진행하게 되었습니다. 물론 결론적으로 접근하면 아주 큰 프로젝트를 만들어볼 수 있는 기회가 될 수 있었기에 이 부분이 좀 아쉬웠습니다.
회의와 결론의 명확화
많은 인원이 있었기에 생각이 모두 달라 회의 진행에 어려움은 좀 있었지만, 다수결의 원칙도 잘 따랐고 서로의 생각을 이해하고 설명하는 과정을 잘거쳤기에 회의는 진행에 문제가 없었지만, 때때로 결론이 명확히 나지않고 진행되는 부분이 있었습니다. 이로 인해 정작 코드를 작성하는 시간에 회의를 추가적으로 하는 경우가 발생했습니다. 마무리가 정확히 나지 않는 주제는 확실히 정하고 넘어갔으면 어땠을까라는 생각이 듭니다.
초기에 세부적으로 문서화 작업
이전 프로젝트와 달리 업무적으로 소통도 잘되었고 처음부터 문서를 세부적으로 작성하였습니다. 그러다보니 코드 작성 이전 회의 시간은 길었지만, 결론적으로는 일정을 잘 소화할 수 있게하는 요인이 되지 않았나 생각이 듭니다.
적절한 업무 배분
프로젝트 진행 중 적절한 업무 배분으로 인해 각 팀원이 맡은 역할에 집중할 수 있었습니다. 역할을 나눌 때 각자의 원하는 바를 반영하여 진행하였고, 모든 팀원이 프로젝트의 주요 기능에 기여할 수 있도록 하였습니다. 다만, 역할이 적었기 때문에 각자가 더 다양한 기능에 도전해 볼 수 있었던 기회를 놓친 점이 아쉬웠습니다.
Docker와 Jenkins의 활용
이번 프로젝트에서 드디어 Docker와 Jenkins를 활용해 보았습니다. 이전 프로젝트에서 계속 프로젝트에 적용해 보고 싶었지만, 일정의 문제로 계속 못하던 것을 시도해보았습니다. CI 까지는 원할히 진행하였지만, Docker 컨테이너 내부에 빌드 파일있는 것과 백엔드 컨테이너가 실행되고 있는 것, NGINX 설정 모두 확인하였지만 배포가 원할히 되지 않는 문제가 있어 CD는 결론적으로는 실패하였습니다.
일정의 문제로 Docker를 제외한 기존 방식대로 진행하여서 배포에는 문제가 없었지만, Docker를 조금 더 확인하여 CD 부분도 적용시킬 계획입니다.
WebSocket과 STOMP
이전 프로젝트에서는 Node.js 에서 Socket.IO로 구현한 경험이 있었습니다. Spring boot 환경에서 채팅을 처음으로 시도해보았습니다. 어려웠지만 재미있었고 걱정과 달리 성공적으로 구현하였습니다. 어떤식으로 WebSocket을 활용하고 적용하는 지 이해는데 있어 큰 도움이 되는 시간이였습니다.
마무리
3차 프로젝트는 진행 도중 인원의 공백이 있는 경우도 없었고, 처음 진행부터 세세한 문서화로 인해 잘 진행되었습니다. 진행 도중 인원 공백이 염려되어 인원에 비해 작은 규모로 진행된 점은 아쉬웠지만 팀원들끼리 소통도 좋았고, 다들 책임감과 열정 또한 좋아서 프로젝트를 잘 마무리할 수 있지 않았나 생각해봅니다. 개인적으로는 트러블 슈팅에 대해 간단한 정리는 해놓았지만 세세하게 작성하는 시간을 가지면 좋지 않았을까하는 아쉬움이 남습니다. 앞으로 피드백 받은 부분을 정리하고 고도화를 포함하여 추가적인 기능과 성적 최적화를 고려한 전체적인 리펙토링을 진행할 계획입니다.