μλ°μ€ν¬λ¦½νΈμ import assertion λͺ¨λ κ·Έλνλ₯Ό μ¬μΈ΅ λΆμνκ³ , νμ κΈ°λ° μμ‘΄μ± λΆμμ΄ μ΄λ»κ² μ½λ μ λ’°μ±, μ μ§λ³΄μμ±, 보μμ ν₯μμν€λμ§ μμλ΄ λλ€.
μλ°μ€ν¬λ¦½νΈ Import Assertion λͺ¨λ κ·Έλν: νμ κΈ°λ° μμ‘΄μ± λΆμ
λμ νΉμ±μ κ°μ§ μλ°μ€ν¬λ¦½νΈλ μ½λμ μ λ’°μ±κ³Ό μ μ§λ³΄μμ±μ 보μ₯νλ λ° μ’ μ’ μ΄λ €μμ κ²ͺμ΅λλ€. import assertionμ λμ κ³Ό κ·Έ κΈ°λ°μ΄ λλ λͺ¨λ κ·Έλνλ νμ κΈ°λ° μμ‘΄μ± λΆμκ³Ό κ²°ν©νμ¬ μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ κ°λ ₯ν λꡬλ₯Ό μ 곡ν©λλ€. μ΄ κΈμμλ μ΄λ¬ν κ°λ λ€μ μμΈν νꡬνλ©° κ·Έ μ΄μ , ꡬν λ°©μ, κ·Έλ¦¬κ³ λ―Έλ μ μ¬λ ₯μ λν΄ μ΄ν΄λ΄ λλ€.
μλ°μ€ν¬λ¦½νΈ λͺ¨λκ³Ό λͺ¨λ κ·Έλν μ΄ν΄νκΈ°
import assertionμ λν΄ μμ보기 μ μ, κ·Έ κΈ°λ°μ΄ λλ μλ°μ€ν¬λ¦½νΈ λͺ¨λμ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. λͺ¨λμ μ¬μ©νλ©΄ κ°λ°μλ μ½λλ₯Ό μ¬μ¬μ© κ°λ₯ν λ¨μλ‘ κ΅¬μ±νμ¬ μ½λ ꡬμ±μ ν₯μμν€κ³ μ΄λ¦ μΆ©λ κ°λ₯μ±μ μ€μΌ μ μμ΅λλ€. μλ°μ€ν¬λ¦½νΈμ λ κ°μ§ μ£Όμ λͺ¨λ μμ€ν μ λ€μκ³Ό κ°μ΅λλ€:
- CommonJS (CJS): μμ¬μ μΌλ‘ Node.jsμμ μ¬μ©λμμΌλ©°, CJSλ
require()λ₯Ό μ¬μ©νμ¬ λͺ¨λμ κ°μ Έμ€κ³module.exportsλ₯Ό μ¬μ©νμ¬ λ΄λ³΄λ λλ€. - ECMAScript Modules (ESM): μλ°μ€ν¬λ¦½νΈμ νμ€νλ λͺ¨λ μμ€ν
μΌλ‘,
importμexportν€μλλ₯Ό μ¬μ©ν©λλ€. ESMμ λΈλΌμ°μ μμ κΈ°λ³Έμ μΌλ‘ μ§μλλ©° Node.jsμμλ μ μ λ λ§μ΄ μ§μλκ³ μμ΅λλ€.
λͺ¨λ κ·Έλνλ μλ°μ€ν¬λ¦½νΈ μ ν리μΌμ΄μ μ λͺ¨λ κ° μμ‘΄μ±μ λνλ΄λ λ°©ν₯μ± κ·Έλνμ λλ€. κ·Έλνμ κ° λ Έλλ λͺ¨λμ λνλ΄κ³ , κ° μ£μ§λ import κ΄κ³λ₯Ό λνλ λλ€. Webpack, Rollup, Parcelκ³Ό κ°μ λꡬλ€μ λͺ¨λ κ·Έλνλ₯Ό νμ©νμ¬ μ½λλ₯Ό ν¨μ¨μ μΌλ‘ λ²λ€λ§νκ³ νΈλ¦¬ μ °μ΄νΉ(μ¬μ©νμ§ μλ μ½λ μ κ±°)κ³Ό κ°μ μ΅μ νλ₯Ό μνν©λλ€.
μλ₯Ό λ€μ΄, μΈ κ°μ λͺ¨λλ‘ κ΅¬μ±λ κ°λ¨ν μ ν리μΌμ΄μ μ μ΄ν΄λ³΄κ² μ΅λλ€:
// moduleA.js
export function greet(name) {
return `Hello, ${name}!`;
}
// moduleB.js
import { greet } from './moduleA.js';
export function sayHello(name) {
return greet(name);
}
// main.js
import { sayHello } from './moduleB.js';
console.log(sayHello('World'));
μ΄ μ ν리μΌμ΄μ μ λͺ¨λ κ·Έλνλ μΈ κ°μ λ Έλ(moduleA.js, moduleB.js, main.js)μ λ κ°μ μ£μ§(moduleB.jsμμ moduleA.jsλ‘, main.jsμμ moduleB.jsλ‘)λ₯Ό κ°μ§λλ€. μ΄ κ·Έλνλ₯Ό ν΅ν΄ λ²λ€λ¬λ μμ‘΄μ±μ νμ νκ³ μ΅μ νλ λ¨μΌ λ²λ€μ μμ±ν μ μμ΅λλ€.
Import Assertions μκ°
Import assertionμ μν¬νΈνλ λͺ¨λμ νμ
μ΄λ νμμ λν μΆκ° μ 보λ₯Ό λͺ
μνλ λ°©λ²μ μ 곡νλ λΉκ΅μ μλ‘μ΄ μλ°μ€ν¬λ¦½νΈ κΈ°λ₯μ
λλ€. μ΄λ import λ¬Έμμ assert ν€μλλ₯Ό μ¬μ©νμ¬ μ§μ λ©λλ€. μ΄λ₯Ό ν΅ν΄ μλ°μ€ν¬λ¦½νΈ λ°νμμ΄λ λΉλ λꡬλ μν¬νΈλλ λͺ¨λμ΄ μμλ νμ
μ΄λ νμκ³Ό μΌμΉνλμ§ νμΈν μ μμ΅λλ€.
Import assertionμ μ£Όμ μ¬μ© μ¬λ‘λ νΉν λ€λ₯Έ λ°μ΄ν° νμμ΄λ λͺ¨λ μ νμ λ€λ£° λ λͺ¨λμ΄ μ¬λ°λ₯΄κ² λ‘λλλλ‘ λ³΄μ₯νλ κ²μ λλ€. μλ₯Ό λ€μ΄, JSONμ΄λ CSS νμΌμ λͺ¨λλ‘ μν¬νΈν λ import assertionμ νμΌμ΄ μ¬λ°λ₯΄κ² νμ±λλλ‘ λ³΄μ₯ν μ μμ΅λλ€.
λ€μμ μΌλ°μ μΈ μμμ λλ€:
// JSON νμΌ μν¬νΈνκΈ°
import data from './data.json' assert { type: 'json' };
// CSS νμΌμ λͺ¨λλ‘ μν¬νΈνκΈ° (κ°μμ 'css' νμ
μ¬μ©)
// μ΄λ νμ€ νμ
μ μλμ§λ§ κ°λ
μ μ€λͺ
ν©λλ€
// import styles from './styles.css' assert { type: 'css' };
// WASM λͺ¨λ μν¬νΈνκΈ°
// const wasm = await import('./module.wasm', { assert: { type: 'webassembly' } });
μν¬νΈλ νμΌμ΄ λͺ μλ νμ κ³Ό μΌμΉνμ§ μμΌλ©΄ μλ°μ€ν¬λ¦½νΈ λ°νμμ μ€λ₯λ₯Ό λ°μμμΌ μ ν리μΌμ΄μ μ΄ μλͺ»λ λ°μ΄ν°λ μ½λλ‘ μ€νλλ κ²μ λ°©μ§ν©λλ€. μ΄λ¬ν μ€λ₯μ μ‘°κΈ° κ°μ§λ μλ°μ€ν¬λ¦½νΈ μ ν리μΌμ΄μ μ μ λ’°μ±κ³Ό 보μμ ν₯μμν΅λλ€.
Import Assertionsμ μ΄μ
- νμ μμ μ±: μν¬νΈλ λͺ¨λμ΄ μμλ νμμ λ°λ₯΄λλ‘ λ³΄μ₯νμ¬, μμμΉ λͺ»ν λ°μ΄ν° νμ μΌλ‘ μΈν λ°νμ μ€λ₯λ₯Ό λ°©μ§ν©λλ€.
- 보μ: μν¬νΈλ λͺ¨λμ 무결μ±μ κ²μ¦νμ¬ μ μ± μ½λ μ£Όμ μ λ°©μ§νλ λ° λμμ μ€λλ€. μλ₯Ό λ€μ΄, JSON νμΌμ΄ μ€μ JSON νμΌμΈμ§, JSONμΌλ‘ μμ₯ν μλ°μ€ν¬λ¦½νΈ νμΌμ΄ μλμ§ νμΈν μ μμ΅λλ€.
- κ°μ λ λꡬ μ§μ: λΉλ λꡬμ IDEμ λ λ§μ μ 보λ₯Ό μ 곡νμ¬ λ λμ μ½λ μμ±, μ€λ₯ κ²μ¬, μ΅μ νλ₯Ό κ°λ₯νκ² ν©λλ€.
- λ°νμ μ€λ₯ κ°μ: κ°λ° κ³Όμ μ΄κΈ°μ μλͺ»λ λͺ¨λ νμ κ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό ν¬μ°©νμ¬ λ°νμ μ€ν¨ κ°λ₯μ±μ μ€μ λλ€.
νμ κΈ°λ° μμ‘΄μ± λΆμ
νμ κΈ°λ° μμ‘΄μ± λΆμμ νμ μ 보(μ£Όλ‘ νμ μ€ν¬λ¦½νΈλ JSDoc μ£ΌμμΌλ‘ μ 곡)λ₯Ό νμ©νμ¬ λͺ¨λ κ·Έλν λ΄ λͺ¨λ κ°μ κ΄κ³λ₯Ό νμ ν©λλ€. λ΄λ³΄λ΄κ³ κ°μ Έμ¨ κ°μ νμ μ λΆμν¨μΌλ‘μ¨ λꡬλ μ μ¬μ μΈ νμ λΆμΌμΉ, μ¬μ©λμ§ μλ μμ‘΄μ± λ° κΈ°ν μ½λ νμ§ λ¬Έμ λ₯Ό μλ³ν μ μμ΅λλ€.
μ΄ λΆμμ νμ
μ€ν¬λ¦½νΈ μ»΄νμΌλ¬(tsc)λ νμ
μ€ν¬λ¦½νΈ νλ¬κ·ΈμΈμ΄ μλ ESLintμ κ°μ λꡬλ₯Ό μ¬μ©νμ¬ (μ½λλ₯Ό μ€ννμ§ μκ³ ) μ μ μΌλ‘ μνν μ μμ΅λλ€. μ μ λΆμμ μ μ¬μ μΈ λ¬Έμ μ λν μ‘°κΈ° νΌλλ°±μ μ 곡νμ¬ κ°λ°μκ° λ°νμ μ μ λ¬Έμ λ₯Ό ν΄κ²°ν μ μκ² ν©λλ€.
νμ κΈ°λ° μμ‘΄μ± λΆμμ μλ λ°©μ
- νμ μΆλ‘ : λΆμ λꡬλ λ³μ, ν¨μ, λͺ¨λμ μ¬μ© λ°©μκ³Ό JSDoc μ£Όμμ κΈ°λ°μΌλ‘ νμ μ μΆλ‘ ν©λλ€.
- μμ‘΄μ± κ·Έλν μν: λꡬλ λͺ¨λ κ·Έλνλ₯Ό μννλ©° λͺ¨λ κ°μ import λ° export κ΄κ³λ₯Ό κ²μ¬ν©λλ€.
- νμ 체νΉ: λꡬλ μν¬νΈλ κ°κ³Ό μ΅μ€ν¬νΈλ κ°μ νμ μ λΉκ΅νμ¬ νΈνλλμ§ νμΈν©λλ€. μλ₯Ό λ€μ΄, ν λͺ¨λμ΄ μ«μλ₯Ό μΈμλ‘ λ°λ ν¨μλ₯Ό λ΄λ³΄λ΄κ³ λ€λ₯Έ λͺ¨λμ΄ ν΄λΉ ν¨μλ₯Ό μν¬νΈνμ¬ λ¬Έμμ΄μ μ λ¬νλ©΄ νμ 체컀λ μ€λ₯λ₯Ό λ³΄κ³ ν©λλ€.
- μ€λ₯ λ³΄κ³ : λꡬλ λΆμ μ€μ λ°κ²¬λ νμ λΆμΌμΉ, μ¬μ©λμ§ μλ μμ‘΄μ± λλ κΈ°ν μ½λ νμ§ λ¬Έμ λ₯Ό λ³΄κ³ ν©λλ€.
νμ κΈ°λ° μμ‘΄μ± λΆμμ μ΄μ
- μ‘°κΈ° μ€λ₯ κ°μ§: λ°νμ μ μ νμ μ€λ₯ λ° κΈ°ν μ½λ νμ§ λ¬Έμ λ₯Ό ν¬μ°©νμ¬ μκΈ°μΉ μμ λμμ κ°λ₯μ±μ μ€μ λλ€.
- μ½λ μ μ§λ³΄μμ± ν₯μ: μ¬μ©λμ§ μλ μμ‘΄μ±κ³Ό λ¨μνν μ μλ μ½λλ₯Ό μλ³νμ¬ μ½λλ² μ΄μ€λ₯Ό λ μ½κ² μ μ§λ³΄μν μ μλλ‘ λμ΅λλ€.
- μ½λ μ λ’°μ± ν₯μ: λͺ¨λμ΄ μ¬λ°λ₯΄κ² μ¬μ©λλλ‘ λ³΄μ₯νμ¬ μλͺ»λ λ°μ΄ν° νμ μ΄λ ν¨μ μΈμλ‘ μΈν λ°νμ μ€λ₯μ μνμ μ€μ λλ€.
- μ½λ μ΄ν΄λ ν₯μ: λͺ¨λ κ°μ κ΄κ³λ₯Ό λ λͺ ννκ² λ³΄μ¬μ£Όμ΄ μ½λλ² μ΄μ€λ₯Ό λ μ½κ² μ΄ν΄ν μ μκ² ν©λλ€.
- 리ν©ν λ§ μ§μ: μ€λ₯λ₯Ό μ λ°νμ§ μκ³ μμ νκ² λ³κ²½ν μ μλ μ½λλ₯Ό μλ³νμ¬ λ¦¬ν©ν λ§μ λ¨μνν©λλ€.
Import Assertionsμ νμ κΈ°λ° μμ‘΄μ± λΆμμ κ²°ν©
Import assertionκ³Ό νμ κΈ°λ° μμ‘΄μ± λΆμμ μ‘°ν©μ μλ°μ€ν¬λ¦½νΈ μ ν리μΌμ΄μ μ μ λ’°μ±, μ μ§λ³΄μμ±, 보μμ ν₯μμν€λ κ°λ ₯ν μ κ·Ό λ°©μμ μ 곡ν©λλ€. Import assertionμ λͺ¨λμ΄ μ¬λ°λ₯΄κ² λ‘λλλλ‘ λ³΄μ₯νκ³ , νμ κΈ°λ° μμ‘΄μ± λΆμμ λͺ¨λμ΄ μ¬λ°λ₯΄κ² μ¬μ©λλμ§ νμΈν©λλ€.
μλ₯Ό λ€μ΄, λ€μ μλ리μ€λ₯Ό κ³ λ €ν΄ λ³΄κ² μ΅λλ€:
// data.json
{
"name": "Example",
"value": 123
}
// module.ts (TypeScript)
import data from './data.json' assert { type: 'json' };
interface Data {
name: string;
value: number;
}
function processData(input: Data) {
console.log(`Name: ${input.name}, Value: ${input.value * 2}`);
}
processData(data);
μ΄ μμ μμ import assertion assert { type: 'json' }λ dataκ° JSON κ°μ²΄λ‘ λ‘λλλλ‘ λ³΄μ₯ν©λλ€. κ·Έλ° λ€μ νμ
μ€ν¬λ¦½νΈ μ½λλ JSON λ°μ΄ν°μ μμ ꡬ쑰λ₯Ό μ§μ νλ Data μΈν°νμ΄μ€λ₯Ό μ μν©λλ€. processData ν¨μλ Data νμ
μ μΈμλ₯Ό λ°μ λ°μ΄ν°κ° μ¬λ°λ₯΄κ² μ¬μ©λλλ‘ λ³΄μ₯ν©λλ€.
λ§μ½ data.json νμΌμ΄ μλͺ»λ λ°μ΄ν°λ₯Ό ν¬ν¨νλλ‘ μμ λλ©΄(μ: value νλκ° μκ±°λ μ«μ λμ λ¬Έμμ΄μ΄ ν¬ν¨λ κ²½μ°), import assertionκ³Ό νμ
체컀 λͺ¨λ μ€λ₯λ₯Ό λ³΄κ³ ν©λλ€. νμΌμ΄ μ ν¨ν JSONμ΄ μλλ©΄ import assertionμ΄ μ€ν¨νκ³ , λ°μ΄ν°κ° Data μΈν°νμ΄μ€λ₯Ό μ€μνμ§ μμΌλ©΄ νμ
μ²΄μ»€κ° μ€ν¨ν©λλ€.
μ€μ©μ μΈ μμ λ° κ΅¬ν
μμ 1: JSON λ°μ΄ν° κ²μ¦
μ΄ μμ λ import assertionμ μ¬μ©νμ¬ JSON λ°μ΄ν°λ₯Ό κ²μ¦νλ λ°©λ²μ 보μ¬μ€λλ€:
// config.json
{
"apiUrl": "https://api.example.com",
"timeout": 5000
}
// config.ts (TypeScript)
import config from './config.json' assert { type: 'json' };
interface Config {
apiUrl: string;
timeout: number;
}
const apiUrl: string = (config as Config).apiUrl;
const timeout: number = (config as Config).timeout;
console.log(`API URL: ${apiUrl}, Timeout: ${timeout}`);
μ΄ μμ μμ import assertionμ config.jsonμ΄ JSON κ°μ²΄λ‘ λ‘λλλλ‘ λ³΄μ₯ν©λλ€. νμ
μ€ν¬λ¦½νΈ μ½λλ JSON λ°μ΄ν°μ μμ ꡬ쑰λ₯Ό μ§μ νλ Config μΈν°νμ΄μ€λ₯Ό μ μν©λλ€. configλ₯Ό Configλ‘ μΊμ€ν
ν¨μΌλ‘μ¨ νμ
μ€ν¬λ¦½νΈ μ»΄νμΌλ¬λ λ°μ΄ν°κ° μμ ꡬ쑰λ₯Ό μ€μνλμ§ νμΈν μ μμ΅λλ€.
μμ 2: λ€λ₯Έ λͺ¨λ νμ μ²λ¦¬
κΈ°λ³Έμ μΌλ‘ μ§μ μ§μλμ§λ μμ§λ§, λ€λ₯Έ μ νμ μλ°μ€ν¬λ¦½νΈ λͺ¨λ(μ: λ€λ₯Έ μ€νμΌλ‘ μμ±λκ±°λ λ€λ₯Έ νκ²½μ λμμΌλ‘ νλ λͺ¨λ)μ ꡬλ³ν΄μΌ νλ μλ리μ€λ₯Ό μμν μ μμ΅λλ€. λΉλ‘ κ°μ€μ λΆκ³Όνμ§λ§, import assertionμ ν₯ν μ΄λ¬ν μλ리μ€λ₯Ό μ§μνλλ‘ νμ₯λ μ μ¬λ ₯μ΄ *μμ΅λλ€*.
// moduleA.js (CJS)
module.exports = {
value: 123
};
// moduleB.mjs (ESM)
export const value = 456;
// main.js (κ°μμ΄λ©°, 컀μ€ν
λ‘λκ° νμν κ°λ₯μ±μ΄ λμ)
// import cjsModule from './moduleA.js' assert { type: 'cjs' };
// import esmModule from './moduleB.mjs' assert { type: 'esm' };
// console.log(cjsModule.value, esmModule.value);
μ΄ μμ λ import assertionμ μ¬μ©νμ¬ λͺ¨λ νμ μ μ§μ νλ κ°μμ μΈ μ¬μ© μ¬λ‘λ₯Ό 보μ¬μ€λλ€. λ€λ₯Έ λͺ¨λ νμ μ μ¬λ°λ₯΄κ² μ²λ¦¬νλ €λ©΄ 컀μ€ν λ‘λκ° νμν©λλ€. μ΄κ²μ΄ μ€λλ μλ°μ€ν¬λ¦½νΈμ νμ€ κΈ°λ₯μ μλμ§λ§, import assertionμ΄ λ―Έλμ νμ₯λ κ°λ₯μ±μ 보μ¬μ€λλ€.
ꡬν μ κ³ λ €μ¬ν
- λꡬ μ§μ: μ¬μ©νλ λΉλ λꡬ(μ: Webpack, Rollup, Parcel)μ IDEκ° import assertionκ³Ό νμ κΈ°λ° μμ‘΄μ± λΆμμ μ§μνλμ§ νμΈνμΈμ. λλΆλΆμ μ΅μ λꡬλ νΉν νμ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©ν λ μ΄λ¬ν κΈ°λ₯μ λν μ§μμ΄ μ λμ΄ μμ΅λλ€.
- νμ
μ€ν¬λ¦½νΈ μ€μ : νμ
μ€ν¬λ¦½νΈ μ»΄νμΌλ¬(
tsconfig.json)λ₯Ό μ€μ νμ¬ μ격ν νμ μ²΄νΉ λ° κΈ°ν μ½λ νμ§ κ²μ¬λ₯Ό νμ±ννμΈμ. μ΄λ κ°λ° κ³Όμ μ΄κΈ°μ μ μ¬μ μΈ μ€λ₯λ₯Ό ν¬μ°©νλ λ° λμμ΄ λ©λλ€. λͺ¨λ μ격ν νμ μ²΄νΉ μ΅μ μ νμ±ννλ €λ©΄strictνλκ·Έ μ¬μ©μ κ³ λ €νμΈμ. - λ¦°ν : νμ μ€ν¬λ¦½νΈ νλ¬κ·ΈμΈμ΄ μλ λ¦°ν°(μ: ESLint)λ₯Ό μ¬μ©νμ¬ μ½λ μ€νμΌκ³Ό λͺ¨λ² μ¬λ‘λ₯Ό κ°μ νμΈμ. μ΄λ μΌκ΄λ μ½λλ² μ΄μ€λ₯Ό μ μ§νκ³ μΌλ°μ μΈ μ€λ₯λ₯Ό λ°©μ§νλ λ° λμμ΄ λ©λλ€.
- ν μ€ν : λ¨μ ν μ€νΈμ ν΅ν© ν μ€νΈλ₯Ό μμ±νμ¬ μ½λκ° μμλλ‘ μλνλμ§ νμΈνμΈμ. ν μ€ν μ νΉν 볡μ‘ν μμ‘΄μ±μ λ€λ£° λ μ ν리μΌμ΄μ μ μ λ’°μ±μ 보μ₯νλ λ° νμμ μ λλ€.
λͺ¨λ κ·Έλνμ νμ κΈ°λ° λΆμμ λ―Έλ
λͺ¨λ κ·Έλνμ νμ κΈ°λ° λΆμ λΆμΌλ λμμμ΄ λ°μ νκ³ μμ΅λλ€. λ€μμ λͺ κ°μ§ μ μ¬μ μΈ λ―Έλ λ°μ λ°©ν₯μ λλ€:
- κ°μ λ μ μ λΆμ: μ μ λΆμ λꡬλ μ μ λ μ κ΅ν΄μ Έμ λ 볡μ‘ν μ€λ₯λ₯Ό κ°μ§νκ³ μ½λ λμμ λν λ μμΈν ν΅μ°°λ ₯μ μ 곡ν μ μκ² λκ³ μμ΅λλ€. λ¨Έμ λ¬λ κΈ°μ μ μ¬μ©νμ¬ μ μ λΆμμ μ νμ±κ³Ό ν¨κ³Όλ₯Ό λμ± ν₯μμν¬ μ μμ΅λλ€.
- λμ λΆμ: λ°νμ νμ μ²΄νΉ λ° νλ‘νμΌλ§κ³Ό κ°μ λμ λΆμ κΈ°μ μ λ°νμ μ μ½λ λμμ λν μ 보λ₯Ό μ 곡νμ¬ μ μ λΆμμ 보μν μ μμ΅λλ€. μ μ λΆμκ³Ό λμ λΆμμ κ²°ν©νλ©΄ μ½λ νμ§μ λν λ μμ ν κ·Έλ¦Όμ μ 곡ν μ μμ΅λλ€.
- νμ€νλ λͺ¨λ λ©νλ°μ΄ν°: λͺ¨λ λ©νλ°μ΄ν°λ₯Ό νμ€ννλ €λ λ Έλ ₯μ΄ μ§ν μ€μ΄λ©°, μ΄λ₯Ό ν΅ν΄ λꡬλ€μ΄ λͺ¨λμ μμ‘΄μ±κ³Ό νΉμ±μ λ μ½κ² μ΄ν΄ν μ μκ² λ κ²μ λλ€. μ΄λ λ€μν λꡬμ μνΈ μ΄μ©μ±μ ν₯μμν€κ³ λκ·λͺ¨ μλ°μ€ν¬λ¦½νΈ μ ν리μΌμ΄μ μ λ μ½κ² ꡬμΆνκ³ μ μ§λ³΄μν μ μκ² λ§λ€ κ²μ λλ€.
- κ³ κΈ νμ μμ€ν : νμ μμ€ν μ λμ± ννλ ₯μ΄ νλΆν΄μ Έ κ°λ°μκ° λ 볡μ‘ν νμ μ μ½ μ‘°κ±΄κ³Ό κ΄κ³λ₯Ό μ§μ ν μ μκ² λμμ΅λλ€. μ΄λ λ μ λ’°ν μ μκ³ μ μ§λ³΄μνκΈ° μ¬μ΄ μ½λλ‘ μ΄μ΄μ§ μ μμ΅λλ€. νμ μ€ν¬λ¦½νΈμ κ°μ μΈμ΄λ μλ‘μ΄ νμ μμ€ν κΈ°λ₯μ ν΅ν©νκΈ° μν΄ μ§μμ μΌλ‘ λ°μ νκ³ μμ΅λλ€.
- ν¨ν€μ§ λ§€λμ μμ ν΅ν©: npmμ΄λ yarnκ³Ό κ°μ ν¨ν€μ§ λ§€λμ λ λͺ¨λ κ·Έλν λΆμ λꡬμ λ κΈ΄λ°νκ² ν΅ν©λμ΄ κ°λ°μκ° μμ‘΄μ± λ¬Έμ λ₯Ό μ½κ² μλ³νκ³ ν΄κ²°ν μ μκ² λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, ν¨ν€μ§ λ§€λμ λ μ¬μ©λμ§ μλ μμ‘΄μ±μ΄λ μΆ©λνλ μμ‘΄μ±μ λν΄ κ²½κ³ λ₯Ό μ 곡ν μ μμ΅λλ€.
- ν₯μλ 보μ λΆμ: λͺ¨λ κ·Έλν λΆμμ μλ°μ€ν¬λ¦½νΈ μ ν리μΌμ΄μ μ μ μ¬μ μΈ λ³΄μ μ·¨μ½μ μ μλ³νλ λ° μ¬μ©λ μ μμ΅λλ€. λͺ¨λ κ°μ μμ‘΄μ±μ λΆμν¨μΌλ‘μ¨ λꡬλ μ μ¬μ μΈ μ£Όμ μ§μ λ° κΈ°ν 보μ μνμ κ°μ§ν μ μμ΅λλ€. μ΄λ μλ°μ€ν¬λ¦½νΈκ° μ μ λ 보μμ λ―Όκ°ν μ ν리μΌμ΄μ μ μ¬μ©λ¨μ λ°λΌ λμ± μ€μν΄μ§κ³ μμ΅λλ€.
κ²°λ‘
μλ°μ€ν¬λ¦½νΈ import assertionκ³Ό νμ κΈ°λ° μμ‘΄μ± λΆμμ μ λ’°ν μ μκ³ , μ μ§λ³΄μ κ°λ₯νλ©°, μμ ν μ ν리μΌμ΄μ μ ꡬμΆνκΈ° μν κ·μ€ν λꡬμ λλ€. λͺ¨λμ΄ μ¬λ°λ₯΄κ² λ‘λλκ³ μ¬μ©λλλ‘ λ³΄μ₯ν¨μΌλ‘μ¨ μ΄λ¬ν κΈ°μ μ λ°νμ μ€λ₯λ₯Ό λ°©μ§νκ³ , μ½λ νμ§μ ν₯μμν€λ©°, 보μ μ·¨μ½μ μ μνμ μ€μ΄λ λ° λμμ΄ λ μ μμ΅λλ€. μλ°μ€ν¬λ¦½νΈκ° κ³μ λ°μ ν¨μ λ°λΌ μ΄λ¬ν κΈ°μ μ νλ μΉ κ°λ°μ 볡μ‘μ±μ κ΄λ¦¬νλ λ° λμ± μ€μν΄μ§ κ²μ λλ€.
νμ¬ import assertionμ μ£Όλ‘ MIME νμ μ μ΄μ μ λ§μΆκ³ μμ§λ§, λ―Έλμλ λ μΈλΆνλ μ΄μ€μ , μ¬μ§μ΄λ μ¬μ©μ μ μ μ ν¨μ± κ²μ¬ ν¨μκΉμ§ κ°λ₯ν μ μ¬λ ₯μ ν₯λ―Έλ‘μ΅λλ€. μ΄λ μν¬νΈ μμ μ μ§μ μΌλ‘ κ²¬κ³ ν λͺ¨λ κ²μ¦μ λ¬Έμ μ½λλ€.
μ΄λ¬ν κΈ°μ κ³Ό λͺ¨λ² μ¬λ‘λ₯Ό μμ©ν¨μΌλ‘μ¨ κ°λ°μλ λ κ²¬κ³ νκ³ μ λ’°ν μ μλ μλ°μ€ν¬λ¦½νΈ μ ν리μΌμ΄μ μ ꡬμΆνμ¬, μ§μμ΄λ λ°°κ²½μ κ΄κ³μμ΄ λͺ¨λ μ¬λμ μν λ μ λ’°ν μ μκ³ μμ ν μΉμ κΈ°μ¬ν μ μμ΅λλ€.