First Project를 마치며

hyunnu·2021년 6월 21일
0

Kings-ears 프로젝트 회고하기


링크텍스트

FirstProject 시작

드디어 코드스테이츠 소프트엔지니어링 코스 과정의 마지막 프로젝트중 첫번째 프로젝트를 끝마쳤다. 1차 프로젝트의 이름은 Kings-ears! 임금님 귀는 당나귀 귀에서 모티브를 얻은 프로젝트 명이다. 그래서 사이트 주소도 kingdonkey.site이다. 무튼 처음 진행해보는 협업 프로젝트라 프로젝트 시작하기 전에 많이 긴장이 되었다. 내가 팀에 누가 되지 않을까서부터 잘할수 있을지에 대한 걱정이 기대보다 앞섰다. 그렇게 무너진 멘탈과 함께 나는 FirstProject에 참여하게 되었다.

Kings-ears의 메인 기능(Kick)


유저는 자신만의 비밀을 '비밀쓰기'라는 기능을 통하여 비밀을 작성할 수 있고, 작성이 완료된 비밀은 다른 유저가 '비밀보기'라는 기능을 통하여 랜덤하게 볼 수 있게 된다.

로그인 기능

비밀쓰기와 비밀보기의 기능은 gif용량이 커서 블로그에 들어가지 않아 간단한 로그인 기능의 시연영상을 짤막하게 준비해봤다.

사용된 다른 기능들로는 로그아웃, 비밀번호 변경, 회원가입, 회원 탈퇴의 기능들이 있었고, '비밀보기' 기능에서는 비밀들을 서버에서 랜덤하게 선택하여 클라이언트로 전달되게 하는 로직으로 구현하였다.

기술 스택

Kings-ears의 프론트단에서는 UI 컴포넌트 구성을 위해 React를 사용하였고, 상태 관리를 위해 Redux를 도입했다. 프론트단은 저희조 프론트앤드 개발자 꿈나무인 두 팀원 분들이 맡아주셨다.

서버단에서는 node.js를 기반으로 express를 사용해 서버를 구축하였으며, DB는 관계형DB(RDBMS)인 MYSQL을, 그리고 쿼리는 sequelize를 사용하였다. 또한 서비스 개별 토큰을 사용한 로그인 방식을 도입하였으며, JWT를 사용해 refresh 및 access token으로 인증을 구현하였다.

배포는 AWS의 EC2(서버), S3(클라이언트), 그리고 RDS(DB)를 사용했다. 또한 refresh token을 쿠키에 저장할 필요가 있었기에, https로 구축해야 했고 이에 따라, 추가로 Route53, Amazon ELB, amazon cloudfront, AWS Certificate Managert를 이용하였다.

아찔한 첫번째 프로젝트의 경험

이렇게 팀원들과 협업을 하여 맨날하던 페어프로그래밍의 스프린트 과제 형식이 아닌 제로베이스에서부터 시작한거라 정말 아찔했다.

그래도 나름 깔끔했던 git flow

작고 소박한 스키마

일대다와 다대다 관계가 있어서 이 부분이 헷갈렸지만 결국 이 논리가 맞았던 것 같다,,, 서비스의 메인 기능인 '비밀쓰기'라는 기능이 일대다이고, '비밀보기'라는 기능이 다대다이다. '비밀보기'는 본인이 쓴글을 제외한 전체글을 랜덤하게 보내줘야하고 글 하나당 여러명의 유저가 조회할 수 있기 때문에 조인테이블인 로그테이블을 사용한 스키마를 작성하였다. 조인테이블을 로그테이블이라고도 한다.

문제점과 개선방향

  1. 체계적인 배포 계획의 필요성

마감일이 거의 다가와서 배포를 한꺼번에 진행하려다보니 정말 고난의 연속이였다. 처음하는 배포라 구글링과 스택오버플로우 AWS 공식문서를 꼬박 이틀 읽어가며 배포를 결국 성공시켰지만 하마타면 배포를 못 시킬뻔한 아찔한 상황이였다. 파이널 프로젝트 때는 이 부분을 꼭 방지하기로 팀원들과 협의했다.

  1. 시간 계획의 중요성

나의 역량을 미처 파악하지 못한채 task card를 작성한 것과 두리뭉실하게 task card를 작성한 것이 원인이였다. 추가적으로 할일들이 생겼을 뿐만아니라 기존에 작성한 task card에서 엄청난 over time이 발생한 경우가 비일비재 하였다.

  1. 업무 기록의 중요성

협업에 있어서 서로의 상황 공유는 필수인듯 하다. 팀원들끼리 마지막즈음 도달하였을때 작은 소통의 오류로 중복작업을 하는 경우가 발생하였다. 서로 연관되어 있는 컴포넌트를 만든다거나 할 때 의도치 않게 겹치는 업무가 발생하였기 때문이다.
마지막 파이널 프로젝트 때는 Devlog를 꼭 작성하기로 했다. 더 나아가서 Error handling 카드도 꼭 작성할 것이다. 아직 일주일도 채 지나지 않았는데 무수히 많이 봐왔던 에러중 절반은 까먹었기 때문이다.

마지막으로

파이널 프로젝트때는 가장 1순위로 두어야 할 것이 기록이라 생각한다. 시간이 지나서도 보면 이땐 이랬었지하고 다음에 같은 실수를 반복하지 않기 위해 Devlog와 error handling card 작성을 최우선 목표로 할 것이다.

profile
Data Engineer / Back-End Developer

0개의 댓글