KPT 회고
Keep
- 기능 우선 개발로 단기간 내 요구사항 완료
- 디자인시스템 작성으로 스타일 코드 작성 용이
- 팀원 간 의사소통 원활
- 빠른 의사 결정
- 기능별 모듈화 (기능적 충돌 저하)
Problem
- 기획서 디테일 부족
- git-flow 전략 부족
- 잦은 충돌(데이터 통일성, 코드스타일)
- git commit과 pr 작성 방식에 관한 컨벤션 부족
Try
- 컴포넌트 간 데이터 교환 방식 일관성 있게 개선 필요 → 도식화
- storybook 작성으로 컴포넌트 세부 사항 사전 정의
- git 사용법 사전 숙지
- commitizen 등을 도입해 git 관련 컨벤션 수립
- pr에 대한 개인별 코드리뷰 후 자동 merge하는 시스템 수립
- 파일별로 담당자를 지정해서 충돌이 나도 담당자의 pr로 통일
구성원 총평
상준
개인이 아니라 팀으로 프로젝트를 해보는 경험이
처음이라 많은 어려움이 잇었지만 팀원들과 같이
해결하고 프로젝트를 구성하는 것이 재미있었습니다.
지영
데브코스에 지원한 가장 큰 이유였던 협업 경험을
프로젝트를 통해 이룰 수 있었고, 기획과 디자인, 개발까지
팀원들과 함께하며 혼자서는 할 수 없었을 것들을 이룰 수 있었습니다.
용록
프로젝트 규모에 따른 복잡성을 느꼈다. 유기적으로 연결된 기능들 속에서 구성원 간 의사소통이 중요했다. 연쇄성을 줄이기 위해 컴포넌트적인 프로그래밍을 구성했고, 기대 이상의 성과를 거뒀다.
최종 회고
- 프로젝트 계획 핵심기능(로그인, 회원가입, 포스트 작성/삭제/수정, 코멘트 작성/삭제)을 우선한 기능위주의 개발
- 장점 빠른 개발 템포를 가져올 수 있었다. 실제로, 타 팀들 보다 빠르게 개발을 시작했고 시간적인 여유를 챙길 수 있었다. 또한 핵심기능 위주로 완성하는 애자일한 계획을 세웠기에, 시간 내에 가능한 기능을 최대한 많이 구현할 수 있었다.
- 단점 기획이 부실했다. 허술한 계획에 기능은 다양하지만, 기능들이 프로젝트의 목표와 크게 융화되지 않는 느낌을 받았다. 또한 코딩 컨벤션도 확실하지 않았다. 코드 스타일 측면에서 지저분했기에 아쉬움이 남는다.
- 개발 프로세스 컴포넌트별로, 기능별로 나눠서 효율적으로 작업을 분담했다.
- 장점 기능분리가 잘 되어있어서, merge 충돌도 적었고 개발하면서 혼선이 생기는 일이 적었다. 게다가 각자 최초로 맡은 파트를 기준으로 점점 기능을 넓혀가기에도 용이했다.
- 아쉬운 점 어쩔 수 없이 공통적인 부분이 있었다. api 호출, 상태관리, local storage 사용 부분이었는데, 공통 함수 부분에서 미리 룰을 정해뒀다면 코드가 더욱 간결해졌을 거란 아쉬움이 남는다.
- 총평 기능위주 개발과 효율적인 컴포넌트 분리로 빠르게 핵심기능을 완성할 수 있었다. 하지만, 디테일한 부분에서 소홀해졌고, 다른 사람에게 설득할 문서가 빈약해지는 단점이 있었다.
- 리팩토링 계획 새로운 기능을 추가하기 보다는, 기존의 기능을 더욱 깔끔하고 완성도 있게 다듬는 작업에 중점을 두고 싶다.
- 게시글
HTML
태그 현재 게시글 내용을string
으로 받고 있는데, 이를HTML
태그로 입력/배치되는 형식으로 수정하고 싶다. 현재 줄바꿈 처리도 안되는데, 당연히 반영되어야했던 부분을 놓쳤다. input
체크 회원가입 항목, 글 작성 항목 등에서 입력값이 반드시 필요한 부분이나 정해진 규칙을 따라야 하는 부분을 미리 체크하는 로직을 더욱 치밀하게 해야한다. 잘못된input
값이 서버로 전송되지 않는 것이 프론트의 가장 큰 역할이라고 생각하는데, 이 부분에 소홀했다.- 검색 기능 개선 검색은 백엔드의 기능이긴 하지만, 프론트 차원에서 결과를 필터링해서 표시해주는 정도로 세심한 구현이 가능하다고 생각한다. 검색결과를 세밀하게 걸러내기만 해도 사용자 경험이 크게 오를 것이다.
- 공통 함수 통합
api
호출,store
상태관리 등 비슷한 기능을 하는 함수들이 난립해있다. 해당 기능들을parameter
에 따라 유연하게 대처가능한 형태로 통합하면 코드 수를 크게 줄일 수 있다. - 로그인 체크
현재
localStorage
에 로그인 정보가 남는다. 보안 문제는 팀 합의로 감수하는 부분이다. 하지만 브라우저의 로그인 정보token
가 서버측에서 만료되는 것에 대해 대처를 못했다. 메인 페이지, 로그인 정보가 필요한 기능에서 로그인 유효성을 확인하는 로직을 추가해야한다. - 폴더명 및 파일명 통합 현재 중복된 코드들로 파일명과 폴더명 역시 중복되거나 구체적이지 않게 작성되어 있다. 따라서 공통 코드를 먼저 정리한 후 그에 따라 파일명 및 폴더명을 정리해 전반적인 통일성을 높인다.
api
파이어베이스로 교체api
보안문제를 해결하고 프로젝트의 public 전환을 위해 파이어베이스를 사용한다.- 컴포넌트에
props
를 전달해서 독립성 있는 컴포넌트로 리팩토링vuex
의 상태의존성을 낮추고, 컴포넌트의 독립성을 높인다. - github action으로 merge후에 바로 배포되도록 환경 구축 배포 프로세스를 간단화하여 개발 속도를 높인다.
- typescript 도입 향후 표준화될 것 같은 typescript를 적용하여 연습도 하고, 프로젝트의 확장가능성에 대비한다.
- css 라이브러리 적용(tailwind) 반응형, 다크모드 등 사용자 경험을 높일 수 있는 기능들을 보다 쉽게 적용할 수 있을 것으로 기대된다.
- 로딩 애니메이션 추가 로딩 애니메이션 등 사용자 경험을 향상시킬 수 있는 요소들을 추가해 서비스의 완성도를 높인다.