comma - 프로젝트 후기

5tr1ker·2023년 10월 3일
1

프로젝트후기

목록 보기
2/3

프로젝트 소개

총 4명의 개발진과 4명의 기획자 겸 디자이너가 함께 제작한 서비스로 기존 음악 재생 서비스의 기능을 확장하여 제작된 프로젝트입니다. 테스트 주도 개발 방식을 통해 소프트웨어의 품질을 향상시키고 커뮤니케이션 능력을 기를 수 있었던 프로젝트입니다. 협업 툴과 형상 관리 도구를 이용해 팀원과 효율적인 협업 방법과 , 팀원 간 의견 충돌 및 갈등을 해결하는 방법을 알게되었습니다.

주요 기능은 음악 탐색 , 가수 탐색 , 음악 재생 , 음악 아카이빙 ( 감정 기록 ) , 플레이리스트, 푸시알림 , OAuth2.0, 회원가입 및 로그인이 있으며 푸시 알림을 구현하기 위해 Spring schedulerServer Send Events 를 사용했습니다. 또한 오픈소스인 Spotify API 를 활용했습니다.

프로젝트 완성도

첫 협업 작품인 것만큼 신중하면서 프로젝트를 진행했기에 목표했던 기간을 맞추진 못했지만, 구현하고자 하는 기능은 모두 구현했습니다. 더 자세한 정보는 하단 깃허브 주소의 Read.Me 에 상세히 작성을 해두었으며 참고해주세요.

맡은 업무

해당 프로젝트의 백엔드 팀장으로서 백엔드의 컨벤션을 정하고 작업을 분배하는 역할을 했었습니다.
또한 구현한 로직은 다음과 같습니다.

  • Spring Security를 활용한 인증 , 인가처리
  • JWT 를 통한 토큰 기반 인증을 구현
  • Spring Scheduler 와 SSE 를 활용한 푸시 알림 구현
  • Spotify API 를 활용하여 가수 , 곡 정보 검색 구현
  • CI / CD ( Github Action , Jenkins ) 를 활용해 지속적 배포 , 통합을 구현
  • AWS EC2 를 활용한 API 배포 서버 구축
  • OAuth2.0 을 활용한 소셜 계정 로그인 구현
  • 사용자 회원가입 , 로그인 ( CRUD ) 구현
  • 각 API 마다 TDD 및 RestDocs 작성
  • 매주 회의를 통한 애자일 스프린트 관리

프로젝트 작업 기간

2023 - 2 ~ 2023 - 9 ( 8 개월간 )

프로젝트를 하면서 얻은 것

- 커뮤니케이션 능력과 갈등을 대처하는 방법을 배울 수 있었다.

기획자 또는 프론트엔드와 의견을 나누는 것을 넘어, 팀원 간 발생할 수 있는 갈등을 유연하게 대처할 수 있게 되었습니다. 상대방과 내 의견의 차이점을 정확히 알고 타협점을 찾아 서로 원하는 것을 최대한 맞출 수 있는 능력을 기를 수 있었습니다.

- 협업 도구를 효율적으로 활용할 수 있게 되었다.

효율적인 협업을 위해 JIRA 또는 GitHub 을 이용하여 브랜치 전략애자일 방법론 을 활용하여 소프트웨어 품질을 향상시키고 모든 상황에 유연하게 대처할 수 있는 방법을 깨닫게 되었습니다.

- 남이 사용해서 따라하지말고, 왜 이런 기술을 사용해야 하는지 깨닫게 되었다.

CI/CD 를 활용하면서 끊임없이 수정 및 확장되는 어플리케이션을 자동으로 배포하는 로직을 구현했을 때 단순히 성취감을 넘어 깨달음을 얻을 수 있었습니다.

처음 CI/CD 의 이해가 부족했을 때 단순히 기업 지원요건에 있어서 라는 생각을 갖고 공부했지만, 직접 기술을 이해하고 사용해보니 개발의 생산성을 높혀준다는 것을 알았습니다. 뿐만 아니라 이해없는 기술의 남용은 소프트웨어의 효율성을 저하시키고 유지보수에 걸림돌이 될 수 있다는 것을 알게되었습니다.

따라서 기술을 사용할 때는 많은 것을 아는것보단 하나라도 제대로 아는 것이 중요하다고 생각했습니다.

- 협업을 위한 컨벤션이 중요하다는 것을 알게 되었다.

협업을 하면서 단순히 코드를 짜는 것은 위험성이 있다는 것을 알게 되었습니다. 각자의 스타일에 따라 코드를 작성하다 보면 다른 사람의 코드를 활용하기 어려워질 수 있으며 이는 레거시 코드로 변질비효율적인 코드 가 되거나 클린하지 못한 코드가 될 수 있다는 것을 알게 되었습니다.

따라서 컨벤션을 작성하여 코드 스타일과 명명 규칙을 가능한 통일하여 작업하는 것이 중요하다고 느꼈습니다.

프로젝트를 하면서 아쉬웠던 것과 방향성

- 예상치 못하게 길어진 작업 기간

초기에 작업 기간을 4개월로 설정했지만 프로젝트에 참여한 모든 팀원이 대학생인만큼 대외활동 , 공모전으로 일정이 변경되는 일이 잦았습니다. 팀원의 직업을 생각하고 프로젝트가 지연될 수 있다는 것을 항상 염두해두고 기간을 넉넉히 잡아야한다는 것을 깨닫게 되었습니다.

- 프론트엔드와의 소통 부족 및 판단 실패

작업 기간이 길어지게 된 이유 중 하나라고 생각했습니다. 프로젝트 회의는 일주일에 1~2번이 적당하다고 생각했지만, 중간에 긴 기간동안 소통이 잘 되지않아 진행이 잘 되지 않았습니다.

그리고 작업 뿐만 아니라 팀원 관리에 미흡하여 프론트 팀의 리더가 개인적인 사유로 프로젝트 진행이 어려워졌을 때 이 문제를 빠르게 인지 하지 못해서 프론트 팀원 한명 이탈 및 팀원 사기 저하가 되었습니다.

따라서 하루에 한번씩 짧게라도 회의를 진행하면서 팀 간의 진행 사항을 공유하고 각 팀에서의 이슈를 빠르게 인지해야하는 것을 알게되었습니다.

프로젝트를 마치면서..

이 프로젝트는 저에게 커뮤니케이션하는 방법을 깨닫게 해준 보석같은 프로젝트입니다. 하나하나 배워갈수록 성장하는 것을 느꼈지만, 앞으로 배워야할 것이 많다고 느꼈습니다.

많은 것을 알고 있다고 생각했지만 이 프로젝트를 하면서 우물 안의 개구리였다는 것을 알게 되었습니다. 따라서 항상 겸손한 마음을 갖고 모든 배움에는 마음을 열어두어야 끊임없이 발전할 수 있다는 것을 깨닫게 되었습니다.

깃허브 주소

https://github.com/5tr1ker/Comma-Back-end

profile
https://github.com/5tr1ker

0개의 댓글