# 박성우님 피드백
## [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() 에서 초기화부분 공통코드제거
## 추가
### 자기소개서
개인 스토리 보다는 기술 스펙 기반의 내용으로 변경