본문 바로가기
Typescript

JavaScript만 사용하는 것과 비교해 TypeScript를 사용하는 이유

by 창고관리장 2024. 9. 13.

 

타입 안정성의 중요도

 

자바스크립트는 어떤 코드를 작성해도 작성하면서 타입이 잘못됐기 때문에 오류가 날 것이라는 것을 말해주지 않는다.

 

그래서 수많은 코드들을 작성하고 브라우저에 띄울 때에서야 잘못됐음을 인지하게 된다.

 

그럼 console.log를 띄워서 어느 부분에서 값이 제대로 전달이 안되고 있는지를 찾는 작업을 하게 되고, 어디가 원인인지를 못찾으면 시간이 여기서 많이 지체될 수 있다.

 

개발 마감까지의 시간이 중요한 개발자에게는 이는 치명적일 수 있다. 만약 협업을 하면서 자신이 만든 코드가 아닌 곳에서 이런 경우가 발생한다면 팀 전체의 개발이 지연될 것이다.

 

타입스크립트를 사용하면 타입을 명확히 명시하도록 하여 안정성을 확보하고 이러한 일을 방지할 수 있게 해준다.

type FormValues = z.infer<typeof AdditemConstants>;

interface IProps {
  formValues: FormValues,
  setValue: UseFormSetValue<FormValues>,
  register: UseFormRegister<{
    name: string;
    description: string;
    price: number;
    tags: (string | number)[];
  }>;
  error: FieldErrors<{
    name: string;
    description: string;
    price: number;
    tags: (string | number)[];
  }>;
}

const AddItemForm: React.FC<IProps> = ({ formValues, setValue, register, error }) => {
   // 컴포넌트 코드
}

 

위 코드는 한 자식컴포넌트에 타입이 씌워져 있는 코드이다. 이렇게 부모 컴포넌트로부터 받아오는 props도 전부 타입을 명시해야 타입오류가 안나고, 정상적으로 실행된다.

 

그래서 특정 로직을 통해 값들이 전달되면 해당 타입에 맞는 값들만 전달되어 타입으로 인한 문제가 발생하지 않는다. 

 

물론 개발할 때 타입지정을 위한 별도의 코드를 만드는 시간이 걸리지만, 한번 해놓으면 유지보수까지의 전체 기간을 봤을 때 타입으로 인한 불필요한 시간낭비를 막아놓을 수 있고, 타입을 지정하면 에디터의 자동완성기능으로도 이어져서 개발의 생산성이 올라가서 편하다.

 

타입의 안정성이 결국 전체개발의 효율성을 높이는 결과로 이어지는 셈이다.

 

이러한 장점은 소규모 프로젝트보다 대규모 프로젝트일수록 효과가 더 커질 수 있다.

 

타입스크립트에도 단점이 있다.

 

타입스크립트는 지금으로부터 9~10년 전에는 21%에 달할 정도로 전세계 사용률이 낮았는데, 계속해서 인지도가 상승하여 21년에는 69%의 사용률이 나왔고, 현재는 더 높아졌을 것으로 예상된다.

 

하지만 자바스크립트의 장점이 '유연함'인데 타입스크립트는 이러한 장점을 없애버려서 현재도 비판을 많이 받고 있는 부분들이 있다. 특히, 타입스크립트의 경직성으로 any를 남발하는 상황들에 대한 이야기가 나오면서, 유연함을 해치지 않는 다른 라이브러리로 타입 체킹을 하는 경우도 늘어나고 있다고 한다.

'Typescript' 카테고리의 다른 글

TypeScript의 동작 원리  (4) 2024.09.13
Typescript에 대해서  (0) 2023.08.15