본문 바로가기
개발 공부/주차별 리뷰

코드스테이츠 final project 후기

by 크롱이크 2021. 10. 18.

코드스테이츠 파이널 프로젝트 후기

우리 동네 구독서비스를 조회, 주문할 수 있는 웹/앱 어플리케이션

🏡 우리 동네의 다양한 월구독 서비스를 만나보세요.

동네 인증을 하면 내 주변 반경의 구독이 가능한 스토어를 찾고, 결제하여 관리할 수 있습니다.

✔️ 의류, 세탁, 반찬 등 매번 챙기기 힘들지만 내 삶에 꼭 필요한 것들.

✔️ 우리동네 구독 서비스 중개플랫폼 UptoDoor 를 이용하며 번거로운 일들을 줄여보세요!

✔️ 우리동네의 몰랐던 구독서비스 정보도 알 수 있고 지역경제 활성화에도 도움을 줄 수 있어요!


팀 구성과 역할: 같은 멤버, 프론트엔드, 팀장 

지난 BowWow 프로젝트의 팀원들과 잘 맞았기에, 이번에도 동일한 팀으로 4주 프로젝트를 시작했다. 다시 한번 팀장을 맡았고, 포지션도 기존과 같은 Front-end 포지션을 맡았다. 다른 팀원들도 자신들이 원하는 포지션을 담당하게 됐고, 구체적인 역할은 UptoDoor 의 노션과 위키에서 확인 할 수 있다.

 

프로젝트 시작: 만남, 정기 구독, 우리 동네

2주때는 전부 줌으로 진행되었지만, sr단계에서 한번 만나서 진행하면 어떠냐는 나의 제안에 모두다 흔쾌히 좋다고 해주셔서 sr단계는 만나서 진행되었다. 우리의 키워드는 '구독'이였고, 시장 조사 끝에 사용자가 자신의 주변의 구독이 가능한 서비스를 찾고 결제하여 관리해주는 서비스를 만들기로 했고, 그에 맞춰 SR ,Wireframe, DB Schema, API 문서를 작성하였다. 우리가 너무 크게 프로젝트를 잡는게 아닌가 싶었다. 계속해서 추가하고 싶은 기능들이 있었고, 결제와 관련된 서비스이다보니 더 신경쓸 일들이 많았다. requirements 에 대한 대화를 많이 진행했다. 

 

사용 스택

2주때 스택과 크게 다르지 않았지만, 2주차에 일부러 사용하지 않은 redux가 추가된 점과 typescript를 사용해야하는지에 대해 많은 고민을 했다. 나와 숙영 님은 2주 프로젝트때 타입에러로 고생을 많이 해서 4주 때는 꼭 타입스크립트 공부해서 사용하자고 다짐했고, 결국엔 리팩토링하면서 변환하자고 결론이나 프로젝트 3주차때 부터 변환 작업을 했다.

typescript는 정적 타입을 지원하므로 컴파일 단계에서부터 에러가 발생하기 때문에, 보다 빠르게 에러를 발견하고 해결할 수 있었다. 특히 가장 좋았던 점은 서버에서 받아온 데이터들에 타입을 지정해 타입에 의한 오류를 방지할 수 있었다.

하지만 component에서 dispatch나 history의 타입을 any로 지정하고, 헷갈리는 것들은 우선 any로 바꿔 진행하다보니 any가 상당히 많았다. 이는 의미가 없다는 걸 알았지만, 숙영님과 다시 같이 공부하여 리팩토링 하기로 했다.

이번에 카카오맵 api를 사용하면서 맵에 대해서 정말 많이 배웠다. 라이브러리를 사용하면서 동네인증을 구현했고, 맵에 마커를 띄우는 것부터 검색, 마커클릭, 태그선택에 의해 필터링한 마커와 리스트 띄우는 것, 거리 계산, infoWindow, customOverlay 등 을 공부하고 적용시키면서 내껄로 만들었다는 느낌이 들었다.

 

프로젝트 후기: 도움, 

분위기가 다 한다

 

스포츠에선 분위기가 중요하다. 뭔가 10분만 잘막으면 되는데, 골 먹힐 것 같은 분위기가 형성되면 더 불안해진다. 경기장에서 그런 걸 많이 느껴봐서 그런지 모르지만, 팀장으로서 팀원들이 최대한 편안하게 얘기할 수 있는 분위기를 만들어주고 싶었다. 실제로 그렇게 되었다. 4명 모두가 어떠한 의견에도 다른 시야로 보려고 노력했고, 그말을 듣고 수용할지 말지를 결정했다. 모두가 적극적이지 않았다면, 내 시야가 1인분 밖에 못하니 이렇게 완성되지 않았을 것 같다. 

 

그래서 우리 팀의 분위기는 정말 좋았다. 다들 굉장히 열정적이였고 성공적인 프로젝트가 되기 위해 노력해주는 모습을 볼 수 있었다.

나한테는 어렵지만, 다른사람은 그 부분에서 강점을 가지고 있을 수 있기에 에러가 발생했을때도 실제로 빨리 문제를 공유하며 프로젝트를 진행했다. 의견이 달라 오해가 생겼을 순 있지만 서로의 행동과 말 한마디마다 좋은 방향으로 가는 거라고 생각하니 모든게 감사했다. 프로젝트가 끝나니 팀원들에게 더 고맙다. 땡쿠!

 

유저 경험, 고민하고 또 고민하자

 

기획 단계를 거치고, 하나의 페이지씩 만들어지면서 느꼈던 것은 유저가 이 페이지에서는 어떤 경험을 주어야 하는거였다. 이것도 클릭해보고, 이상하게 글을 작성해보기도 하면서 한 페이지에서 어떻게든 문제점을 찾으려고 했다. 분명 에러들의 핸들링하는 시간이 많아졌지만, 이렇게 해야 한페이지,한페이지에 유저에게 좋은 경험을 줄 수 있다고 판단했다. 다음 프로젝트를 진행하더라도 내가 작성한 코드들의 화면에 어떻게 보여지고, 오류가 없는지 체크하면서 진행해야겠다는 좋은 교훈을 얻었다.

 

재밌으니 더 잘하고 싶다

 

이번 프로젝트를 진행하면서 제일 재미있었던 부분이 데이터 요청보내고 응답받아 뿌려주는거였다. action, store, reducer 로 폴더를 구조화해서 스토어에 데이터를 저장하고 뿌려주는 과정이 너무 재미있었다. 프론트엔드의 필수 역량 중에 api문서를 읽고, 응답받은 데이터를 잘 뿌려주는 능력이라고 했는데, 이게 젤 재밌어서 좋다. redux-persist를 이용하여 새로고침시에도 상태를 유지하는 방법도 알게되고, cart는 프론트에서만 상태관리를 하고 user 와 order 의 상태는 서버와 소통하니 더 재밌었다. 배움의 즐거움이 이런건가 생각이 들었다. 앞으로 더 최적화 시킬 수 있는 방법도 고민해보고, redux-saga와 typescript 공부 세게 하면서 상태관리의 마스터가 되기 위해 달린다.

 

마무리

 

프로젝트 일정이 끝나고 프로젝트는 마무리 되었다. 아쉬웠다. 아직 구현하지 못한 기능도 많았고, 더 완성도 있는 서비스를 만들어보고 싶다는 생각을 했다. 우리가 생각한 것보다 서비스 규모가 커지다보니 많은 태스크들이 어드밴스드로 가게 되었다.

그래서 우리는 이번 주에는 이력서와 노션 정리,블로그 정리를 하고 다음주부터 일주일에 한번 만나 회의를 하고 리팩토링을 하기로 결정했다. 다들 아쉬운 마음이 있었고 다듬으면 더 좋은 프로젝트가 될 걸 알기에 좋은 시간이 될거같다.

 

정말정말 마지막으로 좋은 팀원들 덕분에 무사히 프로젝트를 마무리 할 수 있었다. 불과 6개월 전 만해도 html이 뭔지도 모르는 상태에서 코드스테이츠에 들어와 이런 서비스를 만들거라고는 상상도 할 수 없었지만 해냈다. 프로젝트를 진행하면서 현업에서 일하고 싶다는 욕구가 더 생겼다. 취업시장은 단지 실력있는 개발자를 원할 것이다. 처음과 다르게 내 머릿속에는 많은 것들이 들어와 있고, 다시한번 정리하면서 실력있는 개발자가 되기 위해 나아가야겠다.

 

발표영상 보러가기: https://youtu.be/sBplUMQZxRg

 

반응형

댓글