0%

210203_TIL(모듈)

오늘 배운 것

모듈

모듈은 재사용을 하기 위한 목적으로 설계된다. 일정 기능하는 것들을 분류해서 보관하고 애플리케이션 개발에서 가져다 쓸 수 있다.

모듈은 결합도는 낮게 응집도는 높게한다. → 서로 상호 의존도는 낮추고 각각의 독립적인 기능을 수행하는 것이다.

Component Based Development(CBD) 각각 독립적인 컴포넌트로 구성하고 이를 조합하여 프로그램을 구성하는 것이다.

모듈은 기능을 기준으로 파일 단위로 분류한다. 만약 파일명을 짓기 모호하다면 응집도가 낮은 것이다.(여러 기능을 하는 파일)

파일을 쪼개서 사용한다고 모두 모듈은 아니다. 파일 단위의 스코프를 가져야 모듈로서의 자격이 있다.

파일 단위 스코프라는 것은 각각 모듈이 완전 독립적이라는 것이다. 그렇기 때문에 export import를 사용하여 서로의 스코프로 불러 재사용할 수 있다.

모듈은 서로를 불러들여 재사용하며 의존관계가 형성된다. 하지만 의존성은 낮을 수록 좋다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// lib.js
const foo = 1;
const bar = 10;

// default export
export default foo;

// named export
export { bar };

// app.js
import foo, { bar } from "./lib.js";

console.log(foo, bar);

import한 원시값은 const로 할당되며 바꿀 수 없다. 하지만 참조값은 참조값이기 때문에 바꿀 수 있지만 권장하지 않는다.

1
2
3
4
5
6
7
8
9
10
11
12
13
// cal.js
const add = (a, b) => a + b;
const minus = (a, b) => a - b;

export { add, minus };

//app.js
import { add, minus } from "./cal.js";

const res = add(1, 2); // 3
const res2 = minus(3, 2); // 1

console.log(res, res2);

Nyong’s GitHub