---
# System prepended metadata

title: 박성우님 피드백

---

# 박성우님 피드백

## [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() 에서 초기화부분 공통코드제거


## 추가

### 자기소개서
개인 스토리 보다는 기술 스펙 기반의 내용으로 변경