프로그래밍/생각노트

[코드스테이츠] 2주 프로젝트 회고

제이콥J 2021. 10. 15. 09:45

코드스테이츠에서 Session 3를 통과한 후 프로젝트에 돌입했다.

4인 1조로 진행된 2주간 프로젝트를 마무리했다.

나는 주로 서버 개발클라이언트 쪽의 State 관리 및 에러 핸들링을 담당했다.

프로젝트를 하면서 느꼈던 점을 회고하고자 한다.

 

제작 서비스

1. 서비스 개요

  - 서비스명 : To Do List

  - 설명 : 시간 관리와 목표 달성을 위한 스케줄러

 

2. 서비스 기능

  - To Do List Not To Do List 항목을 작성하고 시간을 계획

  - 이후 항목에 대한 시간 사용을 기록하여 계획에 대한 피드백

  - 시간사용 기록  계획대비 달성 정도를 차트 확인 가능

 

담당해서 개발한 기능

1. 서버

- ToDoList/NotToDoList 항목을 DB에 저장하기 위한 모델(테이블) 제작

- ToDoList/NotToDoList 테이블의 각 항목에 대한 CRUD 컨트롤러

- 항목별 소요 시간을 계산하여 DB에 저장하는 컨트롤러

- 각 유저의 테마별 소요시간 합계를 연산 후 클라이언트에 전달하는 컨트롤러

 

2. 클라이언트

- ToDoList/NotToDoList의 CRUD용 페이지 기능 구현

- 차트 페이지 제작

- 위 페이지에서 최신 DB 정보가 화면에 즉시 렌더링 되도록 데이터 관리

- 의도된 데이터가 렌더링되도록 에러 핸들링

 

해결했던 기술 문제

1. 서버

- 테이블에서  조건에 맞는 필드의 합계를 구하는 컨트롤러를 Sequelize 문법으로 구현

- 각 필드의 데이터 타입을 바르게 설정하여 데이터 송수신 에러 해결

 

2. 클라이언트

- 콜백으로 비동기 요청의 순서를 통제 및 useEffect와 Ajax 요청으로 최신 DB 정보를 불러와 의도한 화면을 브라우저에 렌더링

- 페이지 재렌더링 시 DB에서 받은 데이터를 setState에 넣어주어 State 데이터 초기화 방지

- Axios 요청의 응답 데이터를 기존 배열에 push 메소드로 담을 수 없는 경우, 구조분해할당으로 데이터 수신

 

느낀 점과 피드백

1. 기술적 이슈에 대한 커뮤니케이션 방법

- Git Flow 및 기능에 대해서 논의할 때, 구두로는 합의했지만 서로 내용을 다르게 이해한 경우가 종종 있었음

- 기술적인 내용은 시각화된 내용으로 커뮤니케이션을 해야 오해를 줄일 수 있다고 느낌 (ex. 코드, 이미지 자료)

 

2. 가독성 있는 코드 작성

- 타인이 작성한 코드를 읽고 이해하는데 시간이 걸림 : 변수명을 센스있게 작성하는 것이 중요하다고 느낌

- 타인이 작성한 변수를 사용하다가 오타가 나는 경우가 많았음 : 변수명 작성시 규칙을 정하는 것이 필요하다고 느낌

 

3. 사전 기획의 중요성

- 기능 구현 과정에서 컨트롤러를 자주 수정하는 경우가 발생함 : 소요 시간을 줄일 수 있도록 사전 기획의 중요성을 체감

- 서버 제작 이후 클라이언트쪽을 구현하다 보니 마감 시간에 쫓김 : 역할을 나누어 서버/클라이언트 동시 구현 필요

- 추후 클라이언트 쪽에서 와이어프레임, UX Flow, 페이지, 컴포넌트, State 통한 데이터 흐름을 먼저 기획하기

- 서버 쪽은 사전에 스키마와 API 문서를  구체적으로 작성하기

반응형