์์ฐ์ฑ์ ๋์ด๋ ํจ์ํ ์ฝ๋ ์์ฑ!
์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ์์ฉํด์ ๐
๋ฌด์์ ๋ฐฐ์ฐ๋์? ๐
์๋ฐ์คํฌ๋ฆฝํธ๋ ES6+๊ฐ ๋๋ฉด์ ์ธ์ด์์ ์ดํฐ๋ฌ๋ธ ํ๋กํ ์ฝ์ ํน๋ณํ ๊ฐ์กฐํ๊ณ ์์ต๋๋ค. ์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ํตํด ๋ช
๋ นํ ์ฝ๋๋ฅผ ๋์ฒดํฉ๋๋ค. ์ฌ๋ณผ/์ดํฐ๋ฌ๋ธ/์ดํฐ๋ ์ดํฐ/์ ๋๋ ์ดํฐ, Promise/async/await ๋ฑ์ ํ๋กํ ์ฝ์ด ๊ฐ์กฐ๋๊ณ ์์ต๋๋ค. ์ดํ ๋ฒ์ ์์๋ async/await/for...await-of/Async Iterator ๋ฑ์ผ๋ก ํ๋กํ ์ฝ์ด ๋ฐ์ ํ๊ณ ์์ต๋๋ค.
์ด ๊ฐ์๋ 'ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ณผ JavaScript ES6+'์ ํ์ ๊ฐ์๋ก ํจ์ํ ํ๋ก๊ทธ๋๋ฐ, ์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ค์ํ๊ฒ ์์ฉํฉ๋๋ค. ์ด ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด ์๋ฌ๊ฐ ๋๊ธฐ ์ฌ์ด i++, j++, if, for, break ๋ฑ์ ๋ช
๋ นํ ์ฝ๋๋ฅผ ๋์ด์ ์์ฑํ์ง ์์ ์ ์์ต๋๋ค. ์๋ฌ์จ์ด ์ ์ผ๋ฉฐ, ์์ฐ์ฑ์ด ๋๊ณ , ์๋ฆ๋ค์ด ํํ๋ ฅ์ ๊ฐ์ง ํจ์ํ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์ธ์!
์๋ฐ์คํฌ๋ฆฝํธ์์์ ์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ์ฅ์ ๐ก
- ์ธ์ด ์ฐจ์์์ ์ง์ํ๋ ํ๋กํ ์ฝ์ ํตํด ๋ง๋ค์ด์ง๋ ์ฝ๋์ด๊ธฐ์ ์กฐํฉ์ฑ์ด ๋์ต๋๋ค.
- ์ธ์ด ์ฐจ์์์ ์ง์ํ๋ ์๋ฌ ํธ๋ค๋ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋น๋๊ธฐ/๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ๋ณด๋ค ์์ ํ๊ณ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
- ์ฝ๋ ์์ ์ต์ํํ ์ ์์ต๋๋ค(ํธ๋์คํ์ผ๋ง์ ํ๋ฉด์๋ ๋ณํ๋๋ ์ฝ๋์ ์์ ์ต์ํํ ์ ์๋ ์์ด๋์ด๋ ๊ฐ์ง๊ณ ์์ต๋๋ค).
ES5 ๋ฌธ๋ฒ ํ๋ก๊ทธ๋๋ฐ์ ๋ถํธํจ ๐ฅฒ
- i++, j++, if, for, break, ์ํ ๋ณ๊ฒฝ์ ์์กดํ ์ฝ๋๋ ๋ฒ๊ทธ๊ฐ ์๊ธฐ๊ธฐ ์ฝ์ต๋๋ค.
- ๊ธฐ๋ฅ ๋ฐ์ , ๊ธฐํ ๋ณ๊ฒฝ์ ๋์ํ๋ค๋ณด๋ฉด ๋ฒ๊ทธ๊ฐ ๋ฐ์๋๊ธฐ ์ฌ์ ์ ์ง๋ณด์๊ฐ ์ด๋ ต์ต๋๋ค.
- ๊ฐ๋ฐ์๋ง๋ค ์ ํธํ๋ ์ฝ๋ ์คํ์ผ์ด ๋ค๋ฅด๊ณ , ์๋ก์ ์ฝ๋๋ฅผ ํด์ํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ํญ์ ๋ก์ง์ ์๋ก ์์ฑํด์ผํ๊ณ , ๊ทธ์ ๋ฐ๋ฅธ ํ
์คํธ ์ผ์ด์ค๋ ๋ง์์ ธ ์์ฐ์ฑ์ด ๋จ์ด์ง๋๋ค.
์ง์๊ณต์ ์ ํ๋ง๋ ๐
2008๋
๋ ์ฏค ๋ถํฐ ๋ฆฌ์ต, ์ดํฐ๋ฌ๋ธ, ๋ฆฌ์กํฐ๋ธ ๋ฑ์ ๊ธฐ๋ฐ์ผ๋กํ ํด๋ก์ , ์๋ฆญ์, ์ค์นผ๋ผ์ ๊ฐ์ ๋ค์ํ ํจ์ํ ์ธ์ด๋ค์ด ์๊ฒจ๋๊ณ , ๋ค๋ฅธ ์ธ์ด๋ค์์๋ ๋ง์ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์๊ฒจ๋๋๋, ์ต๊ทผ์ ์ด๋ฅด๋ฌ์๋ ํ์
์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฐ, ์ค์ํํธ, ์ฝํ๋ฆฐ, ์๋ฐ์คํฌ๋ฆฝํธ ๋ฑ์ ๋๋ค๊ฐ ์ ์ฉ๋๊ณ , ์คํธ๋ฆผ ํน์ ์ดํฐ๋ฌ๋ธ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ธ์ด ์์ฒด์ LISP ํน์ FP๊ฐ ๋์
๋์์ต๋๋ค. ๋ ๋ค์ํ ์ํฉ์์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ด ํ์ํ๋ค๋ ์ธ์์ด ํผ์ง๊ณ ์๊ณ , ์ด๋ฌํ ๊ธฐ์ ๋ค์ด ์ค๋ฌด์์ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
ํจ์ํ/์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ด ๋ชจ๋ ์ธ์ด์ ์ ์ฉ๋๊ณ ์๋ ๊ฒ์ ์ค์ ์ ์ธ ๊ฐ์น ๋๋ฌธ์
๋๋ค. ์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ฌธ์ ๋ฅผ ์๊ฒ ๋ง๋ค๊ณ ์กฐํฉ์ฑ์ ๋์ด๋๋ฐ ์ข์ ๋๊ตฌ์
๋๋ค. ์ด์ ๋ ๊ฑฐ์ ๋๋ถ๋ถ์ ์ธ์ด์ ์ ์ฉ๋๋ฉด์ ์ด ๋ฐฉ๋ฒ์ ํ ์ธ์ด์ ์ธ ํด๊ฒฐ์ฑ
์ด ๋์์ต๋๋ค.
ํนํ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ดํฐ๋ฌ๋ธ/์ดํฐ๋ ์ดํฐ/์ ๋๋ ์ดํฐ/์ฌ๋ณผ ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋งค์ฐ ๋ฐ์ด๋ ํ๋กํ ์ฝ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ฌํ ํ๋กํ ์ฝ์ ๊ฐ๋ฐ์๋ก ํ์ฌ๊ธ ์ธ์ด๋ฅผ ๋ค๋ฃจ๋ผ๊ณ ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ES6+์ ์ง์ง ๋งค๋ ฅ์ ์ด '์ดํฐ๋ฌ๋ธ ํ๋กํ ์ฝ'์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ์์ฐ์ฑ์ ๋์ด๊ณ , ์ค๋ฅ์จ์ ์ค์ด๊ณ , ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ฒ ํ๋ ์์ฃผ ํ๋ฅญํ ๋๊ตฌ์
๋๋ค.
์์ ์ฝ๋ ๐
๊ด๋ จ ๊ฐ์ ๐งโ๐ซ
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ณผ javascript ES6+ ES6+์ ์ดํฐ๋ฌ๋ธ/์ดํฐ๋ ์ดํฐ/์ ๋๋ ์ดํฐ/๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์์ธํ ๋ค๋ฃน๋๋ค.
ํจ์ํ/์ดํฐ๋ฌ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์ต์ํ์ง ์๋ค๋ฉด ์ด ๊ฐ์๋ฅผ ๋จผ์ ๋ค์ด์ฃผ์ธ์!