# 박성우님 피드백 ## [Github] Eval42-front ### 공통 - typescript 를 사용하지 않았는데 ts로 작성된 곳 다수. 코드로만 보면 jsx로 작성하는게 나아보임. - 대부분의 컴포넌트 및 페이지에서 리랜더링 요소는 memo, hooks 등으로 퍼포먼스 상향 가능. - 랜더링 된 최종 element에서 불필요한 태그들이 너무 많음. (ex: empty div) ### Folder Structure ``` 기능단위로 구조화 및 분리 - view영역 (components, containers, layouts, pages ...) - model영역 (store, reduce, action, service ...) - router영역 (routes ...) - core영역 (utils, plugins, providers) - redux, mobx 등 잘 된 패키지 사이트 참고 ``` - 폴더 내부 index.ts 없음 - components - ant-design components 와 page 분리 - element style 관련 - class 사용 - atoms/*.ts - interface(type)과 components들 분리 - organisms/LandingHeader.tsx - component에 비즈니스 로직은 기능 분리. if문 하나에서 다수 로직 처리하는 방식은 운영이슈 발생. - pages/*.tsx - 로딩, 로그인 중복 코드는 hoc로 변경. - pages/Landing.tsx - a태그 하위에 Button? - pages/Landing.tsx - 분기문에 있는 컴포넌트는 atom으로 분리하거나 하나의 컴포넌트로 가능할듯 - pages/Profile.tsx - 불필요한 div 제거 - pages/Slot.tsx - 하나의 액션에서 복잡한 로직이 실행 됨. 로직 분리 및 hooks 사용. - pages/Slot.tsx - layout 리팩토링 필요 - util - redux 분리 - SlotControl.ts - 함수형프로그래밍 참고 - redux/*.ts - reduce와 store, (action)은 src 글로벌로 이동 추천 - redux/types.ts - type을 한 파일에서 관리하면 가독성 등 운영이슈 발생. 외부에 types 폴더를 두고 관리 추천. - redux/useSlice.ts - removeUserToken()과 loadingUser() 에서 초기화부분 공통코드제거 ## 추가 ### 자기소개서 개인 스토리 보다는 기술 스펙 기반의 내용으로 변경