Input + Output = True
require vs import ์ฐจ์ด ๋ณธ๋ฌธ
๐ require() vs import() ์ฐจ์ด
const module = require('./module.js')
import module from './module.js'
require์ import ๋ ๋ค ์ธ๋ถ ๋ชจ๋์ ์ฝ๋๋ฅผ ๋ถ๋ฌ์ค๋ ๋์ผํ ์์ ์ ์ํํ๋ ๋ฌธ๋ฒ์ด๋ค.
โ require vs import ๋น๊ต
- require / exports๋ NodeJS์์ ์ฌ์ฉ๋๊ณ ์๋ CommonJS ํค์๋
import / export๋ ES6(ES2015)์์ ์๋กญ๊ฒ ๋์ ๋ ํค์๋ - require๋ ํ์ผ์ ์ด๋ ์ง์ ์์๋ ํธ์ถ ํ ์ ์์ง๋ง
import๋ ์ผ๋ฐ์ ์ผ๋ก๋ ํ์ผ์ ์์ ๋ถ๋ถ์์๋ง ์คํํ ์ ์๋ค.
(import ์ ์ฉ ๋น๋๊ธฐ ๋ฌธ๋ฒ์ผ๋ก ํ์ผ ์ค๊ฐ์ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ๋ฅผ ํ ์๋ ์๋ค) - import๊ฐ require๋ณด๋ค ์ฑ๋ฅ์ด ์ฐ์ํ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ ์ฝํ๋ค.
- ํ๋์ ํ๋ก๊ทธ๋จ์์ ๋ ํค์๋๋ฅผ ๋์์ ์ฌ์ฉํ ์ ์๋ค
โ require vs import ๋ฌธ๋ฒ - ์ ์ฒด ๋ด๋ณด๋ด๊ธฐ/ ๊ฐ์ ธ์ค๊ธฐ
1. require
// ์ ์ฒด ๋ด๋ณด๋ด๊ธฐ - ๋ชจ๋ ์ ์ฒด๋ฅผ export, ํ์ผ๋ด ํ ๋ฒ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
const obj = {
num: 2023,
sum: function (a, b) {
console.log(a + b)
},
subtract: function (a, b) {
console.log(a - b)
},
};
module.exports = obj
// ์ ์ฒด ๋ถ๋ฌ์ค๊ธฐ
const obj = require('./module.js')
obj.num; // 2023
obj.sum(1, 2) // 3
obj.subtract(2, 1) // 1
2. import
// ์ ์ฒด ๋ด๋ณด๋ด๊ธฐ - ๋ชจ๋ ์ ์ฒด๋ฅผ export, ํ์ผ๋ด ํ ๋ฒ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
const obj = {
num: 2023,
sum: function (a, b) {
console.log(a + b)
},
subtract: function (a, b) {
console.log(a - b)
},
}
export default obj
// ์ ์ฒด ๋ถ๋ฌ์ค๊ธฐ
import obj from './module.js'
obj.num // 2023
obj.sum(1, 2) // 3
obj.subtract(2, 1) // 1
โ require vs import ๋ฌธ๋ฒ - ๊ฐ๋ณ ๋ด๋ณด๋ด๊ธฐ/ ๊ฐ์ ธ์ค๊ธฐ
1. require
// ๊ฐ๋ณ ๋ด๋ณด๋ด๊ธฐ
exports.num = 2023 // ๋ณ์ export
exports.sum = function(a, b) { // ํจ์ export
console.log(a + b)
}
exports.Person = class Person { // ํด๋์ค export
constructor(name){
this.name = name
}
}
// ๊ฐ๋ณ ๋ถ๋ฌ์ค๊ธฐ
const { num, sum, Person } = require('./module.js')
console.log(num) // 2023
sum(1, 2) // 3
const person = new Person('IOTrue')
2. import
// ๊ฐ๋ณ ๋ด๋ณด๋ด๊ธฐ
exports const num = 2023 // ๋ณ์ export
exports function sum(a, b) { // ํจ์ export
console.log(a + b)
}
exports class Person { // ํด๋์ค export
constructor(name){
this.name = name
}
}
------ ๋๋ ------
const num = 2023 // ๋ณ์ export
function sum(a, b) { // ํจ์ export
console.log(a + b)
}
class Person { // ํด๋์ค export
constructor(name){
this.name = name
}
}
export {num, sum, Person}
// ๊ฐ๋ณ ๋ถ๋ฌ์ค๊ธฐ
import { num, sum, Person } from './module.js'
console.log(num) // 2023
sum(1, 2) // 3
const person = new Person('IOTrue')
------ ๋๋ ------
import * as obj from './module.js'
console.log(obj.num) // 2023
obj.sum(1, 2) // 3
const person = new obj.Person('IOTrue')
โ Node.js์์ import ์ฌ์ฉ ๋ฐฉ๋ฒ
package.json์ ์๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ฉด Node.js์์ import๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
{
"type": "module"
}
์ฐธ๊ณ
- https://medium.com/@chullino/require-exports-module-exports-%EA%B3%B5%EC%8B%9D%EB%AC%B8%EC%84%9C%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1d024ec5aca3
- https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-require-%E2%9A%94%EF%B8%8F-import-CommonJs%EC%99%80-ES6-%EC%B0%A8%EC%9D%B4-1
- https://etloveguitar.tistory.com/m/133
'๐ฉโ๐ปCS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ํจ์๋? ์์ํจ์ ๋ถ๋ณ์ฑ ์ฌ์ด๋์ดํํธ (0) | 2023.04.05 |
---|---|
์๋ํํฐ๋? ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋? (0) | 2023.04.04 |
ํ๋ ์์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐจ์ด Framework Library (0) | 2023.03.29 |
Comments