Skip to content

Latest commit

ย 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Mock API & Admin UI ํ”„๋กœ์ ํŠธ ์ •๋ฆฌ

์Šคํƒ€๋ฒ…์Šค ์•ฑ๊ณผ ๋ฐฑ์—”๋“œ๊ฐ€ ๋™์‹œ์— ๊ฐœ๋ฐœ๋  ๋•Œ, ํ†ตํ•ฉ ๊ทœ๊ฒฉ์ด ๋Šฆ๊ฒŒ ํ™•์ •๋˜๊ฑฐ๋‚˜ ๋ฌธ์„œํ™”๋˜์–ด๋„ ๊ณง๋ฐ”๋กœ ์‹ค์ œ ์„œ๋ฒ„๋ฅผ ๋„์›Œ ํ…Œ์ŠคํŠธํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์•ฑ ๊ฐœ๋ฐœ์ž๋Š” โ€œ์„œ๋ฒ„๊ฐ€ ์•„์ง ์ค€๋น„๋˜์ง€ ์•Š์•„์„œโ€ ๋ฐ˜๋ณต ๊ฒ€์ฆ์ด ์ง€์—ฐ๋˜๊ฑฐ๋‚˜, ๋’ค๋Šฆ๊ฒŒ ์„œ๋ฒ„ ์ชฝ์—์„œ ๊ตฌํ˜„ ๋ถˆ๊ฐ€ ์‚ฌ์œ ๊ฐ€ ๋‚˜์™€ ์ „์ฒด ์ผ์ •์ด ํฌ๊ฒŒ ์–ด๊ธ‹๋‚˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žฆ์•˜์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์‹ค์ œ ์„œ๋ฒ„ ๋Œ€์‹  ์–ธ์ œ๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Mock API ์„œ๋ฒ„์™€ ์ด๋ฅผ ๊ด€๋ฆฌยท๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” Admin UI๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.


1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ๋ชฉํ‘œ
    Android ์•ฑ ํ…Œ์ŠคํŠธ์šฉ Mock API ์„œ๋ฒ„์™€, ์ด๋ฅผ ๊ด€๋ฆฌยท๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” ์›น UI ๊ตฌ์ถ•

  • ํ•ต์‹ฌ ๊ธฐ๋Šฅ

    1. ๋™์  ๋ผ์šฐํŠธ ๋“ฑ๋ก
      Method + Path โ†’ Status + JSON ์‘๋‹ต์„ UI์—์„œ ์ฆ‰์‹œ ๋“ฑ๋กยท์ˆ˜์ •ยท์‚ญ์ œ
    2. ์•ฑ ์—ฐ๋™
      ๋“ฑ๋ก๋œ ๋Œ€๋กœ
      https://๋น„๋ฐ€์ž…๋‹ˆ๋‹น~/{path}
      
      ํ˜ธ์ถœ
    3. ๊ด€๋ฆฌ UI
      https://๋น„๋ฐ€์ž…๋‹ˆ๋‹น~
      
      ์—์„œ ๋ชจ๋“  ๋ผ์šฐํŠธ ๊ด€๋ฆฌ

2. ๊ธฐ์ˆ  ์„ ํƒ ์ด์œ 

์ปดํฌ๋„ŒํŠธ ์Šคํƒ ์„ ํƒ ์ด์œ 
Backend Node.js + Express + Lowdb - ๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ดํ•‘
- ๋ณ„๋„ DB ์„œ๋ฒ„ ๋ถˆํ•„์š”
- JSON ํŒŒ์ผ๋กœ ์ฆ‰์‹œ ์ €์žฅ/๋ฒ„์ „ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
Frontend Vue 3 + Vite + TailwindCSS + DaisyUI - Vue 3 ์ปดํฌ์ง€์…˜ API๋กœ ๊ฐ„๊ฒฐํ•œ ์ƒํƒœ ๊ด€๋ฆฌ
- Vite ๋•๋ถ„์— ์ดˆ๊ณ ์† HMR
- Tailwind/DaisyUI๋กœ ์ตœ์†Œํ•œ์˜ CSS๋กœ ๊ท€์—ฌ์šด UI
Hosting Railway (API) / Netlify (UI) - ๋ฌด๋ฃŒ ํ‹ฐ์–ด์—์„œ ์ฆ‰์‹œ ๋ฐฐํฌ ๊ฐ€๋Šฅ
- GitHub ์—ฐ๋™, HTTPS ์ž๋™ ์ง€์›

3. ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๊ตฌ์„ฑ

  • Backend (index.js)

    GET / โ†’ Health Check (200 OK) GET/POST/PUT/DELETE /admin/routes โ†’ Lowdb ๊ธฐ๋ฐ˜ CRUD app.all('*') โ†’ ๋“ฑ๋ก๋œ Method+Path ๋งค์นญ โ†’ Mock JSON ์‘๋‹ต CORS: ๊ฐœ๋ฐœ(localhost:5173) & ํ”„๋กœ๋•์…˜(UI ๋„๋ฉ”์ธ) ํ—ˆ์šฉ ์ €์žฅ์†Œ: db.json (Lowdb JSONFile)

  • Frontend (App.vue)

    ํ•œ ํŽ˜์ด์ง€ SPA: API ๋“ฑ๋ก ์„น์…˜: Method, Path, Status, Response(JSON), Headers(JSON) ์ž…๋ ฅ Registered APIs ํ…Œ์ด๋ธ”: ๋ชฉ๋ก ์กฐํšŒ + ์‚ญ์ œ๋ฒ„ํŠผ loadRoutes(), addRoute(), deleteRoute() โ†’ fetch ์—ฐ๋™ Vite Dev Proxy: /admin/* โ†’ localhost:3000 (๋กœ์ปฌ CORS ํšŒํ”ผ)

  • ๋ฐฐํฌ

    Railway: ๋น„๋ฐ€์ž…๋‹ˆ๋‹น~
    
    FRONTEND_URL= ๋น„๋ฐ€์ž…๋‹ˆ๋‹น~
    Netlify: ๋น„๋ฐ€์ž…๋‹ˆ๋‹น~
    
    VITE_API_BASE_URL=๋น„๋ฐ€์ž…๋‹ˆ๋‹น~
    

4. ์•ฑ ๊ฐœ๋ฐœ์ž ๊ด€์  ์œ ์šฉ์„ฑ

  • ๋ฐฑ์—”๋“œ ์™„์„ฑ ์ „์—๋„ ๊ฐœ๋ฐœยท๊ฒ€์ฆ ๊ฐ€๋Šฅ
  • ์ •์˜๋œ ์ŠคํŽ™์œผ๋กœ Retrofit ์—ฐ๋™ ์‹œ์ž‘ โ†’ UI/UX, ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฏธ๋ฆฌ ๊ฒ€์ฆ
  • ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค ํ…Œ์ŠคํŠธ
  • 200/400/500 ๋“ฑ ์ƒํƒœ ์ฝ”๋“œ + ์ž„์˜ ํŽ˜์ด๋กœ๋“œ ๋“ฑ๋ก โ†’ ์•ฑ์˜ ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ๊ฐ•ํ™”
  • (์ถ”๊ฐ€ ๊ธฐ๋Šฅ) ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฐ€๋Šฅ
  • ํ™˜๊ฒฝ ์ผ๊ด€์„ฑ ํ™•๋ณด
  • ๋กœ์ปฌ(localhost:3000) โ†” ํ”„๋กœ๋•์…˜(.railway.app) ๊ฐ„ ์„ค์ • ํ•œ ์ค„ ๋ณ€๊ฒฝ
  • ํŒ€์› ๊ฐ„ ๋™์ผํ•œ Mock ๋ฐ์ดํ„ฐ๋กœ ๋””๋ฒ„๊น…ยทํšŒ์˜
  • ๋น ๋ฅธ ๋ฐ˜๋ณต(Iteration) & ํ”„๋กœํ† ํƒ€์ดํ•‘
  • ๊ด€๋ฆฌ UI์—์„œ ์ฆ‰์‹œ CRUD โ†’ ์•ฑ ์žฌ๋นŒ๋“œ ์—†์ด loadRoutes()๋กœ ์ฆ‰์‹œ ๋ฐ˜์˜
  • CI/CD ๋ฐ ์ž๋™ํ™” ํ…Œ์ŠคํŠธ ์—ฐ๋™
  • E2E ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ์—์„œ Mock API ์‚ฌ์šฉ โ†’ ์‹ค์ œ ์„œ๋ฒ„ ๋ถ€๋‹ด ์—†์ด ํšŒ๊ท€ ๊ฒ€์ฆ
  • Mock ๋ฐ์ดํ„ฐ seed ๊ด€๋ฆฌ๋กœ ๋™์ผ ์‹œ๋‚˜๋ฆฌ์˜ค ์žฌํ˜„

5. ํ–ฅํ›„ ํ™•์žฅ ๋ฐฉ์•ˆ

  • ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์—…๊ทธ๋ ˆ์ด๋“œ: Lowdb โ†’ PostgreSQL/MySQL (Prisma, TypeORM)
  • ์ธ์ฆยท์ธ๊ฐ€ ์ถ”๊ฐ€: JWT, OAuth, Role-based Access Control
  • ๊ณ ๊ธ‰ Mock ๊ธฐ๋Šฅ: ๋ ˆ์ดํ„ด์‹œ ์„ค์ •, ์—๋Ÿฌ ์ฃผ์ž…, ์ˆœ์ฐจ ์‘๋‹ต, ์Šคํฌ๋ฆฝํŒ…
  • ๋ฒ„์ „ ๊ด€๋ฆฌ & ๋ฌธ์„œํ™”: Swagger/OpenAPI, GitHub ์—ฐ๋™ ์ž๋™ ์ปค๋ฐ‹
  • ๋ชจ๋‹ˆํ„ฐ๋ง & ๋กœ๊น…: Prometheus, Grafana, Sentry
  • UI ๊ฐœ์„ : ๋ผ์šฐํŠธ ํŽธ์ง‘ ๋ชจ๋‹ฌ, ๊ฒ€์ƒ‰ยทํ•„ํ„ฐ, Bulk import/export

์ด ๊ตฌ์„ฑ์„ ํ†ตํ•ด ์•ฑ ๊ฐœ๋ฐœํŒ€์€ ์‹ค์ œ ์„œ๋ฒ„ ์ค€๋น„ ์—ฌ๋ถ€์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์•ˆ์ •์ ์ด๊ณ  ์ผ๊ด€๋œ ๊ฐœ๋ฐœยทํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ฆ‰์‹œ ๊ฒ€์ฆํ•˜๋ฉฐ, ์ผ์ • ์ง€์—ฐ ๋ฆฌ์Šคํฌ๋ฅผ ์ตœ์†Œํ™”ํ•˜์„ธ์š”!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages