μλ°μ€ν¬λ¦½νΈ λͺ¨λ ννμμ ν΅ν λμ λͺ¨λ μμ±μ νꡬνμ¬ μ΅μ μΉ κ°λ° νλ‘μ νΈμ μ½λ μ¬μ¬μ©μ±, μ μ§λ³΄μμ±, μ μ°μ±μ ν₯μμν€μΈμ.
μλ°μ€ν¬λ¦½νΈ λͺ¨λ ννμ: λμ λͺ¨λ μμ±
μλ°μ€ν¬λ¦½νΈ λͺ¨λμ νλ μΉ κ°λ°μμ μ½λλ₯Ό ꡬμ±νκ³ , μ¬μ¬μ©μ±μ λμ΄λ©°, μμ‘΄μ±μ κ΄λ¦¬νλ λ° νμμ μ
λλ€. import
μ export
λ₯Ό μ¬μ©νλ νμ€ λͺ¨λ κ΅¬λ¬Έμ΄ λ리 μ±νλμμ§λ§, λͺ¨λ ννμμ λμ μΌλ‘ λͺ¨λμ μμ±νλ κ°λ ₯ν λ©μ»€λμ¦μ μ 곡ν©λλ€. μ΄ κΈμμλ λͺ¨λ ννμμ κ°λ
, μ΄μ , κ·Έλ¦¬κ³ μ΄λ₯Ό νμ©νμ¬ λ μ μ°νκ³ μ μ§λ³΄μνκΈ° μ¬μ΄ μ ν리μΌμ΄μ
μ ꡬμΆνλ λ°©λ²μ νꡬν©λλ€.
μλ°μ€ν¬λ¦½νΈ λͺ¨λ μ΄ν΄νκΈ°
λͺ¨λ ννμμ λν΄ μμ보기 μ μ, μλ°μ€ν¬λ¦½νΈ λͺ¨λμ κΈ°λ³Έμ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. λͺ¨λμ κΈ°λ₯μ μΊ‘μννκ³ λ€λ₯Έ λͺ¨λμμ μ¬μ©ν νΉμ λ©€λ²(λ³μ, ν¨μ, ν΄λμ€)λ₯Ό λ ΈμΆνλ λ 립μ μΈ μ½λ λ¨μμ λλ€. μ΄λ μ΄λ¦ μΆ©λμ νΌνκ³ , μ½λ μ¬μ¬μ©μ μ΄μ§νλ©°, μ ν리μΌμ΄μ μ μ λ°μ μΈ κ΅¬μ‘°λ₯Ό κ°μ νλ λ° λμμ΄ λ©λλ€.
μ ν΅μ μΌλ‘ μλ°μ€ν¬λ¦½νΈ λͺ¨λμ λ€μκ³Ό κ°μ λ€μν λͺ¨λ νμμ μ¬μ©νμ¬ κ΅¬νλμμ΅λλ€:
- CommonJS: μ£Όλ‘ Node.js νκ²½μμ μ¬μ©λλ©°, CommonJSλ λͺ¨λ λ‘λ© λ° μ μλ₯Ό μν΄
require
μmodule.exports
λ₯Ό μ¬μ©ν©λλ€. - λΉλκΈ° λͺ¨λ μ μ(AMD): λΈλΌμ°μ μμ λΉλκΈ° λ‘λ©μ μν΄ μ€κ³λμμΌλ©°, AMDλ λͺ¨λμ μ μνκΈ° μν΄
define
μ, λ‘λνκΈ° μν΄require
λ₯Ό μ¬μ©ν©λλ€. - λ²μ© λͺ¨λ μ μ(UMD): CommonJSμ AMD νκ²½ λͺ¨λμμ μλνλ λͺ¨λμ λ§λ€λ €λ μλμ λλ€.
- ECMAScript λͺ¨λ(ES λͺ¨λ): ECMAScript 2015(ES6)μμ λμ
λ νμ€ λͺ¨λ νμμΌλ‘,
import
μexport
λ₯Ό μ¬μ©ν©λλ€. ES λͺ¨λμ μ΄μ μ΅μ λΈλΌμ°μ μ Node.jsμμ λ리 μ§μλ©λλ€.
λͺ¨λ ννμ μκ°
λͺ¨λ ννμμ μ μ λͺ¨λ μ μΈκ³Ό λ¬λ¦¬ λͺ¨λμ λμ μΌλ‘ μμ±νκ³ λ΄λ³΄λΌ μ μκ² ν΄μ€λλ€. μ΄λ λͺ¨λμ μ½ν μΈ μ κ΅¬μ‘°κ° λ°νμμ κ²°μ λ μ μμμ μλ―Ένλ©°, λͺ¨λ μ μκ° μ¬μ©μ μ λ ₯, κ΅¬μ± λ°μ΄ν° λλ κΈ°ν λ°νμ 쑰건과 κ°μ μΈλΆ μμΈμ λ°λΌ λ¬λΌμ§λ μν©μμ μλΉν μ μ°μ±μ μ 곡ν©λλ€.
λ³Έμ§μ μΌλ‘ λͺ¨λ ννμμ λͺ¨λμ λ΄λ³΄λ΄κΈ°λ₯Ό λνλ΄λ κ°μ²΄λ₯Ό λ°ννλ ν¨μ λλ ννμμ λλ€. μ΄ κ°μ²΄λ λͺ¨λλ‘ μ·¨κΈλ μ μμΌλ©° νμμ λ°λΌ κ·Έ μμ±μ μ κ·Όνκ±°λ κ°μ Έμ¬ μ μμ΅λλ€.
λͺ¨λ ννμμ μ΄μ
- λμ λͺ¨λ μμ±: λ°νμμ μ½ν μΈ κ° κ²°μ λλ λͺ¨λμ μμ±ν μ μμ΅λλ€. μ΄λ μ¬μ©μ μν , κ΅¬μ± λλ κΈ°ν λμ μμΈμ λ°λΌ λ€λ₯Έ λͺ¨λμ λ‘λν΄μΌ ν λ μ μ©ν©λλ€. μλ₯Ό λ€μ΄, μ¬μ©μμ λ‘μΊμ λ°λΌ κ° μΈμ΄μ ν μ€νΈ μ½ν μΈ λ₯Ό λ³λμ λͺ¨λλ‘ λ‘λνλ λ€κ΅μ΄ μΉμ¬μ΄νΈλ₯Ό μμν΄ λ³΄μΈμ.
- μ‘°κ±΄λΆ λͺ¨λ λ‘λ©: νΉμ 쑰건μ λ°λΌ λͺ¨λμ λ‘λν μ μμ΅λλ€. μ΄λ μ€μ λ‘ νμν λͺ¨λλ§ λ‘λνμ¬ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ¬μ©μκ° νμν κΆνμ κ°μ§κ³ μκ±°λ λΈλΌμ°μ κ° νμν APIλ₯Ό μ§μνλ κ²½μ°μλ§ νΉμ κΈ°λ₯ λͺ¨λμ λ‘λν μ μμ΅λλ€.
- λͺ¨λ ν©ν 리: λͺ¨λ ννμμ λͺ¨λ ν©ν 리 μν μ νμ¬ λ€μν ꡬμ±μ λͺ¨λ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μμ΅λλ€. μ΄λ λ§μΆ€ν λμμ κ°μ§ μ¬μ¬μ© κ°λ₯ν μ»΄ν¬λνΈλ₯Ό λ§λλ λ° μ μ©ν©λλ€. μ¬μ©μ μ νΈλμ λ°λΌ νΉμ λ°μ΄ν°μ κ³Ό μ€νμΌλ‘ λ€λ₯Έ μ°¨νΈ λͺ¨λμ μμ±ν μ μλ μ°¨νΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό μκ°ν΄ 보μΈμ.
- ν₯μλ μ½λ μ¬μ¬μ©μ±: λμ λͺ¨λ λ΄μ λ‘μ§μ μΊ‘μνν¨μΌλ‘μ¨ μ ν리μΌμ΄μ μ μ¬λ¬ λΆλΆμμ μ½λ μ¬μ¬μ©μ μ΄μ§ν μ μμ΅λλ€. λͺ¨λ ννμμ μ¬μ©νλ©΄ λͺ¨λ μμ± κ³Όμ μ λ§€κ°λ³μννμ¬ λ μ μ°νκ³ μ¬μ¬μ© κ°λ₯ν μ»΄ν¬λνΈλ₯Ό λ§λ€ μ μμ΅λλ€.
- ν₯μλ ν μ€νΈ μ©μ΄μ±: λμ λͺ¨λμ ν μ€νΈ λͺ©μ μΌλ‘ μ½κ² λͺ¨μ(mock)νκ±°λ μ€ν (stub)μΌλ‘ λ§λ€ μ μμ΄ κ°λ³ μ»΄ν¬λνΈλ₯Ό 격리νκ³ ν μ€νΈνκΈ°κ° λ μ¬μμ§λλ€.
λͺ¨λ ννμ ꡬννκΈ°
μλ°μ€ν¬λ¦½νΈμμ λͺ¨λ ννμμ ꡬννλ λ°©λ²μλ μ¬λ¬ κ°μ§κ° μμ΅λλ€. λ€μμ λͺ κ°μ§ μΌλ°μ μΈ μ κ·Ό λ°©μμ λλ€:
1. μ¦μ μ€ν ν¨μ ννμ(IIFE) μ¬μ©
IIFEλ λ 립μ μΈ λͺ¨λμ λ§λλ κ³ μ μ μΈ λ°©λ²μ λλ€. IIFEλ μ μλ μ§ν μ¦μ νΈμΆλλ ν¨μ ννμμ λλ€. μ΄λ λͺ¨λμ λ΄λ³΄λ΄κΈ°λ₯Ό ν¬ν¨νλ κ°μ²΄λ₯Ό λ°νν μ μμ΅λλ€.
const myModule = (function() {
const privateVariable = "Hello";
function publicFunction() {
console.log(privateVariable + " World!");
}
return {
publicFunction: publicFunction
};
})();
myModule.publicFunction(); // Output: Hello World!
μ΄ μμμ IIFEλ publicFunction
μμ±μ κ°μ§ κ°μ²΄λ₯Ό λ°νν©λλ€. μ΄ ν¨μλ IIFE μΈλΆμμ μ κ·Όν μ μμ§λ§, privateVariable
μ ν¨μμ μ€μ½ν λ΄μ μΊ‘μνλ μνλ‘ μ μ§λ©λλ€.
2. ν©ν 리 ν¨μ μ¬μ©
ν©ν 리 ν¨μλ κ°μ²΄λ₯Ό λ°ννλ ν¨μμ λλ€. λ€μν ꡬμ±μ λͺ¨λμ λ§λλ λ° μ¬μ©ν μ μμ΅λλ€.
function createModule(config) {
const name = config.name || "Default Module";
const version = config.version || "1.0.0";
function getName() {
return name;
}
function getVersion() {
return version;
}
return {
getName: getName,
getVersion: getVersion
};
}
const module1 = createModule({ name: "My Module", version: "2.0.0" });
const module2 = createModule({});
console.log(module1.getName()); // Output: My Module
console.log(module2.getName()); // Output: Default Module
μ¬κΈ°μ createModule
ν¨μλ ν©ν 리 μν μ νμ¬ μ λ¬λ κ΅¬μ± κ°μ²΄μ λ°λΌ λ€λ₯Έ μ΄λ¦κ³Ό λ²μ μ κ°μ§ λͺ¨λμ μμ±ν©λλ€.
3. ν΄λμ€ μ¬μ©
ν΄λμ€λ₯Ό μ¬μ©νμ¬ λͺ¨λ ννμμ λ§λ€ μλ μμ΅λλ€. ν΄λμ€λ λͺ¨λμ μμ±κ³Ό λ©μλλ₯Ό μ μν μ μμΌλ©°, ν΄λμ€μ μΈμ€ν΄μ€κ° λͺ¨λμ λ΄λ³΄λ΄κΈ°λ‘ λ°νλ μ μμ΅λλ€.
class MyModule {
constructor(name) {
this.name = name || "Default Module";
}
getName() {
return this.name;
}
}
function createModule(name) {
return new MyModule(name);
}
const module1 = createModule("Custom Module");
console.log(module1.getName()); // Output: Custom Module
μ΄ κ²½μ° MyModule
ν΄λμ€λ λͺ¨λμ λ‘μ§μ μΊ‘μννκ³ , createModule
ν¨μλ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±νμ¬ ν¨κ³Όμ μΌλ‘ λͺ¨λ ν©ν 리 μν μ ν©λλ€.
4. λμ Import (ES λͺ¨λ)
ES λͺ¨λμ λ°νμμ λͺ¨λμ λμ μΌλ‘ κ°μ Έμ¬ μ μλ import()
ν¨μλ₯Ό μ 곡ν©λλ€. μ΄λ μ‘°κ±΄λΆ λͺ¨λ λ‘λ© λ° μ½λ λΆν μ κ°λ₯νκ² νλ κ°λ ₯ν κΈ°λ₯μ
λλ€.
async function loadModule(modulePath) {
try {
const module = await import(modulePath);
return module;
} catch (error) {
console.error("Error loading module:", error);
return null; // Or handle the error appropriately
}
}
// Example usage:
loadModule('./my-module.js')
.then(module => {
if (module) {
module.myFunction();
}
});
import()
ν¨μλ λͺ¨λμ λ΄λ³΄λ΄κΈ°λ‘ νμΈ(resolve)λλ νλΌλ―Έμ€(promise)λ₯Ό λ°νν©λλ€. await
λ₯Ό μ¬μ©νμ¬ λͺ¨λμ΄ λ‘λλ λκΉμ§ κΈ°λ€λ¦° ν ν΄λΉ λ©€λ²μ μ κ·Όν μ μμ΅λλ€. μ΄ μ κ·Ό λ°©μμ μ¬μ©μ μνΈ μμ©μ΄λ κΈ°ν λ°νμ 쑰건μ λ°λΌ νμν λ λͺ¨λμ λ‘λνλ λ° νΉν μ μ©ν©λλ€.
λͺ¨λ ννμμ μ¬μ© μ¬λ‘
λͺ¨λ ννμμ λ€μν μλ리μ€μμ μ μ©ν©λλ€. λ€μμ λͺ κ°μ§ μμ λλ€:
1. νλ¬κ·ΈμΈ μμ€ν
λͺ¨λ ννμμ μ¬μ©μκ° μ ν리μΌμ΄μ μ κΈ°λ₯μ νμ₯ν μ μλλ‘ νλ νλ¬κ·ΈμΈ μμ€ν μ λ§λλ λ° μ¬μ©λ μ μμ΅λλ€. κ° νλ¬κ·ΈμΈμ μ¬μ©μ ꡬμ±μ λ°λΌ λμ μΌλ‘ λ‘λλλ λͺ¨λλ‘ κ΅¬νλ μ μμ΅λλ€.
μ¬μ©μκ° SEO λꡬ, μμ λ―Έλμ΄ ν΅ν© λλ μ μμκ±°λ κΈ°λ₯κ³Ό κ°μ μλ‘μ΄ κΈ°λ₯μ μΆκ°νκΈ° μν΄ νλ¬κ·ΈμΈμ μ€μΉν μ μλ μ½ν μΈ κ΄λ¦¬ μμ€ν (CMS)μ μμν΄ λ³΄μΈμ. κ° νλ¬κ·ΈμΈμ μ¬μ©μκ° μ€μΉνκ³ νμ±νν λ λμ μΌλ‘ λ‘λλλ λ³λμ λͺ¨λμ΄ λ μ μμ΅λλ€.
2. ν λ§ μ»€μ€ν°λ§μ΄μ§
ν λ§λ₯Ό μ§μνλ μ ν리μΌμ΄μ μμ λͺ¨λ ννμμ μ νλ ν λ§μ λ°λΌ λ€λ₯Έ μ€νμΌμνΈμ μ€ν¬λ¦½νΈλ₯Ό λ‘λνλ λ° μ¬μ©λ μ μμ΅λλ€. κ° ν λ§λ νμν μμ (asset)μ λ΄λ³΄λ΄λ λͺ¨λλ‘ ννλ μ μμ΅λλ€.
μλ₯Ό λ€μ΄, μ μμκ±°λ νλ«νΌμ μ¬μ©μκ° μΉμ¬μ΄νΈμ λͺ¨μκ³Ό λλμ λ³κ²½νλ λ€μν ν λ§ μ€μμ μ νν μ μλλ‘ ν μ μμ΅λλ€. κ° ν λ§λ μ¬μ©μκ° ν λ§λ₯Ό μ νν λ λμ μΌλ‘ λ‘λλλ CSS νμΌ, μ΄λ―Έμ§ λ° μλ°μ€ν¬λ¦½νΈ νμΌμ λ΄λ³΄λ΄λ λͺ¨λμ΄ λ μ μμ΅λλ€.
3. A/B ν μ€ν
λͺ¨λ ννμμ λ€λ₯Έ μ¬μ©μμκ² κΈ°λ₯μ λ€λ₯Έ λ²μ μ μ μνλ A/B ν μ€ν μ ꡬννλ λ° μ¬μ©λ μ μμ΅λλ€. κ° λ²μ μ μ¬μ©μμ κ·Έλ£Ή ν λΉμ λ°λΌ λμ μΌλ‘ λ‘λλλ λͺ¨λλ‘ κ΅¬νλ μ μμ΅λλ€.
λ§μΌν μΉμ¬μ΄νΈλ λλ© νμ΄μ§μ λ€λ₯Έ λ²μ μ λΉκ΅νκΈ° μν΄ A/B ν μ€ν μ μ¬μ©ν μ μμ΅λλ€. κ° λ²μ μ νμ΄μ§μ μ½ν μΈ μ λ μ΄μμμ λ΄λ³΄λ΄λ λͺ¨λμ΄ λ μ μμ΅λλ€. κ·Έλ° λ€μ μΉμ¬μ΄νΈλ μ¬μ©μμ ν λΉλ κ·Έλ£Ήμ λ°λΌ μ μ ν λͺ¨λμ λ‘λν μ μμ΅λλ€.
4. κ΅μ ν(i18n) λ° νμ§ν(l10n)
λͺ¨λ ννμμ λ²μ λ° νμ§νλ μ½ν μΈ λ₯Ό κ΄λ¦¬νλ λ° λ§€μ° μ μ©ν©λλ€. κ° μΈμ΄λ λ²μλ ν μ€νΈμ λ‘μΊλ³ μμ κ·μΉμ ν¬ν¨νλ λ³λμ λͺ¨λλ‘ ννλ μ μμ΅λλ€.
μ¬λ¬ μΈμ΄λ₯Ό μ§μν΄μΌ νλ μΉ μ ν리μΌμ΄μ μ μκ°ν΄ 보μΈμ. μ ν리μΌμ΄μ μ½λμ ν μ€νΈλ₯Ό νλμ½λ©νλ λμ κ° μΈμ΄μ λν λͺ¨λμ λ§λ€ μ μμ΅λλ€. κ° λͺ¨λμ λ€μν UI μμμ λν λ²μλ ν μ€νΈλ₯Ό ν¬ν¨νλ κ°μ²΄λ₯Ό λ΄λ³΄λ λλ€. κ·Έλ° λ€μ μ ν리μΌμ΄μ μ μ¬μ©μμ λ‘μΊμ λ°λΌ μ μ ν μΈμ΄ λͺ¨λμ λ‘λν μ μμ΅λλ€.
// en-US.js (English module)
export default {
greeting: "Hello",
farewell: "Goodbye",
welcomeMessage: "Welcome to our website!"
};
// es-ES.js (Spanish module)
export default {
greeting: "Hola",
farewell: "AdiΓ³s",
welcomeMessage: "Β‘Bienvenido a nuestro sitio web!"
};
// Application code
async function loadLocale(locale) {
try {
const translations = await import(`./${locale}.js`);
return translations.default;
} catch (error) {
console.error("Error loading locale:", error);
return {}; // Or handle the error appropriately
}
}
// Usage
loadLocale('es-ES')
.then(translations => {
console.log(translations.greeting); // Output: Hola
});
5. κΈ°λ₯ νλκ·Έ(Feature Flags)
κΈ°λ₯ νλκ·Έ(κΈ°λ₯ ν κΈμ΄λΌκ³ λ ν¨)λ μ μ½λλ₯Ό λ°°ν¬νμ§ μκ³ λ λ°νμμ κΈ°λ₯μ νμ±ννκ±°λ λΉνμ±ννλ κ°λ ₯ν κΈ°μ μ λλ€. λͺ¨λ ννμμ κΈ°λ₯ νλκ·Έμ μνμ λ°λΌ κΈ°λ₯μ λ€λ₯Έ ꡬνμ λ‘λνλ λ° μ¬μ©λ μ μμ΅λλ€.
μ ν리μΌμ΄μ μ μλ‘μ΄ κΈ°λ₯μ κ°λ° μ€μ΄μ§λ§, λͺ¨λ μ¬μ©μμκ² μ 곡νκΈ° μ μ μΌλΆ μ¬μ©μμκ² μ μ§μ μΌλ‘ μΆμνκ³ μΆλ€κ³ μμν΄ λ³΄μΈμ. κΈ°λ₯ νλκ·Έλ₯Ό μ¬μ©νμ¬ νΉμ μ¬μ©μμ λν΄ μλ‘μ΄ κΈ°λ₯μ΄ νμ±νλμλμ§ μ¬λΆλ₯Ό μ μ΄ν μ μμ΅λλ€. μ ν리μΌμ΄μ μ νλκ·Έ κ°μ λ°λΌ λ€λ₯Έ λͺ¨λμ λ‘λν μ μμ΅λλ€. ν λͺ¨λμλ μλ‘μ΄ κΈ°λ₯μ ꡬνμ΄ ν¬ν¨λ μ μκ³ , λ€λ₯Έ λͺ¨λμλ μ΄μ ꡬνμ΄λ νλ μ΄μ€νλκ° ν¬ν¨λ μ μμ΅λλ€.
λͺ¨λ ννμ μ¬μ©μ μν λͺ¨λ² μ¬λ‘
λͺ¨λ ννμμ μλΉν μ μ°μ±μ μ 곡νμ§λ§, 볡μ‘μ±κ³Ό μ μ§λ³΄μ λ¬Έμ λ₯Ό μΌκΈ°νμ§ μλλ‘ μ μ€νκ² μ¬μ©νκ³ λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄λ κ²μ΄ μ€μν©λλ€.
- μ μ€ν μ¬μ©: λͺ¨λ ννμμ κ³Όλνκ² μ¬μ©νμ§ λ§μΈμ. λͺ¨λμ κ΅¬μ‘°κ° μ»΄νμΌ νμμ μλ €μ§ κ°λ¨ν κ²½μ°μλ μΌλ°μ μΌλ‘ μ μ λͺ¨λμ΄ μ νΈλ©λλ€.
- λ¨μν¨ μ μ§: λͺ¨λ ννμμ λ§λλ λ‘μ§μ κ°λ₯ν ν λ¨μνκ² μ μ§νμΈμ. 볡μ‘ν λ‘μ§μ μ½λλ₯Ό μ΄ν΄νκ³ μ μ§λ³΄μνκΈ° μ΄λ ΅κ² λ§λ€ μ μμ΅λλ€.
- λͺ νν λ¬Έμν: λͺ¨λ ννμμ λͺ©μ κ³Ό λμμ λͺ ννκ² λ¬ΈμννμΈμ. μ΄λ λ€λ₯Έ κ°λ°μκ° μλ λ°©μκ³Ό μ¬λ°λ₯Έ μ¬μ©λ²μ μ΄ν΄νλ λ° λμμ΄ λ©λλ€.
- μ² μ ν ν μ€νΈ: λͺ¨λ ννμμ΄ λ€λ₯Έ 쑰건μμλ μμλλ‘ λμνλμ§ μ² μ νκ² ν μ€νΈνμΈμ.
- μ€λ₯ μ²λ¦¬: λͺ¨λμ λμ μΌλ‘ λ‘λν λ μ μ ν μ€λ₯ μ²λ¦¬λ₯Ό ꡬννμΈμ. μ΄λ λͺ¨λ λ‘λμ μ€ν¨νμ λ μ ν리μΌμ΄μ μ΄ μ€λ¨λλ κ²μ λ°©μ§ν©λλ€.
- 보μ κ³ λ €μ¬ν: μΈλΆ μμ€μμ λͺ¨λμ λ‘λν λ 보μ μν₯μ μΌλμ λμΈμ. λ‘λνλ λͺ¨λμ΄ μ λ’°ν μ μλ μμ€μμ μ¨ κ²μ΄λ©° 보μ 곡격μ μ·¨μ½νμ§ μμμ§ νμΈνμΈμ.
- μ±λ₯ κ³ λ €μ¬ν: λμ λͺ¨λ λ‘λ©μ μ±λ₯μ μν₯μ λ―ΈμΉ μ μμ΅λλ€. νμ΄μ§ λ‘λ μκ°μ λ―ΈμΉλ μν₯μ μ΅μννκΈ° μν΄ μ½λ λΆν λ° μ§μ° λ‘λ© κΈ°μ μ μ¬μ©νλ κ²μ κ³ λ €νμΈμ.
κ²°λ‘
μλ°μ€ν¬λ¦½νΈ λͺ¨λ ννμμ λͺ¨λμ λμ μΌλ‘ μμ±νλ κ°λ ₯ν λ©μ»€λμ¦μ μ 곡νμ¬ μ½λμ μ μ°μ±, μ¬μ¬μ©μ± λ° μ μ§λ³΄μμ±μ λμ¬μ€λλ€. IIFE, ν©ν 리 ν¨μ, ν΄λμ€ λ° λμ importλ₯Ό νμ©νμ¬ λ°νμμ μ½ν μΈ μ κ΅¬μ‘°κ° κ²°μ λλ λͺ¨λμ λ§λ€μ΄ λ³ννλ 쑰건과 μ¬μ©μ μ νΈλμ μ μν μ μμ΅λλ€.
μ μ λͺ¨λμ΄ λ§μ κ²½μ°μ μ ν©νμ§λ§, λͺ¨λ ννμμ λμ μ½ν μΈ , μ‘°κ±΄λΆ λ‘λ©, νλ¬κ·ΈμΈ μμ€ν , ν λ§ μ»€μ€ν°λ§μ΄μ§, A/B ν μ€ν , κ΅μ ν λ° κΈ°λ₯ νλκ·Έλ₯Ό λ€λ£° λ λ νΉν μ΄μ μ μ 곡ν©λλ€. μ΄ κΈμμ μ€λͺ ν μμΉκ³Ό λͺ¨λ² μ¬λ‘λ₯Ό μ΄ν΄ν¨μΌλ‘μ¨, μ μΈκ³ μ¬μ©μλ₯Ό μν λ μ κ΅νκ³ μ μλ ₯ μλ μλ°μ€ν¬λ¦½νΈ μ ν리μΌμ΄μ μ ꡬμΆνκΈ° μν΄ λͺ¨λ ννμμ νμ ν¨κ³Όμ μΌλ‘ νμ©ν μ μμ΅λλ€.