μλ°μ€ν¬λ¦½νΈ λͺ¨λ νλλ μ΄μ μ λ°νμ λ° λμ λ‘λ© κΈ°λ₯μ λν μ¬μΈ΅ λΆμμΌλ‘, μ΄μ , ꡬν λ°©λ², κ³ κΈ μ¬μ© μ¬λ‘λ₯Ό λ€λ£Ήλλ€.
μλ°μ€ν¬λ¦½νΈ λͺ¨λ νλλ μ΄μ λ°νμ: λμ λ‘λ© μ¬μΈ΅ λΆμ
μΉν© 5(Webpack 5)λ₯Ό ν΅ν΄ λμ€νλ μλ°μ€ν¬λ¦½νΈ λͺ¨λ νλλ μ΄μ μ λ 립μ μΌλ‘ λ°°ν¬λ μ ν리μΌμ΄μ κ°μ μ½λλ₯Ό 곡μ ν μ μλ κ°λ ₯ν μ루μ μ μ 곡ν©λλ€. κ·Έ λ°νμ κ΅¬μ± μμμ λμ λ‘λ© κΈ°λ₯μ κ·Έ μ μ¬λ ₯μ μ΄ν΄νκ³ λ³΅μ‘ν μΉ μν€ν μ²μμ ν¨κ³Όμ μΌλ‘ νμ©νλ λ° λ§€μ° μ€μν©λλ€. μ΄ κ°μ΄λλ μ΄λ¬ν μΈ‘λ©΄μ λν ν¬κ΄μ μΈ κ°μλ₯Ό μ 곡νλ©°, κ·Έ μ΄μ , ꡬν λ°©λ² λ° κ³ κΈ μ¬μ© μ¬λ‘λ₯Ό νꡬν©λλ€.
ν΅μ¬ κ°λ μ΄ν΄νκΈ°
λ°νμκ³Ό λμ λ‘λ©μ μΈλΆ μ¬νμ μ΄ν΄λ³΄κΈ° μ μ λͺ¨λ νλλ μ΄μ μ κΈ°λ³Έ κ°λ μ νμ νλ κ²μ΄ μ€μν©λλ€.
λͺ¨λ νλλ μ΄μ μ΄λ 무μμΈκ°?
λͺ¨λ νλλ μ΄μ μ μ¬μ©νλ©΄ μλ°μ€ν¬λ¦½νΈ μ ν리μΌμ΄μ μ΄ λ°νμμ λ€λ₯Έ μ ν리μΌμ΄μ μ μ½λλ₯Ό λμ μΌλ‘ λ‘λνκ³ μ¬μ©ν μ μμ΅λλ€. μ΄λ¬ν μ ν리μΌμ΄μ λ€μ μλ‘ λ€λ₯Έ λλ©μΈμμ νΈμ€ν λ μ μκ³ , λ€λ₯Έ νλ μμν¬λ₯Ό μ¬μ©νλ©°, λ 립μ μΌλ‘ λ°°ν¬λ μ μμ΅λλ€. μ΄λ λκ·λͺ¨ μ ν리μΌμ΄μ μ λ μκ³ λ 립μ μΌλ‘ λ°°ν¬ κ°λ₯ν λ¨μλ‘ λΆν΄νλ λ§μ΄ν¬λ‘ νλ‘ νΈμλ μν€ν μ²μ ν΅μ¬ λλ ₯μ λλ€.
μμ°μ(Producer)μ μλΉμ(Consumer)
- μμ°μ(Producer): λ€λ₯Έ μ ν리μΌμ΄μ μμ μ¬μ©ν μ μλλ‘ λͺ¨λμ λ ΈμΆνλ μ ν리μΌμ΄μ μ λλ€.
- μλΉμ(Consumer): μμ°μκ° λ ΈμΆν λͺ¨λμ κ°μ Έμ μ¬μ©νλ μ ν리μΌμ΄μ μ λλ€.
λͺ¨λ νλλ μ΄μ νλ¬κ·ΈμΈ
μΉν©μ λͺ¨λ νλλ μ΄μ νλ¬κ·ΈμΈμ μ΄ κΈ°λ₯μ ꡬλνλ μμ§μ λλ€. μμ‘΄μ± κ΄λ¦¬ λ° λ²μ κ΄λ¦¬λ₯Ό ν¬ν¨νμ¬ λͺ¨λμ λ ΈμΆνκ³ μ¬μ©νλ 볡μ‘ν κ³Όμ μ μ²λ¦¬ν©λλ€.
λ°νμμ μν
λͺ¨λ νλλ μ΄μ λ°νμμ λμ λ‘λ©μ κ°λ₯νκ² νλ λ° μ€μν μν μ ν©λλ€. λ€μκ³Ό κ°μ μ± μμ κ°μ§λλ€:
- μ격 λͺ¨λ μ°ΎκΈ°: λ°νμμ μ격 λͺ¨λμ μμΉλ₯Ό κ²°μ ν©λλ€.
- μ격 λͺ¨λ κ°μ Έμ€κΈ°: μ격 μλ²μμ νμν μ½λλ₯Ό λ€μ΄λ‘λν©λλ€.
- μ격 λͺ¨λ μ€ννκΈ°: κ°μ Έμ¨ μ½λλ₯Ό νμ¬ μ ν리μΌμ΄μ 컨ν μ€νΈμ ν΅ν©ν©λλ€.
- μμ‘΄μ± ν΄κ²°: μλΉμμ μμ°μ μ ν리μΌμ΄μ κ°μ 곡μ μμ‘΄μ±μ κ΄λ¦¬ν©λλ€.
λ°νμμ λΉλ κ³Όμ μμ μμ°μμ μλΉμ μ ν리μΌμ΄μ λͺ¨λμ μ£Όμ λ©λλ€. μ΄λ μ격 λͺ¨λμ λμ λ‘λ© λ° μ€νμ κ°λ₯νκ² νλ λΉκ΅μ μμ μ½λ μ‘°κ°μ λλ€.
λμ λ‘λ©μ μ€μ
λμ λ‘λ©μ λͺ¨λ νλλ μ΄μ μ ν΅μ¬ μ΄μ μ λλ€. μ΄λ₯Ό ν΅ν΄ μ ν리μΌμ΄μ μ μ΄κΈ° λ²λ€μ μ½λλ₯Ό ν¬ν¨νλ λμ νμμ λ°λΌ μ½λλ₯Ό λ‘λν μ μμ΅λλ€. μ΄λ νΉν ν¬κ³ 볡μ‘ν μ ν리μΌμ΄μ μ μ±λ₯μ ν¬κ² ν₯μμν¬ μ μμ΅λλ€.
λμ λ‘λ©μ μ΄μ
- μ΄κΈ° λ²λ€ ν¬κΈ° κ°μ: μ΄κΈ° μ ν리μΌμ΄μ λ‘λμ νμν μ½λλ§ λ©μΈ λ²λ€μ ν¬ν¨λ©λλ€.
- μ±λ₯ ν₯μ: μ΄κΈ° λ‘λ μκ°μ΄ λΉ¨λΌμ§κ³ λ©λͺ¨λ¦¬ μλΉκ° μ€μ΄λλλ€.
- λ 립μ μΈ λ°°ν¬: μμ°μμ μλΉμλ μ 체 μ ν리μΌμ΄μ μ¬λΉλ μμ΄ λ 립μ μΌλ‘ λ°°ν¬λ μ μμ΅λλ€.
- μ½λ μ¬μ¬μ©μ±: λͺ¨λμ μ¬λ¬ μ ν리μΌμ΄μ μμ 곡μ νκ³ μ¬μ¬μ©ν μ μμ΅λλ€.
- μ μ°μ±: λ λͺ¨λνλκ³ μ μ κ°λ₯ν μ ν리μΌμ΄μ μν€ν μ²λ₯Ό νμ©ν©λλ€.
λμ λ‘λ© κ΅¬ννκΈ°
λμ λ‘λ©μ μΌλ°μ μΌλ‘ μλ°μ€ν¬λ¦½νΈμ λΉλκΈ° import λ¬Έ(import())μ μ¬μ©νμ¬ κ΅¬νλ©λλ€. λͺ¨λ νλλ μ΄μ
λ°νμμ μ΄λ¬ν import λ¬Έμ κ°λ‘μ± μ격 λͺ¨λμ λ‘λ©μ μ²λ¦¬ν©λλ€.
μμ: μ격 λͺ¨λ μ¬μ©νκΈ°
μλΉμ μ ν리μΌμ΄μ μ΄ μμ°μ μ ν리μΌμ΄μ μμ `Button`μ΄λΌλ μ΄λ¦μ λͺ¨λμ λμ μΌλ‘ λ‘λν΄μΌ νλ μλ리μ€λ₯Ό μκ°ν΄ λ΄ μλ€.
// μλΉμ μ ν리μΌμ΄μ
async function loadButton() {
try {
const Button = await import('remote_app/Button');
const buttonInstance = new Button.default();
document.getElementById('button-container').appendChild(buttonInstance.render());
} catch (error) {
console.error('μ격 Button λͺ¨λ λ‘λ μ€ν¨:', error);
}
}
loadButton();
μ΄ μμμμ `remote_app`μ μ격 μ ν리μΌμ΄μ μ μ΄λ¦(μΉν© μ€μ μ ꡬμ±λ λλ‘)μ΄κ³ , `Button`μ λ ΈμΆλ λͺ¨λμ μ΄λ¦μ λλ€. `import()` ν¨μλ λΉλκΈ°μ μΌλ‘ λͺ¨λμ λ‘λνκ³ λͺ¨λμ exportλ₯Ό ν¬ν¨νλ νλ‘λ―Έμ€(promise)λ₯Ό λ°νν©λλ€. λͺ¨λμ΄ `export default Button;`μΌλ‘ λ΄λ³΄λ΄μ§ κ²½μ° `.default`κ° μ’ μ’ νμνλ€λ μ μ μ μνμΈμ.
μμ: λͺ¨λ λ ΈμΆνκΈ°
// μμ°μ μ ν리μΌμ΄μ
(webpack.config.js)
const { ModuleFederationPlugin } = require('webpack').container;
module.exports = {
// ... λ€λ₯Έ μΉν© μ€μ
plugins: [
new ModuleFederationPlugin({
name: 'remote_app',
filename: 'remoteEntry.js',
exposes: {
'./Button': './src/Button.js',
},
shared: {
// 곡μ μμ‘΄μ± (μ: React, ReactDOM)
},
}),
],
};
μ΄ μΉν© μ€μ μ `Button.js` λͺ¨λμ `./Button`μ΄λΌλ μ΄λ¦μΌλ‘ λ ΈμΆνλ λͺ¨λ νλλ μ΄μ νλ¬κ·ΈμΈμ μ μν©λλ€. `name` μμ±μ μλΉμ μ ν리μΌμ΄μ μ `import` λ¬Έμμ μ¬μ©λ©λλ€. `filename` μμ±μ μ격 λͺ¨λμ μ§μ μ νμΌ μ΄λ¦μ μ§μ ν©λλ€.
κ³ κΈ μ¬μ© μ¬λ‘ λ° κ³ λ € μ¬ν
λͺ¨λ νλλ μ΄μ μ μ΄μ©ν λμ λ‘λ©μ κΈ°λ³Έ ꡬνμ λΉκ΅μ κ°λ¨νμ§λ§, μΌλμ λμ΄μΌ ν λͺ κ°μ§ κ³ κΈ μ¬μ© μ¬λ‘μ κ³ λ € μ¬νμ΄ μμ΅λλ€.
λ²μ κ΄λ¦¬
μμ°μμ μλΉμ μ ν리μΌμ΄μ κ°μ μμ‘΄μ±μ 곡μ ν λλ λ²μ μ μ μ€νκ² κ΄λ¦¬νλ κ²μ΄ μ€μν©λλ€. λͺ¨λ νλλ μ΄μ μ μ¬μ©νλ©΄ μΉν© μ€μ μμ 곡μ μμ‘΄μ±κ³Ό κ·Έ λ²μ μ μ§μ ν μ μμ΅λλ€. μΉν©μ μ± κ°μ 곡μ λλ νΈν κ°λ₯ν λ²μ μ μ°ΎμΌλ €κ³ μλνλ©° νμμ λ°λΌ 곡μ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ€μ΄λ‘λν©λλ€.
// 곡μ μμ‘΄μ± μ€μ
shared: {
react: { singleton: true, requiredVersion: '^17.0.0' },
'react-dom': { singleton: true, requiredVersion: '^17.0.0' },
}
`singleton: true` μ΅μ μ 곡μ μμ‘΄μ±μ μΈμ€ν΄μ€κ° μ ν리μΌμ΄μ μ νλλ§ λ‘λλλλ‘ λ³΄μ₯ν©λλ€. `requiredVersion` μ΅μ μ νμν μμ‘΄μ±μ μ΅μ λ²μ μ μ§μ ν©λλ€.
μ€λ₯ μ²λ¦¬
λμ λ‘λ©μ λ€νΈμν¬ μ€ν¨λ νΈνλμ§ μλ λͺ¨λ λ²μ κ³Ό κ°μ μ μ¬μ μΈ μ€λ₯λ₯Ό λ°μμν¬ μ μμ΅λλ€. μ΄λ¬ν μλ리μ€λ₯Ό μ μμ μΌλ‘ μ²λ¦¬νκΈ° μν΄ κ²¬κ³ ν μ€λ₯ μ²λ¦¬ λ©μ»€λμ¦μ ꡬννλ κ²μ΄ νμμ μ λλ€.
// μ€λ₯ μ²λ¦¬ μμ
async function loadModule() {
try {
const Module = await import('remote_app/Module');
// λͺ¨λ μ¬μ©
} catch (error) {
console.error('λͺ¨λ λ‘λ μ€ν¨:', error);
// μ¬μ©μμκ² μ€λ₯ λ©μμ§ νμ
}
}
μΈμ¦ λ° μΈκ°
μ격 λͺ¨λμ μ¬μ©ν λλ μΈμ¦ λ° μΈκ°λ₯Ό κ³ λ €νλ κ²μ΄ μ€μν©λλ€. μμ°μ μ ν리μΌμ΄μ μ μ μμ νμΈνκ³ μλΉμ μ ν리μΌμ΄μ μ΄ μ격 λͺ¨λμ μ κ·Όνλ λ° νμν κΆνμ κ°μ§κ³ μλμ§ νμΈνλ λ©μ»€λμ¦μ ꡬνν΄μΌ ν μ μμ΅λλ€. μ΄λ μ’ μ’ CORS ν€λλ₯Ό μ¬λ°λ₯΄κ² μ€μ νκ³ JWTλ λ€λ₯Έ μΈμ¦ ν ν°μ μ¬μ©νλ κ²μ ν¬ν¨ν©λλ€.
보μ κ³ λ € μ¬ν
λͺ¨λ νλλ μ΄μ μ μ λ’°ν μ μλ μμ€λ‘λΆν° μ μ± μ½λλ₯Ό λ‘λν κ°λ₯μ±κ³Ό κ°μ μ μ¬μ μΈ λ³΄μ μνμ μ΄λν©λλ€. μ¬μ©νλ λͺ¨λμ μμ°μλ₯Ό μ μ€νκ² κ²ν νκ³ μ ν리μΌμ΄μ μ 보νΈνκΈ° μν μ μ ν 보μ μ‘°μΉλ₯Ό ꡬννλ κ²μ΄ μ€μν©λλ€.
- μ½ν μΈ λ³΄μ μ μ± (CSP): CSPλ₯Ό μ¬μ©νμ¬ μ ν리μΌμ΄μ μ΄ μ½λλ₯Ό λ‘λν μ μλ μμ€λ₯Ό μ νν©λλ€.
- μλΈλ¦¬μμ€ λ¬΄κ²°μ±(SRI): SRIλ₯Ό μ¬μ©νμ¬ λ‘λλ λͺ¨λμ 무결μ±μ νμΈν©λλ€.
- μ½λ 리뷰: μ² μ ν μ½λ 리뷰λ₯Ό μννμ¬ μ μ¬μ μΈ λ³΄μ μ·¨μ½μ μ μλ³νκ³ ν΄κ²°ν©λλ€.
μ±λ₯ μ΅μ ν
λμ λ‘λ©μ΄ μ±λ₯μ ν₯μμν¬ μ μμ§λ§, μ§μ° μκ°μ μ΅μννκΈ° μν΄ λ‘λ© νλ‘μΈμ€λ₯Ό μ΅μ ννλ κ²μ΄ μ€μν©λλ€. λ€μ κΈ°μ μ κ³ λ €ν΄ λ³΄μΈμ:
- μ½λ μ€ν리ν : μ½λλ₯Ό λ μμ μ²ν¬λ‘ λΆν νμ¬ μ΄κΈ° λ‘λ ν¬κΈ°λ₯Ό μ€μ λλ€.
- μΊμ±: μΊμ± μ λ΅μ ꡬννμ¬ λ€νΈμν¬ μμ² μλ₯Ό μ€μ λλ€.
- μμΆ: μμΆμ μ¬μ©νμ¬ λ€μ΄λ‘λλ λͺ¨λμ ν¬κΈ°λ₯Ό μ€μ λλ€.
- ν리 λ‘λ©: λ―Έλμ νμν κ°λ₯μ±μ΄ λμ λͺ¨λμ 미리 λ‘λν©λλ€.
ν¬λ‘μ€-νλ μμν¬ νΈνμ±
λͺ¨λ νλλ μ΄μ μ λμΌν νλ μμν¬λ₯Ό μ¬μ©νλ μ ν리μΌμ΄μ μλ§ κ΅νλμ§ μμ΅λλ€. React, Angular, Vue.jsμ κ°μ λ€λ₯Έ νλ μμν¬λ₯Ό μ¬μ©νλ μ ν리μΌμ΄μ κ°μ λͺ¨λμ νλλ μ΄μ ν μ μμ΅λλ€. κ·Έλ¬λ μ΄λ₯Ό μν΄μλ νΈνμ±μ 보μ₯νκΈ° μν μ μ€ν κ³νκ³Ό μ‘°μ μ΄ νμν©λλ€.
μλ₯Ό λ€μ΄, 곡μ λͺ¨λμ μΈν°νμ΄μ€λ₯Ό λμ νλ μμν¬μ λ§κ² μ‘°μ νκΈ° μν΄ λνΌ(wrapper) μ»΄ν¬λνΈλ₯Ό λ§λ€μ΄μΌ ν μ μμ΅λλ€.
λ§μ΄ν¬λ‘ νλ‘ νΈμλ μν€ν μ²
λͺ¨λ νλλ μ΄μ μ λ§μ΄ν¬λ‘ νλ‘ νΈμλ μν€ν μ²λ₯Ό ꡬμΆνλ κ°λ ₯ν λꡬμ λλ€. μ΄λ₯Ό ν΅ν΄ λκ·λͺ¨ μ ν리μΌμ΄μ μ λ μκ³ λ 립μ μΌλ‘ λ°°ν¬ κ°λ₯ν λ¨μλ‘ λΆν΄ν μ μμΌλ©°, μ΄λ λ³λμ νμμ κ°λ°νκ³ μ μ§ κ΄λ¦¬ν μ μμ΅λλ€. μ΄λ κ°λ° μλλ₯Ό ν₯μμν€κ³ 볡μ‘μ±μ μ€μ΄λ©° 볡μλ ₯μ λμΌ μ μμ΅λλ€.
μμ: μ μμκ±°λ νλ«νΌ
λ€μκ³Ό κ°μ λ§μ΄ν¬λ‘ νλ‘ νΈμλλ‘ λΆν΄λ μ μμκ±°λ νλ«νΌμ μκ°ν΄ λ΄ μλ€:
- μν μΉ΄νλ‘κ·Έ: μν λͺ©λ‘μ νμν©λλ€.
- μ₯λ°κ΅¬λ: μ₯λ°κ΅¬λμ λ΄κΈ΄ μνμ κ΄λ¦¬ν©λλ€.
- κ²°μ : κ²°μ κ³Όμ μ μ²λ¦¬ν©λλ€.
- μ¬μ©μ κ³μ : μ¬μ©μ κ³μ λ° νλ‘νμ κ΄λ¦¬ν©λλ€.
κ° λ§μ΄ν¬λ‘ νλ‘ νΈμλλ λ 립μ μΌλ‘ κ°λ° λ° λ°°ν¬λ μ μμΌλ©°, λͺ¨λ νλλ μ΄μ μ μ¬μ©νμ¬ μλ‘ ν΅μ ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μν μΉ΄νλ‘κ·Έ λ§μ΄ν¬λ‘ νλ‘ νΈμλλ μ₯λ°κ΅¬λ λ§μ΄ν¬λ‘ νλ‘ νΈμλμμ μ¬μ©νλ `ProductCard` μ»΄ν¬λνΈλ₯Ό λ ΈμΆν μ μμ΅λλ€.
μ€μ μ¬λ‘ λ° μΌμ΄μ€ μ€ν°λ
λͺλͺ νμ¬λ€μ λͺ¨λ νλλ μ΄μ μ μ±κ³΅μ μΌλ‘ μ±ννμ¬ λ³΅μ‘ν μΉ μ ν리μΌμ΄μ μ ꡬμΆνμ΅λλ€. λͺ κ°μ§ μλ λ€μκ³Ό κ°μ΅λλ€:
- Spotify: λͺ¨λ νλλ μ΄μ μ μ¬μ©νμ¬ μΉ νλ μ΄μ΄λ₯Ό ꡬμΆνμ¬ μ¬λ¬ νμ΄ λ 립μ μΌλ‘ κΈ°λ₯μ κ°λ°νκ³ λ°°ν¬ν μ μλλ‘ ν©λλ€.
- OpenTable: λͺ¨λ νλλ μ΄μ μ μ¬μ©νμ¬ λ μ€ν λ κ΄λ¦¬ νλ«νΌμ ꡬμΆνμ¬ μ¬λ¬ νμ΄ μμ½, λ©λ΄ λ° κΈ°ν κΈ°λ₯μ μν λͺ¨λμ κ°λ°νκ³ λ°°ν¬ν μ μλλ‘ ν©λλ€.
- λ€μμ κΈ°μ μ ν리μΌμ΄μ : λͺ¨λ νλλ μ΄μ μ νλ‘ νΈμλλ₯Ό νλννκ³ κ°λ° μλλ₯Ό ν₯μμν€λ €λ λκ·λͺ¨ μ‘°μ§μμ μΈκΈ°λ₯Ό μ»κ³ μμ΅λλ€.
μ€μ©μ μΈ νκ³Ό λͺ¨λ² μ¬λ‘
λͺ¨λ νλλ μ΄μ μ ν¨κ³Όμ μΌλ‘ μ¬μ©νλ €λ©΄ λ€μ νκ³Ό λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμμμ€:
- μκ² μμνκΈ°: μ μ μμ λͺ¨λμ νλλ μ΄μ νλ κ²μΌλ‘ μμνμ¬ κ²½νμ μμΌλ©΄μ μ μ°¨ νμ₯νμμμ€.
- λͺ νν κ³μ½ μ μ: νΈνμ±μ 보μ₯νκΈ° μν΄ μμ°μμ μλΉμ κ°μ λͺ νν κ³μ½μ μ립νμμμ€.
- λ²μ κ΄λ¦¬ μ¬μ©: λ²μ κ΄λ¦¬λ₯Ό ꡬννμ¬ κ³΅μ μμ‘΄μ±μ κ΄λ¦¬νκ³ μΆ©λμ νΌνμμμ€.
- μ±λ₯ λͺ¨λν°λ§: νλλ μ΄μ λ λͺ¨λμ μ±λ₯μ μΆμ νκ³ κ°μ ν μμμ μλ³νμμμ€.
- λ°°ν¬ μλν: λ°°ν¬ νλ‘μΈμ€λ₯Ό μλννμ¬ μΌκ΄μ±μ 보μ₯νκ³ μ€λ₯λ₯Ό μ€μ΄μμμ€.
- μν€ν μ² λ¬Έμν: νμ κ³Ό μ μ§ κ΄λ¦¬λ₯Ό μ©μ΄νκ² νκΈ° μν΄ λͺ¨λ νλλ μ΄μ μν€ν μ²μ λν λͺ νν λ¬Έμλ₯Ό μμ±νμμμ€.
κ²°λ‘
μλ°μ€ν¬λ¦½νΈ λͺ¨λ νλλ μ΄μ μ λ°νμ λ° λμ λ‘λ© κΈ°λ₯μ λͺ¨λμμ΄κ³ νμ₯ κ°λ₯νλ©° μ μ§ κ΄λ¦¬κ° μ©μ΄ν μΉ μ ν리μΌμ΄μ μ ꡬμΆνκΈ° μν κ°λ ₯ν μ루μ μ μ 곡ν©λλ€. ν΅μ¬ κ°λ μ μ΄ν΄νκ³ , λμ λ‘λ©μ ν¨κ³Όμ μΌλ‘ ꡬννλ©°, λ²μ κ΄λ¦¬ λ° λ³΄μκ³Ό κ°μ κ³ κΈ κ³ λ € μ¬νμ ν΄κ²°ν¨μΌλ‘μ¨ λͺ¨λ νλλ μ΄μ μ νμ©νμ¬ μ§μ μΌλ‘ νμ μ μ΄κ³ μν₯λ ₯ μλ μΉ κ²½νμ λ§λ€ μ μμ΅λλ€.
λκ·λͺ¨ κΈ°μ μ ν리μΌμ΄μ μ ꡬμΆνλ μκ·λͺ¨ μΉ νλ‘μ νΈλ₯Ό ꡬμΆνλ , λͺ¨λ νλλ μ΄μ μ κ°λ° μλλ₯Ό λμ΄κ³ 볡μ‘μ±μ μ€μ΄λ©° λ λμ μ¬μ©μ κ²½νμ μ 곡νλ λ° λμμ΄ λ μ μμ΅λλ€. μ΄ κΈ°μ μ μ±ννκ³ λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄λ©΄ νλ μΉ κ°λ°μ μ μ¬λ ₯μ μ΅λν λ°νν μ μμ΅λλ€.