๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋งฅ๋ฝ์—์„œ Have ์ ˆ์€ SQL(Structured Query Language) ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฒ€์ƒ‰๋œ ๋ฐ์ดํ„ฐ์˜ ๊ณ ๊ธ‰ ํ•„ํ„ฐ๋ง์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๊ฐ•๋ ฅํ•˜๊ณ  ํ•„์ˆ˜์ ์ธ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ–‰ ์ง‘ํ•ฉ์— ๋Œ€ํ•ด ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‹จ์ผ ์ถœ๋ ฅ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์ง‘๊ณ„ ํ•จ์ˆ˜์—๋Š” COUNT, SUM, AVG, MAX ๋ฐ MIN์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Have ์ ˆ์€ GROUP BY ์ ˆ ๋’ค์— ์ ์šฉ๋˜๋ฉฐ ์ง€์ •๋œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ์ง‘๊ณ„ ํ•จ์ˆ˜์—์„œ ํŒŒ์ƒ๋œ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

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

Have ์ ˆ์˜ ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์˜ˆ๋ฅผ ๊ณ ๋ คํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํšŒ์‚ฌ์—์„œ ํŠน์ • ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•˜๋Š” ํŒ๋งค๋Ÿ‰์ด ์žˆ๋Š” ๋ฒ”์ฃผ๋ณ„๋กœ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ œํ’ˆ์˜ ์ด ํŒ๋งค๋Ÿ‰์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋Š” ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” GROUP BY ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , Have ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทœ์ •๋œ ์กฐ๊ฑด(์˜ˆ: ํŒ๋งค ์ž„๊ณ„๊ฐ’)์— ๋”ฐ๋ผ ๊ทธ๋ฃนํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. Have ์ ˆ์„ ํ™œ์šฉํ•˜๋Š” ์˜ˆ์ œ SQL ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ, SUM(sales_volume) AS total_sales
์ œํ’ˆ์—์„œ
์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๊ทธ๋ฃน
HAVING total_sales > ํŠน์ •_์ž„๊ณ„๊ฐ’;

์œ„ ์ฟผ๋ฆฌ์—์„œ๋Š” "products" ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๊ฐ€ "category" ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”๋˜๊ณ  "SUM" ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง‘๊ณ„๋œ ํŒ๋งค๋Ÿ‰์ด ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ์ด ํŒ๋งค๋Ÿ‰์ด ์ง€์ •๋œ ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ํฐ ๋ฒ”์ฃผ๋งŒ ํ‘œ์‹œํ•˜๋„๋ก ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด Have ์ ˆ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

AppMaster ์˜ ๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ์€ ์›น, ๋ชจ๋ฐ”์ผ ๋ฐ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ค๊ณ„, ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์„ ํฌ๊ฒŒ ์ค„์—ฌ์ค๋‹ˆ๋‹ค. Have ์ ˆ๊ณผ ๊ธฐํƒ€ SQL ๊ตฌ์„ฑ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ AppMaster ๋Š์ž„์—†์ด ์ง„ํ™”ํ•˜๋Š” ์‚ฌ์šฉ์ž ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์ตœ์ฒจ๋‹จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์ ์‘ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์€ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Go(golang), ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ JS/TS, ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Kotlin, Jetpack Compose ๋ฐ SwiftUI ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ๋Œ€ํ™”ํ˜• UI, ์ง๊ด€์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ์„ ๊ฐ–์ถ˜ ํฌ๊ด„์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œํ’ˆ๊ตฐ์ด ํƒ„์ƒํ–ˆ์œผ๋ฉฐ ์ด ๋ชจ๋“  ์ž‘์—…์€ ๋‹จ ํ•œ ์ค„์˜ ์ฝ”๋“œ๋„ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

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