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

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์ฑ„ํƒ๋œ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ค‘ ํ•˜๋‚˜๋Š” JWT(JSON Web Token) ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. JWT๋Š” RFC 7519์—์„œ ์ •์˜ํ•œ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์œผ๋กœ, JSON ๊ฐœ์ฒด ํ˜•์‹์œผ๋กœ ๋‹น์‚ฌ์ž ๊ฐ„์— ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์ปดํŒฉํŠธํ•˜๊ณ  URL ์•ˆ์ „ํ•˜๋ฉฐ ์ž์ฒด ํฌํ•จ๋œ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋Š” ๋น„๋ฐ€ ํ‚ค, ์•”ํ˜ธํ™” ์„œ๋ช… ๋˜๋Š” ๊ณต๊ฐœ/๊ฐœ์ธ ํ‚ค ์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””์ง€ํ„ธ ์„œ๋ช…๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ™•์ธํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JWT๋Š” ํŠนํžˆ RESTful API, SPA(๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜) ๋ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ์ตœ์‹  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๊ณ  API endpoints ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

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

AppMaster no-code ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ํ†ตํ•ฉ์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์‹œ๊ฐ์  ๋””์ž์ธ, BP(Business Process) ๋””์ž์ด๋„ˆ๋ฅผ ํ†ตํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ƒ์„ฑ, REST API ๋ฐ WSS endpoints ์ •์˜์™€ ๊ฐ™์€ ํ† ํฐ ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ๊ตฌํ˜„์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ํฌ๊ด„์ ์ธ ๋„๊ตฌ ๋ฐ ๊ธฐ๋Šฅ ์ œํ’ˆ๊ตฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. AppMaster ๋กœ ์ƒ์„ฑ๋œ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ๊ณผ ๋›ฐ์–ด๋‚œ ํ™•์žฅ์„ฑ์œผ๋กœ ์•Œ๋ ค์ง„ Go(golang) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋˜์–ด ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐ ๊ณ ๋ถ€ํ•˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ AppMaster ํ† ํฐ ๋ฐ ๊ด€๋ จ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” PostgreSQL๊ณผ ๊ฐ™์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ํ”Œ๋žซํผ์€ ์„œ๋ฒ„ endpoints ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ๋ฌธ์„œ ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ์„ ์ง€์›ํ•˜์—ฌ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ตœ์†Œํ•œ์˜ ๊ธฐ์ˆ  ๋ถ€์ฑ„๋กœ ํšจ๊ณผ์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๊ณ  ๋ฐฐํฌ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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