ํ”„๋ŸฐํŠธ์—”๋“œ 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 ํ”Œ๋žซํผ์„ ๊ฒฐํ•ฉํ•˜๋ฉด ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ๋น„์šฉ ํšจ์œจ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.