๋ฉด์ -JavaScript #04 | ๋ชจ๋
2022๋ 09์ 30์ผ 12:47
๐ ๊ฐ๋ ์์ฝ
๋ชจ๋ JS Deep dive #48 | ๋ชจ๋
๐ก ์ง๋ฌธ
โ JS์ ๋ชจ๋
(๋ฏธ๊ด์)
๋จผ์ ๋ชจ๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ์กฐ๊ฐ์ ๋งํฉ๋๋ค. ์ด ๋ชจ๋์ด ์ฑ๋ฆฝํ๋ ค๋ฉด ๋ชจ๋์ ์์ ๋ง์ ํ์ผ ์ค์ฝํ๋ฅผ ๊ฐ์ง ์ ์์ด์ผ ํฉ๋๋ค.
์ด๋ ๊ฒ ๊ฐ๋ณ์ ์กด์ฌ๋ก์ ๋ถ๋ฆฌ์ํค๋ผ, ๊ณต๊ฐ๊ฐ ํ์ํ ์์ฐ์ ํ์ ํ์ฌ ์ ํ์ ๊ณต๊ฐ๊ฐ ๊ฐ๋ฅํด์ผํ๊ณ , ๋ชจ๋ ์ฌ์ฉ์๋ ๋ชจ๋์ด ๊ณต๊ฐํ ์์ฐ ์ค ์ผ๋ถ๋ฅผ ์์ ์ ์ค์ฝํ๋ก ๋ถ๋ฌ๋ค์ฌ ์ฌ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ฅผ export์ import๋ผ ํฉ๋๋ค.
๊ฐ๋ณ์ ์กด์ฌ๋ก ๋ถ๋ฆฌ๋์ด์ผํ๊ณ , import, export ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ชจ๋ ๊ธฐ๋ฅ์ JS๋ ํ์์ ์ผ๋ก ์ง์ํ์ง ์์์ต๋๋ค. scriptํ๊ทธ๋ก ๋ก๋ํด๋ JSํ์ผ๋ค์ด ๊ฒฐ๊ตญ ํ๋์ ํ์ผ์ ์๋ ๊ฒ์ฒ๋ผ ๋์ํ๊ณ , ์ด๋ฐ ์ํฉ์์ Node js๋ผ๋ ๋ฐํ์ ํ๊ฒฝ์์๋ ๋ชจ๋์ ํ์์ฑ์ ๋๊ปด CommonJS ๋ฐฉ์์ ํตํด ๋ชจ๋๊ธฐ๋ฅ์ ์ง์ํ์ต๋๋ค.
์ถํ์ ES6์์๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ , ์ด ESM์ ๊ธฐ์กด scriptํ๊ทธ์ type=โmoduleโ์์ฑ์ ์ถ๊ฐํ๋ฉด ๋ชจ๋๋ก์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
โ import/export & require/exports
import / export ๋ ESM ๋ฐฉ์์ด๊ณ require/exports๋ NodeJS์์ ์ฌ์ฉ๋๋ CommonJS ํค์๋ ์
๋๋ค.
๋๊ฐ์ ๋ชจ๋ ์์คํ ์ ๊ณตํต์ ์ผ๋ก exports๊ฐ์ฒด๋ผ๋ ๊ฒ์ ํตํด ๋ชจ๋๋ก๋ถํฐ ๋ด๋ณด๋ด์ง๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ฐฉ์์ ๋น์ทํ์ง๋ง ๋ฌธ๋ฒ์ ์ธ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ถ๊ฐ์ ์ผ๋ก NodeJS์์๋ package.json์ type์ค์ ์ ์ถ๊ฐํ๋ค๋ฉด ESM์ฒ๋ผ import๋ฌธ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.