프로젝트를 진행하다보면 export default new class로 불러오는 경우와 export default const로 불러오는 경우가 있었다.

우선 클래스와 상수라는 점에서부터 차이가 슬슬 느껴지긴 한다. 상수는 변하지 않는 값이기 때문에 내보내기해서 가져왔을 때, 다른 모듈에서 값을 보낸 그대로 사용한다는 점이겠다.

 

밑에서 자세히 더 알아보자!

 

export default new class {
    // 클래스 내용
}
const someObject = {
    // 객체 내용
};

export default someObject;

 

 

이 두가지의 주요 차이점은 export default new class가 클래스의 단일 인스턴스를 내보내는 반면, export default const는 값을 직접 내보내는 것이다.

 

1. export default new class

- 클래스의 단일 인스턴스가 필요하거나 변경될 여지가 있는 객체를 내보내는 경우는 class 방식을 사용하면 된다.

- 다른 모듈에서 이 인스턴스에 대한 참조를 얻을 수 있음)

- 클래스의 인스턴스를 내보내기 때문에 해당 클래스가 어떤 작업을 수행하는지 명확하지 않을 수 있음

 

2. export default const

- 데이터나 단순한 객체를 내보내는 경우에는 상수로 내보내곤 한다.- 

- 다른 모듈에서는 해당 값을 참조할 수 있지만, 내보낸 값 자체를 변경할 수 없음

 

 

단일 인스턴스가 필요한 경우란?

 

단일 인스턴스는 프로그램 전반에 걸쳐 단 한 번만 존재하는 객체를 말한다. 싱글톤 패턴은 인스턴스를 단 한번만 생성하고, 이후로는 내보내기해서 계속 반환하는 패턴이다. 1. 중복을 피하기 위해 2. 프로그램 전반에 걸쳐 동일한 상태를 유지해야할때 3. 효율적인 자원 관리를 위해 이가 필요하다.

 

 

+ Recent posts