TypeScript에서는 왜 Const Module 내보내기 보다 Class를 써야하는가

CloudJun·2021년 5월 27일
0

🙈 다른 생각을 위해 듣기위해 작성한 글입니다.
생각하시는 글을 남겨주시면 최대한 보충하여 작성하겠습니다.

개요

자바스크립트에서 묘듈을 분리해서 사용할때 여러가지 방법으로 export 시킬 수 있다.

어떤 묘듈은 constructor를 사용하여 초기화 하는 코드가 없더라도 Class를 사용하고 있는데, 나는 묘듈을 하나로 아에 묶어버린다는 것과 OOP를 추구하는 TypeScript의 성격을 따라가기 위해 (사실 나는.. Java의 영향을 받았다) class로 묶어 내보내는 것을 선호하는데, 정확히 얼마나 차이가 나는지 파악하기 위해 검색한 내용을 공유한다.

// Class 로 묶어서 export 시키기
export class StringUtil {
  public static alterString(str: string) {
    return alteredString;
  }
}

// 일반적인 JavaScript function 내보내기
export function alterString(str: string) {
  return alteredString;
}

결론

const Module을 내보내는 것과 class로 new를 초기화 하는것은 아주 미묘한 성능 차이일뿐 성능으로 사용을 막을 정도로의 차이가 나지 않는다.

하지만 타입이 지향하는 방향은 타입과 객체를 자바스크립트에 붙이는 방향이다. 그렇기 때문에 자바스크립트에서는 지원하지 않는 Type class를 지원하고 객체지향 방향으로 나아가는게 컨셉이기 때문에 TypeScript를 사용한다면 Class로 묶어서 내보내는게 적절한 방향이라 볼 수 있다.

결론적으로, Java처럼 강제 하는 것이 아니니 많은 개발자가 이것은 취향차이라는 발언을 하였지만 TypeScript의 방향성을 생각한다면 묶는게 맞다고 생각한다.

참조

https://stackoverflow.com/questions/55149221/class-with-static-methods-vs-exported-functions-typescript

https://medium.com/dev-genius/object-oriented-vs-functional-programming-with-typescript-6b2243bb8c4b

https://velog.io/@9bin08/Typescript를-쓰는-이유

profile
짧고 굵게 살아가는 백엔드 개발자

0개의 댓글