[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ - ๋ชจ๋
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ์์คํ ์ ์ฝ๋๋ฅผ ์ฌ๋ฌ ํ์ผ๋ก ๋ถํ ํ๊ณ , ๊ฐ ํ์ผ์์ ๊ฐ๋ณ์ ์ผ๋ก ๊ธฐ๋ฅ์ ์ ์ํ ํ ๋ค๋ฅธ ํ์ผ์์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ด๊ณ , ๋ค์์คํ์ด์ค ์ค์ผ์ ๋ฐฉ์งํ ์ ์๋ค. ES6์์ ๊ณต์์ ์ผ๋ก ๋ชจ๋ ์์คํ ์ ์ง์ํ๊ธฐ ์์ํ์ผ๋ฉฐ, import์ export ๋ฌธ์ ์ฌ์ฉํ๋ค.
๋ชจ๋ ์ฌ์ฉ ๋ฐฉ๋ฒ
export - ๋ชจ๋์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ฐ์ ๊ธฐ๋ฅ์ ์ ์ํ๊ณ ๋ด๋ณด๋ด์ผ ํ๋ค.
import - ๊ทธ ๋ค์, ๋ค๋ฅธ ํ์ผ์์ ๊ทธ ๊ธฐ๋ฅ์ ๋ถ๋ฌ์์ ์ฌ์ฉํ ์ ์๋ค.
1. ๊ธฐ๋ฅ ๋ด๋ณด๋ด๊ธฐ
[ mathUtils.js ]
// ์ฌ๋ฌ ํจ์๋ฅผ export ํ ์ ์์ต๋๋ค.
export function add(x, y) {
return x + y;
}
export function subtract(x, y) {
return x - y;
}
// ๋ณ์, ํด๋์ค ๋ํ export ๊ฐ๋ฅ
export const pi = 3.14159;
2. ๊ธฐ๋ฅ ๊ฐ์ ธ์ค๊ธฐ
[ app.js ]
// ๋ค๋ฅธ ํ์ผ์์ ํจ์๋ฅผ import ํด์ ์ฌ์ฉํฉ๋๋ค.
import { add, subtract, pi } from './mathUtils.js';
console.log(add(2, 3)); // 5
console.log(subtract(5, 3)); // 2
console.log(pi); // 3.14159
๊ธฐ๋ฅ๋ง ๋ด๋ณด๋ด๊ณ ๊ฐ์ ธ์ค๊ธฐ
default - ๋ชจ๋์์ ํ๋์ ๊ธฐ๋ฅํ ๋ด๋ณด๋ด๊ธฐ
1. ๊ธฐ๋ณธ ๋ด๋ณด๋ด๊ธฐ
[ StringUtils.js ]
// ๊ธฐ๋ณธ ๋ด๋ณด๋ด๊ธฐ (default export)
export default function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
2. ๊ธฐ๋ณธ ๊ฐ์ ธ์ค๊ธฐ
[ app.js ]
// ๊ธฐ๋ณธ ๋ด๋ณด๋ด๊ธฐ๋ ํจ์๋ฅผ ๊ธฐ๋ณธ ๊ฐ์ ธ์ค๊ธฐ๋ก ๋ถ๋ฌ์ต๋๋ค.
// ํ์ผ ๋ด ๊ธฐ๋ณธ ๋ด๋ณด๋ด๊ธฐ๋ ์์๊ฐ ํ๋์ด๋ฏ๋ก, ๊ดํธ ์์ด ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
import capitalize from './StringUtils.js';
console.log(capitalize("hello")); // "Hello"
๋ชจ๋์ ์ฅ์
1. ๋ช ํํ ์์กด์ฑ ์ ์ธ
๊ฐ ๋ชจ๋์ด ์ด๋ค ๋ค๋ฅธ ๋ชจ๋์ ์์กดํ๋ ์ง ํ์ผ์ ์ต์๋จ์ ์ ์ธํ๋ค.
2. ๋ค์์คํ์ด์ค ๊ด๋ฆฌ
์ ์ญ ๋ค์์คํ์ด์ค๋ฅผ ์ค์ผ์ํค์ง ์๊ณ ํ์ํ ์ฌ๋ฒ๋ค๋ง ๋ช ์์ ์ผ๋ก ๋ถ๋ฌ์ ์ฌ์ฉํ๋ค.
3. ์ฌ์ฌ์ฉ์ฑ
๋ชจ๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ์ค๊ณ๋์ด, ๋ค๋ฅธ ํ๋ก์ ํธ์์๋ ๋์ผํ ๋ชจ๋์ ์ฌ์ฉํ ์ ์๋ค.