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

์‚ฌ์šฉ์ž๊ฐ€ ๋ณด์•ˆ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด AppMaster ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ์— ๋กœ๊ทธ์ธํ•˜๋ฉด ์„ธ์…˜์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด ์ธ์ฆ ํ”„๋กœ์„ธ์Šค์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ์ˆ˜์‹ ํ•˜๊ณ  PostgreSQL ํ˜ธํ™˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ๋Œ€ํ•ด ์ œ์ถœ๋œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋Š” ์ž‘์—…์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ธ์ฆ๋˜๋ฉด ๊ณ ์œ ํ•œ ์„ธ์…˜ ์‹๋ณ„์ž(์„ธ์…˜ ID)๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ์ด ์„ธ์…˜ ID๋Š” ํ›„์† ์š”์ฒญ ์ค‘์— ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ๊ตํ™˜๋˜๋Š” ํ† ํฐ ์—ญํ• ์„ ํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ธ์‹ํ•˜๊ณ  ์ƒํƒœ ์ €์žฅ, ๊ฐœ๋ณ„ ๋ฐ ๋ณด์•ˆ ํ™˜๊ฒฝ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

ํšจ๊ณผ์ ์œผ๋กœ ๊ตฌํ˜„๋˜๋ฉด ์„ธ์…˜์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ, ํ™•์žฅ์„ฑ ๋ฐ ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ์ธ AppMaster ์˜ ๋งฅ๋ฝ์—์„œ ์„ธ์…˜ ๊ด€๋ฆฌ๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์‹œ๊ฐ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ REST API ๋ฐ WebSocket๊ณผ ๊ฐ™์€ ์ตœ์‹  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉ๋œ ๊ฐ•๋ ฅํ•˜๊ณ  ์•ˆ์ „ํ•œ ์„ธ์…˜ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด AppMaster ์ƒ์„ฑ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ฐ˜์ ์ธ ์„ธ์…˜ ํ๋ฆ„์—๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ณด์•ˆ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ•˜๋ฉด Go ๊ธฐ๋ฐ˜ ๋ฐฑ์—”๋“œ๋Š” ๊ณ ์œ ํ•œ ์„ธ์…˜ ID๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์„ธ์…˜ ID๋Š” ์„œ๋ฒ„ ์ธก๊ณผ ํด๋ผ์ด์–ธํŠธ ์ธก ๋ชจ๋‘์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋˜๋ฉฐ ๋Œ€๊ฐœ ์•”ํ˜ธํ™”๋œ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉ์ž๊ฐ€ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ๋•Œ ์„ธ์…˜ ID๊ฐ€ ๊ฐ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
  4. ์„œ๋ฒ„๋Š” ์„ธ์…˜ ID์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ์— ์‘๋‹ตํ•˜์—ฌ ํƒ์ƒ‰ ๊ฒฝํ—˜ ์ „๋ฐ˜์— ๊ฑธ์ณ ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ์™€ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.
  5. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์•„์›ƒํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑ์œผ๋กœ ์ธํ•ด ์„ธ์…˜ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜๋ฉด ์„ธ์…˜ ID๊ฐ€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์ €์žฅ์†Œ ๋ชจ๋‘์—์„œ ์ œ๊ฑฐ๋˜์–ด ์„ธ์…˜์ด ํšจ๊ณผ์ ์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ AppMaster ์ƒ์„ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ธ์…˜์€ ์—…๊ณ„ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฅด๊ณ  ์—„๊ฒฉํ•œ ๋ณด์•ˆ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. AppMaster HTTPS, ๋ณด์•ˆ ์ฟ ํ‚ค ๋ฐ CSRF(Cross-Site Request Forgery) ๋ณดํ˜ธ์™€ ๊ฐ™์€ ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ์…˜ ๊ด€๋ จ ์ทจ์•ฝ์„ฑ์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ’€๋ง ๋ฐ Go ๊ธฐ๋ฐ˜ ๋ฌด์ƒํƒœ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ฐ™์€ ๋‚ด์žฅ๋œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ํ™•์žฅ์„ฑ๊ณผ ์‘๋‹ต์„ฑ์„ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค.

AppMaster ๊ณ„์† ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ ๊ณ ๊ธ‰ ์„ธ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›๋„ ๋Š˜์–ด๋‚  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐœ๋ฐœ์ž๋Š” ์•ˆ์ •์„ฑ, ์„ฑ๋Šฅ ๋ฐ ๋†’์€ ์ˆ˜์ค€์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด Redis, Memcached ๋˜๋Š” ๊ธฐํƒ€ ๋ถ„์‚ฐ ์บ์‹ฑ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ์„ธ์…˜ ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OAuth ๋˜๋Š” SAML ์ธ์ฆ ๊ณต๊ธ‰์ž์™€ ๊ฐ™์€ ์™ธ๋ถ€ ์„œ๋น„์Šค์™€์˜ ํ†ตํ•ฉ์€ ์ž ์žฌ์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ์„ ์œ„ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์„ ์ œ๊ณตํ•˜๊ณ  AppMaster ์˜ ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ "์„ธ์…˜"์ด๋ผ๋Š” ์šฉ์–ด๋Š” ์›น, ๋ชจ๋ฐ”์ผ ๋ฐ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์˜์—ญ์—์„œ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ํ•ต์‹ฌ ์ธก๋ฉด์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•˜๊ณ  ์•ˆ์ „ํ•œ ์„ธ์…˜ ์ฒ˜๋ฆฌ ๊ธฐ์ˆ ์— ์ค‘์ ์„ ๋‘ ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์›ํ™œํ•˜๊ณ  ์ง๊ด€์ ์ด๋ฉฐ ์•ˆ์ „ํ•œ ํƒ์ƒ‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ์˜ no-code ํ”Œ๋žซํผ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์— ๋ชจ๋ฒ” ์‚ฌ๋ก€์™€ ์—…๊ณ„ ํ‘œ์ค€์„ ํฌํ•จ์‹œ์ผœ ํฌ๊ด„์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์•ˆ์ „ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜์—ฌ ์ „๋ฐ˜์ ์ธ ํšจ์œจ์„ฑ๊ณผ ๋น„์šฉ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ๋†’์ž…๋‹ˆ๋‹ค.