์ฌ์ฉ์ ์ ์ ํจ์์ ๋งฅ๋ฝ์์ ํด๋ก์ ๋ณ์๋ ํจ์ ํด๋ก์ ์ ์ฐ๊ด๋ ํน์ ์ ํ์ ๋ณ์์ ๋๋ค. ์ด๋ฅผ ํตํด ํจ์๋ ์ ์ ๋น์ ์ฃผ๋ณ ๋ฒ์์ ์ธ๋ถ ๋ณ์๋ฅผ ์ฐธ์กฐํ๊ณ ์ํธ ์์ฉํ ์ ์์ต๋๋ค. ํด๋ก์ ๋ณ์์ ๊ฐ๋ ์ ์ ๋๋ก ์ดํดํ๋ ค๋ฉด ๋จผ์ ํด๋ก์ ์ ๋ํ ์ ๋ฐ์ ์ธ ๋ด์ฉ์ ๋ ผ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
ํด๋ก์ ๋ ์ฃผ๋ณ(ํฌํจํ๋) ์ดํ ํ๊ฒฝ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ์งํ๋ ํจ์ ๊ฐ์ฒด์ ๋๋ค. ์ฆ, ์์ ๋ฒ์๊ฐ ์ข ๋ฃ๋ ํ์๋ ์์ ๋ฒ์์ ๋ณ์ ๋ฐ ํจ์ ์ ์ธ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ํด๋ก์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ผ๋ก, ๊ฐ๋ฐ์๊ฐ ์ํฉ์ ๋ฐ๋ผ ๋์ํ๋ ํจ์๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ํ์ ๊ธฐ๋ฅ์ ๋ ํจ๊ณผ์ ์ผ๋ก ์บก์ํํ ์ ์๋๋ก ํด์ค๋๋ค. ์ด ๋ฉ์ปค๋์ฆ์ 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 ํ๋ซํผ์ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ ๋ค์ํ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ๊ณผ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๋งค์ฐ ํจ์จ์ ์ด๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.