μ΄ νλ‘μ νΈλ μ¬μ©μλ€μ΄ μ€κ³ λ¬Όνμ λ±λ‘νκ³ κ±°λν μ μλ μ¨λΌμΈ λ§μΌ νλ«νΌμ λλ€. μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€μ μ§κ΄μ μΈ λμμΈμΌλ‘ λꡬλ μ½κ² λ¬Όνμ λ±λ‘νκ³ κ²μν μ μμ΅λλ€.
- λ¬Όν λ±λ‘: μ¬μ©μλ ν맀νκ³ μ νλ λ¬Όνμ μ λͺ©, λ΄μ©, κ°κ²©μ μ λ ₯νκ³ μ΄λ―Έμ§λ₯Ό 첨λΆνμ¬ λ±λ‘ν μ μμ΅λλ€.
- λ¬Όν μμΈ μ 보: κ° λ¬Όνμ μμΈ μ 보λ₯Ό νμΈν μ μμΌλ©°, λκΈμ ν΅ν΄ ν맀μμ μν΅ν μ μμ΅λλ€.
- λ¬Όν μμ /μμ : λ±λ‘ν λ¬Όνμ μ 보λ₯Ό μμ νκ±°λ μμ ν μ μμ΅λλ€. λΉλ°λ²νΈλ₯Ό ν΅ν΄ μμ±μ μΈμ¦μ΄ μ΄λ£¨μ΄μ§λλ€.
- μ΄λ―Έμ§ μ λ‘λ: λ¬Όν λ±λ‘ μ μ¬λ¬ μ₯μ μ΄λ―Έμ§λ₯Ό 첨λΆν μ μμ΅λλ€.
- React: μ¬μ©μ μΈν°νμ΄μ€ ꡬμΆ
- TypeScript: νμ μμ μ± ν보
- React Router: ν΄λΌμ΄μΈνΈ μ¬μ΄λ λΌμ°ν
- Axios: API ν΅μ
- Node.js: μλ² νκ²½
- Express: μΉ νλ μμν¬
- Sequelize: ORM(Object-Relational Mapping)
- SQLite: λ°μ΄ν°λ² μ΄μ€
- Multer: νμΌ μ λ‘λ μ²λ¦¬
- Swagger: API λ¬Έμν
market/
βββ client/ # νλ‘ νΈμλ
β βββ src/
β β βββ api/ # API νΈμΆ ν¨μ
β β βββ assets/ # μ μ μμ° (μ΄λ―Έμ§, ν°νΈ λ±)
β β βββ components/ # μ¬μ¬μ© κ°λ₯ν μ»΄ν¬λνΈ
β β βββ context/ # React Context
β β βββ hooks/ # 컀μ€ν
ν
β β βββ pages/ # νμ΄μ§ μ»΄ν¬λνΈ
β β βββ types/ # TypeScript νμ
μ μ
β β βββ utils/ # μ νΈλ¦¬ν° ν¨μ
β β βββ App.tsx # λ©μΈ μ± μ»΄ν¬λνΈ
β β βββ main.tsx # μ± μ§μ
μ
β βββ package.json # νλ‘ νΈμλ μμ‘΄μ±
β
βββ server/ # λ°±μλ
β βββ src/
β β βββ controllers/ # 컨νΈλ‘€λ¬
β β βββ middlewares/ # λ―Έλ€μ¨μ΄
β β βββ models/ # λ°μ΄ν° λͺ¨λΈ
β β βββ routes/ # API λΌμ°νΈ
β β βββ utils/ # μ νΈλ¦¬ν° ν¨μ
β β βββ app.js # μλ² μ§μ
μ
β βββ uploads/ # μ
λ‘λλ νμΌ μ μ₯μ
β βββ package.json # λ°±μλ μμ‘΄μ±
cd client
npm install
npm run dev
cd server
npm install
npm run dev
μλ² μ€ν ν λ€μ URLμμ Swagger API λ¬Έμλ₯Ό νμΈν μ μμ΅λλ€:
http://localhost:3000/api-docs
- Node.js 18.x μ΄μ
- npm 9.x μ΄μ
μ΄ νλ‘μ νΈλ MIT λΌμ΄μΌμ€ νμ λ°°ν¬λ©λλ€.