ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Building a Modern Restaurant POS with React, SurrealDB, and Docker ๐Ÿ•
Dev.toDev.to
Infrastructure

SurrealDB ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ Docker ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ POS ์‹œ์Šคํ…œ ๊ตฌ์ถ•

Building a Modern Restaurant POS with React, SurrealDB, and Docker ๐Ÿ•

Ahmed Ali2026๋…„ 4์›” 12์ผ1๋ถ„intermediate

Context

๊ธฐ์กด POS ์‹œ์Šคํ…œ์˜ ๊ณผ๋„ํ•œ ๊ธฐ๋Šฅ ๋น„๋Œ€ํ™” ๋ฐ ๋ ˆ๊ฑฐ์‹œ ๊ตฌ์กฐ๋กœ ์ธํ•œ ๋ฌด๊ฑฐ์šด ์šด์šฉ ํ™˜๊ฒฝ ๋ถ„์„. ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํšจ์œจ์„ฑ๊ณผ ํ˜„๋Œ€์ ์ธ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ํ™˜๊ฒฝ์˜ ํ•„์š”์„ฑ ๋Œ€๋‘.

Technical Solution

  • SurrealDB์˜ Multi-model ํŠน์„ฑ์„ ํ™œ์šฉํ•œ ์ฃผ๋ฌธ, ์žฌ๊ณ , ์ง์› ๊ฐ„ ๋ณต์žกํ•œ ๊ด€๊ณ„ ๋ชจ๋ธ๋ง ๋ฐ RDBMS ์˜ค๋ฒ„ํ—ค๋“œ ์ œ๊ฑฐ
  • WebSocket ๊ธฐ๋ฐ˜์˜ ์‹ค์‹œ๊ฐ„ ๋ ˆ์ด์–ด ๊ตฌ์ถ•์„ ํ†ตํ•œ ์ „ ๊ธฐ๊ธฐ ์ฆ‰๊ฐ์ ์ธ ์ฃผ๋ฌธ ์ƒํƒœ ๋™๊ธฐํ™” ๊ตฌํ˜„
  • Docker Compose ๊ธฐ๋ฐ˜์˜ ์ „ ํ™˜๊ฒฝ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ํ†ตํ•œ ๊ฐœ๋ฐœ-์šด์˜ ํ™˜๊ฒฝ ๊ฐ„ ์ผ๊ด€์„ฑ ํ™•๋ณด
  • Jotai ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ Custom Hook์„ ๊ฒฐํ•ฉํ•œ ๋ชจ๋ฐ”์ผ ๋ฐ ์›น ํ™˜๊ฒฝ์˜ ์˜์†์„ฑ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ตฌ์กฐ ์„ค๊ณ„
  • Nginx ๋ฐ Caddy ์„ค์ • ์ตœ์ ํ™”๋ฅผ ํ†ตํ•œ SurrealDB WebSocket ์—ฐ๊ฒฐ์˜ SSL ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ๋ฐ ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€ ์ด์Šˆ ํ•ด๊ฒฐ

1. ๋ณต์žกํ•œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ์™€ ์‹ค์‹œ๊ฐ„์„ฑ์ด ๋™์‹œ์— ํ•„์š”ํ•œ ๊ฒฝ์šฐ Multi-model DB์˜ WebSocket ์ง€์› ์—ฌ๋ถ€ ๊ฒ€ํ† 

2. ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ์‹œ DB ์ดˆ๊ธฐํ™” ํ”„๋กœํ•„(db-init)์˜ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์›Œํฌํ”Œ๋กœ์šฐ ์‚ฌ์ „ ์ •์˜

3. WebSocket ํ†ต์‹  ํ™˜๊ฒฝ์—์„œ SSL ์ธ์ฆ์„œ ์ฒ˜๋ฆฌ ๋ฐ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์„ค์ •์˜ ๋„คํŠธ์›Œํฌ ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆ

์›๋ฌธ ์ฝ๊ธฐ