Skip to main content
์ด ๊ฐ€์ด๋“œ๋Š” Sonamu ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

์ „์ œ ์กฐ๊ฑด

์„ค์น˜ํ•˜๊ธฐ ๊ฐ€์ด๋“œ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์‹คํ–‰

Sonamu ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:
  • PostgreSQL - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • API ์„œ๋ฒ„ - ๋ฐฑ์—”๋“œ REST API (Sonamu UI ํฌํ•จ)
  • Web ์„œ๋ฒ„ - ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
1

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์ž‘

ํ”„๋กœ์ ํŠธ์˜ api ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ PostgreSQL ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

docker:up ์‹คํ–‰ ํ›„ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ๋กœ๊ทธ

์ด ๋ช…๋ น์–ด๋Š” Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด docker ps ๋ช…๋ น์–ด๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
docker ps ๊ฒฐ๊ณผ

docker ps ์‹คํ–‰ ๊ฒฐ๊ณผ (PostgreSQL ์ปจํ…Œ์ด๋„ˆ๊ฐ€ Up ์ƒํƒœ)

2

API ์„œ๋ฒ„ ์‹คํ–‰

๊ฐ™์€ api ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

pnpm dev ์‹คํ–‰ ํ›„ ์„œ๋ฒ„ ์‹œ์ž‘ ๋กœ๊ทธ

์„œ๋ฒ„๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:
์ด ๋ช…๋ น์–ด ํ•˜๋‚˜๋กœ ๋‹ค์Œ์ด ๋ชจ๋‘ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค:API ์„œ๋ฒ„๋Š” Hot Module Replacement(HMR)์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‹œ ์ž๋™์œผ๋กœ ์žฌ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” API ์„œ๋ฒ„๊ฐ€ Web ์•ฑ๊นŒ์ง€ ํ†ตํ•ฉํ•˜์—ฌ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Web ๋””๋ ‰ํ† ๋ฆฌ์˜ Vite Dev Server๋ฅผ API ์„œ๋ฒ„์— middleware๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•˜๋‚˜์˜ ํฌํŠธ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ํ„ฐ๋ฏธ๋„ ์ฐฝ์€ ๊ณ„์† ์—ด์–ด๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. API ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
3

Web ์„œ๋ฒ„ ์‹คํ–‰ (์„ ํƒ์‚ฌํ•ญ)

Web ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•˜๊ฑฐ๋‚˜ Vite์˜ ์ „์ฒด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์ƒˆ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์—ด๊ณ  web ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ณ„๋„๋กœ ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

web ๋””๋ ‰ํ† ๋ฆฌ์—์„œ pnpm dev ์‹คํ–‰ ํ›„ Vite ์‹œ์ž‘ ๋กœ๊ทธ

Vite ๊ฐœ๋ฐœ ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:
Web ์„œ๋ฒ„๋ฅผ ๋ณ„๋„๋กœ ์‹คํ–‰ํ•˜๋ฉด http://localhost:5173 ๋กœ ์ ‘์†ํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Web ์„œ๋ฒ„๋Š” /api/* ๊ฒฝ๋กœ ์š”์ฒญ์„ ์ž๋™์œผ๋กœ API ์„œ๋ฒ„(localhost:34900)๋กœ ํ”„๋ก์‹œํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๊ฐ€์ง€ ๊ฐœ๋ฐœ ๋ฐฉ์‹
  • ํ†ตํ•ฉ ๋ชจ๋“œ (๊ถŒ์žฅ): API ์„œ๋ฒ„๋งŒ ์‹คํ–‰ โ†’ localhost:34900๋กœ ๋ชจ๋“  ๊ฒƒ์— ์ ‘๊ทผ
  • ๋ถ„๋ฆฌ ๋ชจ๋“œ: API + Web ๋ณ„๋„ ์‹คํ–‰ โ†’ API๋Š” localhost:34900, Web์€ localhost:5173
๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ†ตํ•ฉ ๋ชจ๋“œ๋กœ ์ถฉ๋ถ„ํ•˜๋ฉฐ, Web ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ๋•Œ๋งŒ ๋ถ„๋ฆฌ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ ‘์† ํ™•์ธ

ํ†ตํ•ฉ ๋ชจ๋“œ (API ์„œ๋ฒ„๋งŒ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ)

๋ธŒ๋ผ์šฐ์ €์—์„œ ๋‹ค์Œ URL๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

๋ถ„๋ฆฌ ๋ชจ๋“œ (API + Web ์„œ๋ฒ„ ๋ชจ๋‘ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ)

Web ์•ฑ์— ์ ‘์†ํ•˜์—ฌ Sonamu ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

Sonamu UI ๊ธฐ๋Šฅ

๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:34900/sonamu-ui ๋กœ ์ ‘์†ํ•˜๋ฉด ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
  • ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ ๋ฐ ํŽธ์ง‘
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ด€๋ฆฌ
  • API ์—”๋“œํฌ์ธํŠธ ํ™•์ธ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์‹œ๊ฐํ™”
Sonamu UI

Sonamu UI Main Screen

์„œ๋ฒ„ ์ค‘์ง€

๊ฐœ๋ฐœ์„ ๋งˆ์น˜๊ณ  ์„œ๋ฒ„๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด:
  1. API ์„œ๋ฒ„ (๊ทธ๋ฆฌ๊ณ  Web ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ด๋ผ๋ฉด): ๊ฐ ํ„ฐ๋ฏธ๋„์—์„œ Ctrl + C ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: api ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
docker:down ๋ช…๋ น์–ด๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€๋งŒ ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋Š” ๋ณด์กด๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์™„์ „ํžˆ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„

๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ์ด์ œ ๋‹ค์Œ ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด Sonamu์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋ฐฐ์›Œ๋ณด์„ธ์š”:

์ฒซ ์—”ํ‹ฐํ‹ฐ ๋งŒ๋“ค๊ธฐ

Sonamu UI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•˜์„ธ์š”.

API ๊ฐœ๋ฐœํ•˜๊ธฐ

์—”ํ‹ฐํ‹ฐ ๊ธฐ๋ฐ˜์œผ๋กœ REST API๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜์„ธ์š”.

ํ”„๋ก ํŠธ์—”๋“œ ํ†ตํ•ฉ

์ž๋™ ์ƒ์„ฑ๋œ ์„œ๋น„์Šค ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ API๋ฅผ ํ˜ธ์ถœํ•˜์„ธ์š”.

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

Sonamu ํ”„๋กœ์ ํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์™€ ์ฃผ์š” ํŒŒ์ผ๋“ค์„ ์ดํ•ดํ•˜์„ธ์š”.