2024. 04. 05(금) Today I Learned
What I Did Today
- 최종 프로젝트
- 1차 작업완료 사항 Merge
- 전체 코드 리뷰
- 기술 면접 리허설
최종 프로젝트 일지
코드 리뷰 및 피드백
타입
- type: any로 출력되는 부분을 많이 개선해볼 것
- interface를 주로 사용하되, type을 써야하는 부분에서는 type을 사용할 것
- interface에서는 유틸리티 타입을 사용할 수 없기 때문
- 타입을 계속해서 새로 생성하지 말고 기존에 존재하는 타입에 유틸리티 타입을 적용해서 활용해볼 것
- 현업에서는 throw error를 사용하여 에러를 사전에 정의하여 처리하지만, 현재는 any로 출력될 수밖에 없음
- 함수의 매개변수에 type을 지정할 때는, 매개변수 하나하나 지정하는 것보다 interface로 정의한 뒤에 사용하는 것이 트렌드
- React.FC는 타입 추론이 어려우니 사용하지 말 것
디렉토리 및 코드 개선
- provider 하나하나 파일로 생성하지 말고, providers.tsx를 생성해서 그 안에 작성해볼 것
- .vscode 폴더는 .gitignore에 추가할 것
- supabase auth-helper 라이브러리를 사용해도 되나, 현재는 legacy로 전환되어 ssr 라이브러리를 사용함
- 생성해야 하는 클라이언트의 개수가 줄어 더 편리함
- 주석을 많이 남길 것
- 이왕 하는거 jsDoc을 활용해보는 것을 권장
- metadata의 title만 변경하지 말고 description도 함께 변경할 것
- api는 CRUD를 기반으로 작성할 것
고민해볼 부분
- custom hook을 사용한다면 왜 사용하는지 생각해볼 것
- 반복되는 절차를 정의하기 위해
- container/presentational 패턴
- alert는 어떤 방식으로 출력할 건지 생각해볼 것 (ex. toastify)
- 새로고침 시 데이터가 사라지는 문제는 zustand persist나 tanstack-query를 활용해볼 것
기술 면접 리허설
Question List
- 개발자가 되고싶은 이유
- Frontend를 선택한 이유
- 갈등 해결 경험
- Next.js 사용 이유
- 전역 상태관리
- tanstack-query
- 비동기 함수
- 이벤트버블링/이벤트캡쳐링
- 로컬스토리지/세션스토리지
- 쿠키/세션
Diary
- 최종 프로젝트
- 1차적으로 작업완료한 분량까지 통합을 진행하였다.
- 생각보다 진행도가 괜찮았다. 내가 너무 우려했던 것 같다.
- 하지만 너무 일부 팀원들이 업무를 과중하게 맡는 것 같아 걱정이다.
- 분발해야겠다.
- 면접 리허설
- 망했다. 그냥 말 그대로 망했다. 너무 처참하다.
- 처음부터 끝까지 제대로 한게 없었다.
- 실제 취업을 위해서는 준비를 해야하는데, 아직도 준비가 한참 미흡하다는 것이 막막하다.
- 큰일이다..
- 컨디션
- 이틀동안 단 30분밖에 자지 않았다.
- 이게 어떻게 가능한건지 싶지만, 우선은 버텨지고 있다.
- 걱정이다..