728x90
노드는 코드를 모듈로 만들 수 있다.
너무 어렵게 생각할 필요는 없고 그냥 "특정한 기능을 하는 함수", "변수들의 집합", "필요한 코드들을 모아서 만든"
파일 1개가 그냥 모듈이고, 이 자체가 한 개의 프로그램이고 다른 곳에서 이걸 재사용할 수 있다.
소스는 보통 이런식이다.
const a = 'a';
const b = {
bb: 'bb',
cc: 'cc'
}
function c () {
console.log('cc');
}
function d (val) {
console.log(val);
}
module.exports = {
a,
b,
c,
d
}
변수나, 객체, 함수 등 필요한 소스 코드를 작성하고 마지막에 module.exports 사용하면 모듈화가 끝이다.
저 파일명이 md.js라고 치고 저 모듈을 사용하고 싶으면 사용할 파일에서 아래처럼 작성하면 된다.
const test = require('./md');
console.log(test.a);
console.log(test.b.bb);
console.log(test.b.cc);
test.c();
test.d('zz');
require로 모듈 파일을 가져와서 그냥 사용하면 된다.
그리고 md의 코드를 가져와서 쓰는 소스를 보면 지금 소스는 단어들이 짧긴 해도 소스가 길게 느껴진다.
실제 업무에선 저런 모듈화 된 파일들의 변수나 함수 명들이 a, b, c 이렇게 짧진 않으니 더 길어진다.
이럴 때 비구조화 할당(구조분해 할당)을 사용하면 소스가 더 간결해진다.
비구조화 할당은 객체나 배열 오브젝트 등 속성이나 요소를 쉽게 꺼내올 수 있다.
그냥 쪼개서 가져온다고 생각하면 된다고 생각한다.
const {a, b, c, d} = require('./md');
console.log(a);
console.log(b.bb);
console.log(b.cc);
c();
d('zz');
확실히 조금 더 짧아졌다.
그리고 b의 경우 md.js에서 보면 안에 오브젝트 형식으로 되어 있는데 이것도 비구조화 활당으로 더 쪼갤 수 있다.
const {a, b: {bb, cc}, c, d} = require('./md');
console.log(a);
console.log(bb);
console.log(cc);
c();
d('zz');
더 간결해졌다.
반응형
'Node.js' 카테고리의 다른 글
[NodeJS] crypto를 이용한 단방향 암호화(해시 함수) 만들기 (2) | 2021.04.24 |
---|---|
[NodeJS] async 와 await (0) | 2021.04.03 |
[NodeJS] node로 elasticsearch 검색하기 (0) | 2021.02.27 |
[Node] 파일 base64로 encode, decode 하기 (0) | 2021.01.08 |
[Node] 이미지파일 base64로 encode, decode 하기 (0) | 2021.01.08 |