오늘의집을 모티브로 한 커뮤니티&커머스 사이트 프로젝트
커뮤니티 기능을 중심으로 최근 증가하는 1인 가구 인테리어 수요를 충족시키는 것을 목표로 제작한 커뮤니티 & 커머스 사이트
개발 기간 : 2023.2.24~2023.3.10
데모 영상 | |
---|---|
메인 페이지 | ![]() |
글쓰기 | ![]() |
포스팅 리스트 | ![]() |
포스팅 상세 | ![]() |
즐겨찾기 | ![]() |
소셜 로그인 | ![]() |
상품 상세 | ![]() |
장바구니 | ![]() |
결제 | ![]() |
리뷰 작성 | ![]() |
포스트 글쓰기 POST API 구현
포스트 리스트 조회 GET API 구현
포스트 상세 조회 GET API 구현
즐겨찾기 CRUD API 작성
댓글 CRUD API 작성
장바구니 CRUD API 작성
이번 프로젝트에서는 카카오 소셜 로그인을 위해 외부 API를 사용하게 되었다. 처음 외부 API를 제대로 적용해 보는 터라 일 주일 가까이 로그인 적용을 하지 못한 상태로 전전긍긍하다가 카카오 인증 절차는 프론트에서 담당하고 그 이후 단계는 백에서 담당하는 방식으로 구현하였는데, (카카오 소셜 로그인 flow) 비록 내가 담당한 파트는 아니었지만 로그인을 담당한 백엔드 팀원과 계속 회의하면서 어떻게 구현하면 좋을지 논의했다. 주말에 나와서 하루 종일 코드 작성은 하지 않고 회의만 하기도 했다. 이 단계에서는 정말 눈앞이 캄캄하고 이걸 우리끼리 구현할 수 있을까...? 라는 회의감이 들기도 했었지만, 다른 코드를 참고하고 또 자료를 찾아보면서 어떻게 구현에 성공했다. 다른 팀은 외부 API를 여러 개 사용하기도 했다던데, 우리는 소셜 로그인만으로도 시간이 부족해 자괴감을 느끼기도 했다.
거기다 프로젝트 도중에 AWS S3, Docker와 같은 새로운 기술 스택을 학습하여 프로젝트에 반영하게 되었다. AWS S3의 경우는 사용자가 첨부한 이미지를 업로드 할 공간이 필요하여 프로젝트 중간에 회의를 통해 사용하기로 결정되었고, Docker는 백엔드 서버를 최근 널리 사용되는 컨테이너 기술인 도커로 배포하면 좋겠다고 하여 프로젝트 마감 단계에서 학습 후 적용해 보았다. 그러나 시간 부족으로 해당 기술들에 대해 제대로 학습하지 못하고, 우선 지금 당장 구현에 필요한 부분만 학습하여 적용했다는 점이 아쉬웠다.
"이 서비스에 다른 기능을 추가한다면, 어떻게 해야 될 것 같아요?"
데이터 모델링 단계에서부터 마지막 코드 리뷰를 받을 때까지 나를 따라다닌 과제였다. 지금 당장 굴러가는 코드를 짜는 것보다, 추후의 유지보수와 기능 추가를 고려해야 한다는 것. 데이터 모델링 리뷰에서도 그 부분을 고민했고, 여러 번의 수정을 거쳤다. 추후의 확장성도 중요하지만 일정에 맞춰 프로젝트를 마감해내는 것도 중요하기에 어떻게든 타협해서 진행하기는 했지만, 정말 최선의 설계였는지는 아쉬움이 남는 부분들이 있다.
프로젝트 매니저로 자원해서 호기롭게 일정 관리를 담당하게 된 것은 좋았으나, 내 담당 티켓을 쳐내고 개발하면서 전체적인 프로젝트의 작업 진행도와 팀원들 각각의 상황을 확인하는 데 많은 에너지가 들었다. 회의를 주관하는 것이나 발표에 있어 미흡하기도 했고, 프로젝트 마감일이 다가오면서 초조함에 티켓이 남아 있는 팀원들을 많이 재촉하기도 했다. 결과적으로 잘 마무리되긴 했지만, 더 잘 할 수 있지 않았을까? 라는 아쉬움이 남는다.
일정 관리를 담당하고 팀원들의 작업을 조율하면서, 프로젝트의 흐름을 더 자세히 보려고 했다. 매일 회의록을 작성하고 trello를 사용하며 단순히 '이 정도 진행되었구나'를 파악하는 것을 넘어, '실제 계획한 것'과 '계획대로 완료한 것'을 제대로 확인하기 위해 고민했다.
각자 본인의 티켓별 마감 일정을 정해 표시하고, automation 기능을 활용해 마감 일정이 임박하거나 마감이 지난 티켓이 있으면 잘 보이도록 자동으로 색이 변경되도록 했다. 실제 처음에 티켓을 분배하면서 시간이 부족하지 않을까?라는 염려를 많이 했었는데, 최대한 마감에 맞춰 개발하고 일정상 안 될 것 같은 티켓은 다른 팀원에게 재분배 하는 등 오히려 좋은 결과가 있었다. 팀원들 모두 잘 따라 주었고, 마감일에 맞춰서 티켓을 마무리하려다 보니 생산성이 증가되는 결과를 낳았다!
매일 오전 DSM을 진행하고 노션에 간단한 회의록을 작성하여 모두가 공유하였으며, 추가로 필요한 회의나 blocker를 기록하여 팀원들이 함께 고민할 수 있도록 했다. 첫 스프린트가 끝나고 2차 스프린트를 시작할 때에는 스프린트에서 부족했던 점, 좋았던 점, 지속할 점을 각자 회고하는 시간을 가지기도 했다.
매일 회의를 진행하고 기록하면서, 각 팀원들의 진행 상황과 고민을 파악하고 공유할 수 있는 좋은 시간이 되었다.
모든 프로젝트가 그렇겠지만, 이번 프로젝트도 치열하고 힘들었다. 개발을 하면서 동시에 새로운 기술을 익히고, 프로젝트 매니저로서 일정 관리와 팀원들의 작업 조율에 힘썼고, 팀원들과 최대한의 소통으로 개발 과정에서 낭비되는 시간을 절약하고자 애썼다. 일정 관리 방식이 어찌 보면 귀찮다고도 할 수 있는 일이라 팀원들이 불만족스러울까 봐 많이 걱정했는데, 프로젝트가 끝나고 팀원들의 긍정적인 피드백을 받고 나서 울컥하기도 했다.
처음 접하는 외부 API와 새로운 기술 스택을 도입하며 많은 어려움을 겪었지만, 결국 팀원들과의 지속적인 논의와 자료 조사를 통해 극복하면서 소중한 경험이 되었다. 이번 프로젝트를 완수함으로써 앞으로의 프로젝트에서도 계속해서 소통, 협업, 기술 습득을 해나갈 수 있을 것이라는 자신감이 생겨났다. 이렇게 앞으로 더 성장하고 발전하고 싶다.