diff --git a/package-lock.json b/package-lock.json index 7c90008..3434d02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "@types/react-dom": "^18", "@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/parser": "^7.0.0", + "autoprefixer": "^10.4.20", "eslint": "^8.56.0", "eslint-config-next": "14.1.0", "eslint-config-prettier": "^9.1.0", @@ -2386,6 +2387,7 @@ "version": "10.4.20", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, "funding": [ { "type": "opencollective", @@ -2614,6 +2616,7 @@ "version": "4.24.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -3430,7 +3433,8 @@ "node_modules/electron-to-chromium": { "version": "1.5.97", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.97.tgz", - "integrity": "sha512-HKLtaH02augM7ZOdYRuO19rWDeY+QSJ1VxnXFa/XDFLf07HvM90pALIJFgrO+UVaajI3+aJMMpojoUTLZyQ7JQ==" + "integrity": "sha512-HKLtaH02augM7ZOdYRuO19rWDeY+QSJ1VxnXFa/XDFLf07HvM90pALIJFgrO+UVaajI3+aJMMpojoUTLZyQ7JQ==", + "dev": true }, "node_modules/emittery": { "version": "0.13.1", @@ -3663,6 +3667,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "engines": { "node": ">=6" } @@ -4633,6 +4638,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, "engines": { "node": "*" }, @@ -7602,7 +7608,8 @@ "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", @@ -7617,6 +7624,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -8089,6 +8097,7 @@ "version": "8.5.2", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -8224,7 +8233,8 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -9892,6 +9902,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, "funding": [ { "type": "opencollective", diff --git a/package.json b/package.json index 5edce5f..61c0891 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@types/react-dom": "^18", "@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/parser": "^7.0.0", + "autoprefixer": "^10.4.20", "eslint": "^8.56.0", "eslint-config-next": "14.1.0", "eslint-config-prettier": "^9.1.0", diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 634143e..dc915d8 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,5 @@ import type { Metadata } from 'next'; - -import './globals.css'; +import '../styles/globals.css'; export const metadata: Metadata = { title: 'Create Next App', diff --git a/src/app/test/components/TestComponent.tsx b/src/app/test/components/TestComponent.tsx new file mode 100644 index 0000000..553e971 --- /dev/null +++ b/src/app/test/components/TestComponent.tsx @@ -0,0 +1,5 @@ +const TestComponent = () => { + return
test 페이지에서만 종속되는 컴포넌트들이 포함되어야 합니다.
; +}; + +export default TestComponent; diff --git a/src/app/test/page.tsx b/src/app/test/page.tsx new file mode 100644 index 0000000..09cd151 --- /dev/null +++ b/src/app/test/page.tsx @@ -0,0 +1,10 @@ +function TestPage() { + return ( +
+ 테스트 페이지 입니다. 페이지임을 식별하기 위해 접미사로 Page를 붙입니다. + 페이지 컴포넌트는 함수 선언문을 사용합니다. +
+ ); +} + +export default TestPage; diff --git a/src/assets/README.md b/src/assets/README.md new file mode 100644 index 0000000..a6cb4af --- /dev/null +++ b/src/assets/README.md @@ -0,0 +1,3 @@ +## assets 폴더 + +### 프로젝트에서 사용되는 정적 자산을 포함하는 폴더입니다. diff --git a/src/app/favicon.ico b/src/assets/icon/favicon.ico similarity index 100% rename from src/app/favicon.ico rename to src/assets/icon/favicon.ico diff --git a/src/components/README.md b/src/components/README.md new file mode 100644 index 0000000..ab8d09c --- /dev/null +++ b/src/components/README.md @@ -0,0 +1,9 @@ +## components 폴더 + +### 공통으로 사용되는 컴포넌트를 정의하는 폴더입니다. + +common 폴더에는 공통으로 사용되는 조합 컴포넌트를 정의합니다. +ex) ProfileCard + +ui 폴더에는 공통으로 사용되는 상태나 비즈니스 로직이 없는 순수 컴포넌트를 정의합니다. +ex) Card \ No newline at end of file diff --git a/src/hooks/README.md b/src/hooks/README.md new file mode 100644 index 0000000..376a29e --- /dev/null +++ b/src/hooks/README.md @@ -0,0 +1,7 @@ +## hooks 폴더 + +### 커스텀 훅을 정의하는 폴더입니다. + +common 폴더에는 전역에서 사용할 커스텀 훅들을 정의합니다.
+queries 폴더에는 tanstack-query의 useQuries를 사용한 커스텀 훅들을 정의합니다.
+mutations 폴더에는 tanstack-query의 useMutations를 사용한 커스텀 훅들을 정의합니다. diff --git a/src/lib/README.md b/src/lib/README.md new file mode 100644 index 0000000..c386f74 --- /dev/null +++ b/src/lib/README.md @@ -0,0 +1,5 @@ +## lib 폴더 + +### 외부 라이브러리 연동 코드 및 로직을 모아두는 폴더입니다. + +axios, react-query 같은 서드파티 라이브러리 초기화 등을 정의합니다.
diff --git a/src/service/README.md b/src/service/README.md new file mode 100644 index 0000000..de31628 --- /dev/null +++ b/src/service/README.md @@ -0,0 +1,5 @@ +## service 폴더 + +### 핵심 비즈니스 로직과 API 호출을 관리하는 폴더입니다. + +api > endpoints 폴더에는 API 엔드포인트를 상수로 관리합니다. diff --git a/src/service/api/endpoints.ts b/src/service/api/endpoints.ts new file mode 100644 index 0000000..30b5723 --- /dev/null +++ b/src/service/api/endpoints.ts @@ -0,0 +1,5 @@ +export const API_BASE_URL = 'http://3.34.218.217:8080/'; + +export const ENDPOINTS = { + TEST: `${API_BASE_URL}/test`, +} as const; diff --git a/src/store/README.md b/src/store/README.md new file mode 100644 index 0000000..3c03f50 --- /dev/null +++ b/src/store/README.md @@ -0,0 +1,3 @@ +## store 폴더 + +### 전역으로 사용될 스토어를 정의하는 폴더입니다. diff --git a/src/styles/README.md b/src/styles/README.md new file mode 100644 index 0000000..0da05ed --- /dev/null +++ b/src/styles/README.md @@ -0,0 +1,3 @@ +## styles 폴더 + +### 전역으로 사용될 css 파일을 모아두는 폴더입니다. diff --git a/src/app/globals.css b/src/styles/globals.css similarity index 100% rename from src/app/globals.css rename to src/styles/globals.css diff --git a/src/types/README.md b/src/types/README.md new file mode 100644 index 0000000..3c90ac7 --- /dev/null +++ b/src/types/README.md @@ -0,0 +1,3 @@ +## types 폴더 + +### 전역으로 사용될 타입을 모아두는 폴더입니다. \ No newline at end of file diff --git a/src/util/README.md b/src/util/README.md new file mode 100644 index 0000000..efeeec2 --- /dev/null +++ b/src/util/README.md @@ -0,0 +1,5 @@ +## util 폴더 + +### 프로젝트에서 재사용되는 유틸리티 함수들을 모아두는 폴더입니다. + +문자열 포맷팅, 날짜처리, 공통 헬퍼 함수 등을 정의합니다.