├── public
│ ├── fonts
│ ├── icons
│ └── images
│
└── src
├── @types
├── common
├── components
├── config
├── constant
├── hooks
├── pages
├── styles
└── utils
assets 관리
타입 관리
user.ts
theme.ts
wine.ts
공용 컴포넌트 관리 (파일명은 대문자로 시작)
Error.tsx
Loading.tsx
Route.tsx
Button.tsx
Tag.tsx
컴포넌트 관리 (페이지별로 폴더를 생성, 각 페이지에서 사용하는 컴포넌트 분류)
user/Profile.tsx
user/Setting.tsx
main/CardContainer.tsx
main/Card.tsx
main/Notice.tsx
공통 상수 관리 (api, 미디어 쿼리, 색상)
API ENDPOINT
export const API_ENDPOINT = http://localhost:3000"
MEDIA QUERY
export const MEDIA_QUERY_END_POINT = {
MOBILE: "640px",
TABLET: "1280px",
DESKTOP: "1920px",
LARGE: "2560px",
};
THEME
export const lightTheme = {
BACKGROUND: "#fdfdff",
MAIN_FONT: "#202124",
SUB_FONT: "#30373e",
BUTTON_MAIN: "#8080b8",
BUTTON_SUB: "#b6b1e9",
WARNING_MAIN: "#ef5350",
WARNING_SUB: "#ff867c",
}
옵션 관리
export const EDITOR_CONFIG = {...}
공통 hooks 관리 (파일명은 use로 시작)
useData.ts
useDarkMode.ts
useUser.ts
router 페이지 관리 (nextJS)
sign-in.tsx
sign-up.tsx
post/[id].tsx
style 관리
globals.css
로직(순수 함수) 관리
fetcher.tsx
getDate.tsx
ex)getUser(o)
useState
의 최소화props
가 전달되는가?state
와 props
로 계산이 가능한가?import
는 외부 패키지 부터 내부 패키지 순&&
, ||
적용 체크해보기styled-component
, emotionJS
를 쓸 경우 컴포넌트 상단이 아니라 하단에서 스타일 정의