.
├── api - api 호출 함수
│ └── scheme - 요청/응답 타입 선언
├── components - 컴포넌트들
│ ├── common - 공유되어 사용될 수 있는 컴포넌트
│ │ ├── Buttons
│ │ │ ├── BasicButton
│ │ │ ├── CircleButton
│ │ │ ├── IconButton
│ │ │ └── OAuthButton
│ │ ├── Dialog
│ │ ├── DropZone
│ │ ├── Icon
│ │ ├── Link
│ │ ├── Modal
│ │ ├── Notification
│ │ ├── Pagination
│ │ ├── ResizableBox
│ │ ├── Selector
│ │ ├── Table
│ │ └── Typhography
│ ├── guard - 페이지 가드에 사용되는 hoc
│ ├── layouts - 헤더, 바디, 푸터같은 레이아웃을 담당하는 컴포넌트
│ └── unit - 특정 페이지나 컴포넌트에 상속되어 사용되는 컴포넌트들
│ ├── comment
│ ├── problem
│ │ ├── problemCard
│ │ ├── problemForm
│ │ └── problemSolveView
│ ├── search
│ ├── solution
│ └── submissions
├── cypress - e2e테스트
│ ├── downloads
│ └── fixtures
├── hooks - 공통적으로 사용되는 커스텀 훅
├── pages - 페이지들
│ ├── admin
│ │ └── problem
│ ├── oauth2
│ │ └── redirect
│ ├── problem
│ ├── reset-password
│ ├── send-message
│ ├── solution
│ └── user
├── public
│ ├── images
│ │ ├── grip
│ │ ├── icon_search
│ │ └── logo
│ └── lottie
├── store - redux store, 리덕스 관련된 것은 모두 해당 디렉토리에 있음
│ ├── middleware
│ └── slice
├── styles - global style이나 styled-component 설정들
├── @types - 타입 덮어씌우기가 필요한 곳에 사용
└── utils - 범용적으로 사용되는 함수, 헬퍼, 상수들 모아놓은 디렉토리
└── constants