본문 바로가기
회고

과제 프로젝트 회고

by growingTangerine 2023. 7. 4.

<시간상 구현하지 못해 아쉬웠던 부분>

- 20분 / 40분 전역 상태에 따른 버튼 크기 조건부 렌더링 (tailwind css 동적 class 부여 글 참고)

- src/utils 에서 캘린더 내의 타임블록 생성하는 generateTimeZone을 함수 형태로 수정하여 MainCalendar에서 함수 호출 형태로 좀 더 가독성 있는 코드로 리팩토링

 

<버그를 해결하지 못해 아쉬었던 부분>

- reducer delete 에서 pop()이 적용되지 않음. 이를 filter()를 통해 다시 구현해보고 싶음

- reducer update 에서 추가해준 수업의 length가 Header에서 렌더링되지 않음

- reducer update 에서 type에 20을 디폴트 값으로 넣지 않고, timeSlice에서 불러온 선택된 수업권 시간 값으로 동적으로 넣어주어야 함

 

<회고>

- 시간관리를 제대로 하지 못한게 가장 아쉬웠다. 프리온보딩 수업과 팀플로 바쁜 기간과 겹쳐 설계만 해두고 코드로 구현을 하는데에 2일정도밖에 쓰지 못했다. 개발을 하다 보면, css가 의도대로 적용되지 않기도 하고 코드가 어떤 버그와 에러를 일으킬지 모르기때문에... 원래 계획보다 2배의 시간을 잡고 개발하라는 말을 뼈저리게 체감했던 과제였다. 

 

- 설계도 이전에 처음 프로젝트 할 때보다는 훨씬 촘촘하게 작성했다. 그러나, 여전히 허술한 부분이 있어 코드를 작성하면서 전역 상태 slice를 추가해주거나 내부 state 구조를 다시 설계해야 하는 부분이 생겼다. 의존성이 있는 상태와 컴포넌트 설계는 이를 경험삼아 더 꼼꼼하게 로직을 작성해야겠다. 

 

- 잘한 점은 전역상태로 관리해줄 부분을 적절하게 선택했다는 것이다. 수업권 종류, 수강신청중인 수업 객체를 전역 상태로 관리해주어 관련된 정보들이 렌더링되어야 하는 컴포넌트를 초반부에 잘 설계했다. 

 

- tailwind CSS는 처음 써봤는데, 코드 가독성은 떨어지지만 확실히 마크업에 바로 스타일링을 작성하니 시간이 없을 때 크게 도움이 되었다. 그리고 HTML 구조를 눈으로 바로 확인하는 것이 생각보다 훨씬 편리했다. 

 

- redux-toolkit은 dispatch에 전달해주어야 하는 인자와 reducer에서 작동하는 state, action 인자가 어떻게 연결되는지를 파악하지 못해 reducer를 적절하게 작성해주지 못한 점이 가장 아쉬웠다. 그래도 이번 기회를 통해 Redux와 Flux패턴을 복습하고, Redux와 redux-toolkit의 차이를 다시 한번 복습해볼 수 있었다. 

 

<이후 리팩토링 계획>

- CSS 개선 (아이콘, 로고, 정렬 등 시각적으로 중요한 세부적인 사항)

- MainCalendar 로직 개선 (현재는 map을 두번 돌려주고 있는데, 이를 요일-날짜-타임블럭 구조를 더 간결하게 짤 수 있지 않을까? 하는 고민이 남았다)

- utils 활용도 높이기 -> redux-toolkit reducer에서 필요한 동작을 대부분 써주다보니, utils 폴더에 작성할 함수가 생각보다 많지 않았다. 그럼에도 데이터를 바로 export 하기보다는 함수 형태로 export 할 수 있도록 유틸 함수를 작성해보고 싶다. 

- 시간이 없어서 구현하지 못한 상세한 부분들의 구현까지 해보고 싶다.