ํ๋ฐํธ์๋ JavaScript ES6+(ECMAScript 2015+) ๊ธฐ๋ฅ์ JavaScript(JS) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ต์ ๊ฐ์ ์ฌํญ์ ์๋ฏธํ๋ฉฐ, ํนํ ํ๋ฐํธ์๋ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ๋ฐ์ ๊ฐํํ๊ณ ๊ตฌํ์ ๋จ์ํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ๊ตฌ์ถ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ์ฅํ๋ ๋์์ ์ฐ์ํ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ ์ ์์ต๋๋ค. no-code ํ๋ซํผ ๊ณต๊ฐ์ ์ ๋์ฃผ์์ธ AppMaster ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ์ํด Vue3 ํ๋ ์์ํฌ ๋ฐ JS/TS์ ํจ๊ป ํ๋ฐํธ์๋ JavaScript ES6+ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
2015๋ 6์ ECMAScript 2015(ES6)๊ฐ ์ถ์๋ ์ดํ ECMAScript ์ฌ์์ ์ฐ๊ฐ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ ์ฑํํ์ผ๋ฉฐ ๊ฐ ๋ฐ๋ณต๋ง๋ค ์๋ก์ด ๊ธฐ๋ฅ์ด ๋์ ๋์์ต๋๋ค. ES6 ๋ฐ ์ดํ ๋ฒ์ ์์ ์ ๊ณต๋๋ ๋์ ๋ ๊ฐ์ ์ฌํญ ๋ฐ ๊ธฐ๋ฅ์ ์ด์นญํ์ฌ ํ๋ก ํธ์๋ JavaScript ES6+ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํฉ๋๋ค. ๊ฐ์ฅ ์ฃผ๋ชฉํ ๋งํ ES6+ ๊ฐ์ ์ฌํญ ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. Let ๋ฐ Const: 'let' ๋ฐ 'const'๋ 'var'๋ฅผ ๋ธ๋ก ๋ฒ์ ๋ณ์๋ก ๋์ฒดํ๋ ์๋ก์ด ๋ณ์ ์ ์ธ ํ์์ ๋๋ค. 'let'์ ๋ธ๋ก ๋ฒ์ ์ง์ญ ๋ณ์์ ์ ์ธ์ ํ์ฑํํ๋ ๋ฐ๋ฉด, 'const'๋ ์ด๊ธฐ ์ ์ธ ํ์ ์ฌํ ๋นํ ์ ์๋ ์ฝ๊ธฐ ์ ์ฉ ๋ณ์์ ๋๋ค. ์ด๋ ์ค์๋ก ์ ์ญ ๋ณ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ๋ ๋์ ์ฝ๋ ํจํด์ ์ ์ฉํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
2. ํ์ดํ ํจ์: ํ์ดํ ํจ์๋ ํจ์ ๊ตฌ๋ฌธ์ ๋จ์ํํ๊ณ ํจ์ ํํ์์ ๋ํ ๋์์ ์ ๊ณตํฉ๋๋ค. ํนํ ๋ ์งง๊ณ ๊น๋ํ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๋ ์ฝ๊ธฐ ์ฝ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ํ ํ์ดํ ํจ์์๋ ์ฝ๋ฐฑ ๋ฐ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด์์ ๋ ๋์ ๋์์ ์ ๊ณตํ๋ ์ดํ์ 'this' ๋ฐ์ธ๋ฉ์ด ์์ต๋๋ค.
3. ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด: ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ๋ฉด `${expression}` ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด ๋ฆฌํฐ๋ด ๋ด์์ ํํ์์ ๋ณด๊ฐํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ฐ๊ฒฐํ ํ์ ์์ด ๋์ ๋ฌธ์์ด์ ๋ ์ฝ๊ฒ ์์ฑํ ์ ์์ด ๊ฐ๋ ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ด ํฅ์๋ฉ๋๋ค.
4. ๊ตฌ์กฐ ๋ถํด: ๊ตฌ์กฐ ๋ถํด๋ฅผ ํตํด ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด์ ๊ฐ์ ๊ฐ๋ณ ๋ณ์๋ก ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ์์ ํ๋ ํ๋ก์ธ์ค๊ฐ ์ฌ์์ง๊ณ , ์ฌ์ฉ ์ค์ธ ๋ณ์์ ๋ํ ๋ช ํํ ๊ฐ์๊ฐ ์ ๊ณต๋์ด ์ฝ๋ ๊ฐ๋ ์ฑ์ด ํฅ์๋ฉ๋๋ค.
5. ๋ชจ๋: ES6+์๋ ๋ชจ๋์ ๋ํ ๊ธฐ๋ณธ ์ง์์ด ํฌํจ๋์ด ์์ด ๊ฐ๋ฐ์๊ฐ '๊ฐ์ ธ์ค๊ธฐ' ๋ฐ '๋ด๋ณด๋ด๊ธฐ' ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋ ์ ๊ตฌ์ฑํ๊ณ ๊ตฌ์กฐํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ ๋์ ์ข ์์ฑ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ฉฐ RequireJS ๋๋ Browserify์ ๊ฐ์ ํ์ฌ ๋ชจ๋ ๋ก๋๊ฐ ํ์ํ์ง ์์ต๋๋ค.
6. ํด๋์ค: JavaScript๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ ์ธ์ด๋ก ๋จ์ ์์ง๋ง ES6+์์๋ ํด๋์ค ๊ตฌ๋ฌธ์ ๋์ ํ์ฌ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ํจํด์ ๋จ์ํํฉ๋๋ค. ํด๋์ค๋ ์์ง๋ ฅ ์๋ ๋จ์ผ ์ฝ๋ ๋ธ๋ก ๋ด์์ ์์ฑ์, ๋ฉ์๋, ์์ ๋ฐ ์ ์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ์ฐ์ํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
7. ์ฝ์: ES6+๋ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ๊ณผ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๋จ์ํํ๋ ์ฝ์์ ์ ๊ณตํฉ๋๋ค. AJAX ์์ฒญ๊ณผ ๊ฐ์ ๋น๋๊ธฐ ์์ ์ ์ํํ๊ณ ์ฝ๋ฐฑ ์ง์ฅ์ ํด๊ฒฐํ๋ฉฐ ์ฝ๋ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํค๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
8. Async/Await: ES8์ ๋์ ๋ async/await ํจ์๋ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ๋๊ธฐ ์ฝ๋์ฒ๋ผ ๋ณด์ด๊ณ ๋์ํ๊ฒ ๋ง๋ค์ด Promises๋ฅผ ๋ ์ฝ๊ธฐ ์ฝ๊ณ ๊ฐ๊ฒฐํ ๊ตฌ๋ฌธ์ผ๋ก ๋ํํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋น๋๊ธฐ ์์ ์์ , ์ฝ๋ ๊ตฌ์กฐ ๊ฐ์ํ ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๋์ฑ ๋จ์ํํฉ๋๋ค.
์ด๋ฌํ Frontend JavaScript ES6+ ๊ธฐ๋ฅ์ ๋ฐ๋ณต์, ์์ฑ๊ธฐ, ์งํฉ ๋ฐ Map ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ฐ์ ๊ธฐํ ํฅ์๋ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ๊ฐ๋ฐ์๊ฐ ํ๋ฐํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ ์ ์งํ๋ ๋ฐฉ์์ ๋ณํ์์ผฐ์ต๋๋ค. AppMaster ์ด๋ฌํ ๋ฐ์ ์ ํ์ฉํ์ฌ ์ต์ ํ๋ ์ต์ ์ฝ๋๋ก ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ๋ ฅํ no-code ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ํ๋ซํผ์ ์ด๋ฌํ ํ๋ฐํธ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ ์๋ก์ด ์ธ์ด ๊ฐ์ ์ฌํญ์ ์๋์ผ๋ก ์ ์ํด์ผ ํ ํ์์ฑ์ ์ค์ด๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
๋ํ AppMaster ์๋ฒ endpoints ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๋ํ ์๋ ์์ฑ๋ Swagger(๊ฐ๋ฐฉํ API) ๋ฌธ์๋ฅผ ํฌํจํ ์์ ํ ๋ฌธ์๋ฅผ ๊ณ ๊ฐ์๊ฒ ์ ๊ณตํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ํ ์ด๋ฌํ ํฌ๊ด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์๊ฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์ ์ฝํ๋ ๋์์ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ต์ํํ๊ณ ๋์ ํ์ฅ์ฑ์ ์ ๊ณตํ์ฌ ์ค์๊ธฐ์ ๋ถํฐ ๋๊ธฐ์ ๊น์ง ๊ด๋ฒ์ํ ๊ณ ๊ฐ์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ์ ์ ์ธ ํ๋ฐํธ์๋ JavaScript ES6+ ๊ธฐ๋ฅ๊ณผ AppMasterno-code ํ๋ซํผ์ ๊ฒฐํฉํ๋ฉด ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ด๋ฉฐ ๋น์ฉ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ๊ฐ๋ฅํฉ๋๋ค.