[JavaScript]๋ชจ๋
๋ชจ๋
๋ชจ๋์ ๊ฐ๋จํ๊ฒ, ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ํ๋๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๋ณต์กํ๊ณ ๋ง์ ์์ ์ฝ๋๋ฅผ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ๊ฐ๊ฐ์ ํ์ผ๋ก ๋๋ ๊ด๋ฆฌํ๋ฉด
- ์ฝ๋๋ฅผ ์ข ๋ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ณ ,
- ๋น์ทํ ๊ธฐ๋ฅ์ด ํ์ํ ๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฌ์ฉ ํ ์๋ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
๋ชจ๋ ์ค์ฝํ
๋ชจ๋ ํ์ผ ์์์ ์ ์ธํ ๋ณ์๋ ์ธ๋ถ์์ ์์ ๋กญ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๋ง์์ผ ํ๋๋ฐ์. ๋ค์ ๋งํด ๋ชจ๋์ ํ์ผ ์์์ ๋ชจ๋ ํ์ผ๋ง์ ๋ ๋ฆฝ์ ์ธ ์ค์ฝํ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค.
HTMLํ์ผ์์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ถ๋ฌ์ฌ ๋ ๋ชจ๋ ์ค์ฝํ๋ฅผ ๊ฐ๊ฒ ํ๋ ค๋ฉด script
ํ๊ทธ์ type
์์ฑ์ module
์ด๋ผ๋ ๊ฐ์ผ๋ก ์ง์ ํด ์ฃผ์ด์ผ ํฉ๋๋ค.
<body>
<script type="module" src="index.js"></script>
</body>
๋ชจ๋ ๋ฌธ๋ฒ
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๋ฌธ๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก export
์ import
์
๋๋ค. ๋ชจ๋ ์ค์ฝํ๋ฅผ ๊ฐ์ง ํ์ผ์์ ์ธ๋ถ๋ก ๋ด๋ณด๋ด๊ณ ์ ํ๋ ๋ณ์๋ ํจ์๋ฅผ export
ํค์๋๋ฅผ ํตํด ๋ด๋ณด๋ด๊ณ , ๋ชจ๋ ํ์ผ์์ ๋ด๋ณด๋ธ ๋ณ์๋ ํจ์๋ค์ ๋ค๋ฅธ ํ์ผ์์ import
ํค์๋๋ฅผ ํตํด ๊ฐ์ ธ์ต๋๋ค.
// printer.js
export const title = 'CodeitPrinter';
export function print(value) {
console.log(value);
};
// index.js
import { title, print } from './printer.js';
print(title);
์ด๋ฆ ๋ฐ๊ฟ import ํ๊ธฐ
import
ํค์๋๋ฅผ ํตํด ๋ชจ๋์ ๋ถ๋ฌ์ฌ ๋ as
ํค์๋๋ฅผ ํ์ฉํ๋ฉด import
ํ๋ ๋์๋ค์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. import
ํ ๋ณ์๋ ํจ์ ์ด๋ฆ์ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ ์ด๋ฆ์ผ๋ก ๋ฐ๊พธ๊ฑฐ๋, ํน์ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋ฐ๊พธ๊ณ ์ถ์ ๋ ํ์ฉํ๋ฉด ์ข๊ฒ ์ฃ ? ๋ฟ๋ง ์๋๋ผ ์ด๋ฆ์ ๋ฐ๊ฟ์ import
ํ๋ฉด ์ฌ๋ฌ ํ์ผ์์ ๋ถ๋ฌ์ค๋ ๋์๋ค์ ์ด๋ฆ์ด ์ค๋ณต๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๋ ์์ต๋๋ค.
import { title as printerTitle, print, printArr } from './printer.js';
import { title, data as members } from './members.js';
printer(title);
arrPrinter(members);
ํ๊บผ๋ฒ์ import ํ๊ธฐ
import
ํ ๋ ์์ผ๋์นด๋ ๋ฌธ์(*)์ as
๋ฅผ ํ์ฉํ๋ฉด ๋ชจ๋ ํ์ผ์์ export
ํ๋ ๋ชจ๋ ๋์์ ํ๋์ ๊ฐ์ฒด๋ก ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
import * as printerJS from './printer.js';
console.log(printerJS.title); // CodeitPrinter
console.log(printerJS.print); // ฦ print(value) { console.log(value); }
ํ๊บผ๋ฒ์ export ํ๊ธฐ
๋ณ์๋ ํจ์ ์์ ๋งค๋ฒ export
ํค์๋๋ฅผ ๋ถ์ผ ์๋ ์์ง๋ง, ์ ์ธ๋ ๋ณ์๋ ํจ์๋ฅผ ํ๋์ ๊ฐ์ฒด๋ก ๋ชจ์ ํ๊บผ๋ฒ์ ๋ด๋ณด๋ผ ์๋ ์์ต๋๋ค. ์ด๋ as
ํค์๋๋ฅผ ํ์ฉํ๋ฉด ์ด๋ฆ์ ๋ณ๊ฒฝํด์ export
ํ ์๋ ์์ต๋๋ค.
const title = 'CodeitPrinter';
function print(value) {
console.log(value);
}
function printArr(arr) {
arr.forEach((el, i) => {
console.log(`${i + 1}. ${el}`);
});
}
export { title as printerTitle, print, printArr };
default export
export
๋ฅผ ํ ๋ default
ํค์๋๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํ์ผ์์ ๊ธฐ๋ณธ์ ์ผ๋ก export
ํ ๋์์ ์ ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ํ์ผ์์ export
๋์์ด ํ๋๋ผ๋ฉด, ์ด default
ํค์๋๋ฅผ ํจ๊ป ํ์ฉํ๋ ๊ฒ์ด ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋๋ฐ ๋์์ด ๋๋๋ฐ์.
const title = 'CodeitPrinter';
function print(value) {
console.log(value);
}
export default print;
default export๋ import
ํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฌ์ฌ ์ ์์ง๋ง,
import { default as printerJS } from './printer.js';
console.log(printerJS.title); // CodeitPrinter
console.log(printerJS.print); // ฦ print(value) { console.log(value); }
๋ค์๊ณผ ๊ฐ์ด ์ถ์ฝํ ๋ฌธ๋ฒ์ผ๋ก import
ํ ์๋ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
import printerJS from './printer.js';
console.log(printerJS.title); // CodeitPrinter
console.log(printerJS.print); // ฦ print(value) { console.log(value); }
๋๊ธ๋จ๊ธฐ๊ธฐ