์ฟผ๋ฆฌ ๊ณ„ํš์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜์—ญ์˜ ํ•„์ˆ˜์ ์ด๊ณ  ํ•„์ˆ˜์ ์ธ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์˜ ๋งฅ๋ฝ์—์„œ ์ฟผ๋ฆฌ ๊ณ„ํš์€ ํšจ์œจ์ ์œผ๋กœ ์•ก์„ธ์Šค, ๊ฒ€์ƒ‰ ๋ฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS)์—์„œ ์ ์šฉํ•  ์ž‘์—…๊ณผ ๊ธฐ์ˆ ์„ ๊ณ„์ธต์ ์ด๊ณ  ์ตœ์ ํ™”ํ•˜์—ฌ ํ‘œํ˜„ํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ์ฟผ๋ฆฌ์—์„œ ์š”์ฒญํ•œ ํ•„์ˆ˜ ๋ฐ์ดํ„ฐ.

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

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

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

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‘ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ณ  ์ œํ’ˆ๋ณ„ ํŒ๋งค๋Ÿ‰์„ ์ง‘๊ณ„ํ•˜์—ฌ "products" ๋ฐ "sales" ํ…Œ์ด๋ธ”์—์„œ ์ œํ’ˆ์˜ ์ด๋ฆ„๊ณผ ์ด ํŒ๋งค๋Ÿ‰์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฐ„๋‹จํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”.

p.product_name, SUM(s.sales_amount)์„ total_sales๋กœ ์„ ํƒํ•˜์„ธ์š”.
์ œํ’ˆ p์—์„œ
JOIN ํŒ๋งค s ON p.product_id = s.product_id
GROUP BY p.์ œํ’ˆ_์ด๋ฆ„

์ฟผ๋ฆฌ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉํ•  ์กฐ์ธ ๋ฐฉ๋ฒ•(์˜ˆ: ์ค‘์ฒฉ ๋ฃจํ”„ ์กฐ์ธ, ํ•ด์‹œ ์กฐ์ธ ๋˜๋Š” ๋ณ‘ํ•ฉ ์กฐ์ธ), ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•(์˜ˆ: ์ˆœ์ฐจ ์Šค์บ”, ์ธ๋ฑ์Šค ์Šค์บ”), ํ…Œ์ด๋ธ” ์กฐ์ธ ์ˆœ์„œ. ์„ ํƒํ•œ ์ฟผ๋ฆฌ ๊ณ„ํš์—๋Š” "product_id" ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "products" ํ…Œ์ด๋ธ”์„ ์Šค์บ”ํ•˜๊ณ , "sales" ํ…Œ์ด๋ธ”๊ณผ ํ•ด์‹œ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ, ๊ฒฐ๊ณผ ํŠœํ”Œ์— ํ•ด์‹œ ๊ธฐ๋ฐ˜ ์ง‘๊ณ„๋ฅผ ์ ์šฉํ•˜์—ฌ ์ด ๋งค์ถœ์„ ๊ณ„์‚ฐํ•˜๋Š” ์ž‘์—…์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ’ˆ๋ณ„.

AppMasterno-code ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ ์ฟผ๋ฆฌ ๊ณ„ํš์˜ ์ž๋™ ์ƒ์„ฑ, ์ตœ์ ํ™” ๋ฐ ์‹คํ–‰์€ ํ”Œ๋žซํผ์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค, ๋กœ์ง ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ธต ๊ฐ„์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ์˜ ํšจ์œจ์ ์ธ ๊ฒ€์ƒ‰ ๋ฐ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ. AppMaster PostgreSQL๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ RDBMS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ ๊ณ„ํš ๋ฐ ์ตœ์ ํ™”๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ํ”Œ๋žซํผ์—์„œ Go, Vue3, Kotlin ๋ฐ Jetpack Compose ์‚ฌ์šฉํ•˜๋ฉด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ๋ฐ ๊ธฐ์ˆ ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ๋ณด์žฅ๋˜์–ด ๊ณ ๊ฐ์—๊ฒŒ ๊ทœ๋ชจ์™€ ๊ด€๊ณ„์—†์ด ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ ๋น„์šฉ ํšจ๊ณผ์ ์ธ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋„๋ฉ”์ธ.

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