HTTP ๋˜๋Š” Hypertext Transfer Protocol์€ World Wide Web(WWW)์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ฐ ํ†ต์‹ ์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. 1989๋…„ Tim Berners-Lee ๊ฒฝ์ด ์ฒ˜์Œ ๊ฐœ๋ฐœํ•œ HTTP๋Š” ์›น ์„œ๋ฒ„๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ € ๋ฐ ๊ธฐํƒ€ ์ธํ„ฐ๋„ท ๊ฐ€๋Šฅ ์žฅ์น˜์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ฃผ์š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ ์—ญํ• ์„ ํ•˜๋Š” ํ˜„๋Œ€ ์ธํ„ฐ๋„ท์˜ ์ดˆ์„์ž…๋‹ˆ๋‹ค.

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

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

์ด๋Ÿฌํ•œ ์ œํ•œ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์ด ๊ฐœ๋ฐœ๋˜์–ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ผ์ • ์ˆ˜์ค€์˜ ์ƒํƒœ์™€ ์š”์ฒญ ์‚ฌ์ด์˜ ์—ฐ์†์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ HTTPS(HTTP Secure)๋Š” ๋ณด์•ˆ TLS(Transport Layer Security) ๋˜๋Š” SSL(Secure Sockets Layer) ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ž‘๋™ํ•˜๋Š” HTTP ๋ฒ„์ „์œผ๋กœ, ์„œ๋ฒ„์˜ ์•”ํ˜ธํ™” ๋ฐ ๋ณด์•ˆ ์ธ์ฆ์„ ์ œ๊ณตํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท.

HTTP๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฉ”์„œ๋“œ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค์—์„œ ์ˆ˜ํ–‰ํ•  ์›ํ•˜๋Š” ์ž‘์—…์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์€ GET(๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰), POST(์ƒˆ ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ), PUT(๊ธฐ์กด ๋ฆฌ์†Œ์Šค ์—…๋ฐ์ดํŠธ) ๋ฐ DELETE(๋ฆฌ์†Œ์Šค ์ œ๊ฑฐ)์ž…๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ํ”„๋กœํ† ์ฝœ ์‚ฌ์šฉ์„ ๋ณด์žฅํ•˜๊ณ  ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด HTTP์—๋Š” ์ฃผ์–ด์ง„ ์š”์ฒญ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œ์ค€ํ™”๋œ ์ƒํƒœ ์ฝ”๋“œ ๋ชฉ๋ก๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํƒœ ์ฝ”๋“œ๋Š” ์›น ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์š”์ฒญ-์‘๋‹ต ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

AppMaster ์ปจํ…์ŠคํŠธ์—์„œ ํ”Œ๋žซํผ์€ ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ REST(REpresentational State Transfer) API endpoints ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. RESTful API๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ HTTP ๋ฉ”์„œ๋“œ ๋ฐ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ HTTP ์œ„์— ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ API๋ฅผ ํ†ตํ•ด AppMaster ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ƒ์„ฑ๋œ RESTful API๋Š” Android์šฉ Kotlin ๋ฐ Jetpack Compose ์™€ iOS์šฉ SwiftUI ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AppMaster ์˜ ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋นŒ๋“œ๋œ Vue3(์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ์— AppMaster ์—์„œ ์‚ฌ์šฉ) ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ํ”„๋ŸฐํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTTP๋Š” ์—ฌ๋Ÿฌ ์žฅ์น˜์™€ ํ”Œ๋žซํผ์—์„œ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ง€์›๋˜๋ฏ€๋กœ AppMaster ๋Š” HTTP๋ฅผ ํ†ต์‹ ์˜ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์›น ์„œ๋น„์Šค ๋ฐ ์‹œ์Šคํ…œ๊ณผ์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ ๋ฐ ํ†ตํ•ฉ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

AppMaster Swagger(OpenAPI) ๋ฌธ์„œ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ HTTP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋œ RESTful API๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ Enterprise ๊ตฌ๋… ๊ณ ๊ฐ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํŠน์ • ์•„ํ‚คํ…์ฒ˜ ๋˜๋Š” ๋ณด์•ˆ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Stateless Go ๊ธฐ๋ฐ˜ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ ๋ฐ ํ™•์žฅ์„ฑ ์ด์ ๊ณผ ๊ฒฐํ•ฉ๋œ Postgresql ํ˜ธํ™˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AppMaster ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์›น ๊ธฐ์ˆ ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ณ ๋ถ€ํ•˜ ๋ฐ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTTP์ฒ˜๋Ÿผ.

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