์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜์˜ ๋งฅ๋ฝ์—์„œ ํด๋กœ์ € ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ํด๋กœ์ €์™€ ์—ฐ๊ด€๋œ ํŠน์ • ์œ ํ˜•์˜ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜๋Š” ์ •์˜ ๋‹น์‹œ ์ฃผ๋ณ€ ๋ฒ”์œ„์˜ ์™ธ๋ถ€ ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋กœ์ € ๋ณ€์ˆ˜์˜ ๊ฐœ๋…์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋ ค๋ฉด ๋จผ์ € ํด๋กœ์ €์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ์„ ๋…ผ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

ํด๋กœ์ €๋Š” ์ฃผ๋ณ€(ํฌํ•จํ•˜๋Š”) ์–ดํœ˜ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์œ ์ง€ํ•˜๋Š” ํ•จ์ˆ˜ ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ƒ์œ„ ๋ฒ”์œ„๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„์—๋„ ์ƒ์œ„ ๋ฒ”์œ„์˜ ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜ ์„ ์–ธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋กœ์ €๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ฐ•๋ ฅํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ƒํƒœ์™€ ๊ธฐ๋Šฅ์„ ๋” ํšจ๊ณผ์ ์œผ๋กœ ์บก์Аํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ AppMaster ํ”Œ๋žซํผ์„ ๋’ท๋ฐ›์นจํ•˜๋Š” JavaScript, Python, Go ๋“ฑ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

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

ํ•จ์ˆ˜ createCounter(initialValue) {
    ์นด์šดํ„ฐ = ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    ๋ฐ˜ํ™˜ ํ•จ์ˆ˜ ์ฆ๊ฐ€() {
        ์นด์šดํ„ฐ++;
        ๋ฐ˜๋‚ฉ ์นด์šดํ„ฐ;
    };
}

const counterA = createCounter(0);
const counterB = createCounter(10);
console.log(counterA()); // ์ถœ๋ ฅ: 1
console.log(counterA()); // ์ถœ๋ ฅ: 2
console.log(counterB()); // ์ถœ๋ ฅ: 11
console.log(counterB()); // ์ถœ๋ ฅ: 12

์œ„์˜ ์˜ˆ์—์„œ createCounter ํ•จ์ˆ˜๋Š” ํ•ด๋‹น ๋ฒ”์œ„ ๋‚ด์—์„œ increment ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. createCounter(0) ํ˜ธ์ถœํ•˜๋ฉด ํŠน์ • ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ƒํƒœ๋ฅผ ๋ณด์œ ํ•˜๋Š” ํด๋กœ์ € ๋ณ€์ˆ˜ counter ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํด๋กœ์ €๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, createCounter(10) ํ˜ธ์ถœํ•˜๋ฉด ์ž์ฒด ํด๋กœ์ € ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋˜ ๋‹ค๋ฅธ ํด๋กœ์ €๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ increment ํ•จ์ˆ˜๋Š” ์ƒ์„ฑ๋œ ๊ฐ ๊ฐœ๋ณ„ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ํด๋กœ์ € ๋ณ€์ˆ˜ counter ์•ก์„ธ์Šคํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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