본문 바로가기

카테고리 없음

왜 개발자는 JavaScript보다 TypeScript를 더 선호할까??

 

타입스크립트의 등장배경

 

ts는 2012년 마이크로소프트에서 개발한 언어다.

js로 작성하기 힘든 복잡한 대규모 프로그램을 다루기 위해서 타입스크립트를 만들었다.

ts는 js에 몇가지 특징을 추가해서 만들었다. 모체가 js이기에 js코드는 대부분 ts로 컴파일이 가능하다.

타입스크립트의 장점

 

1. 오류 예방

 

        자바스크립트에서 생기는 오류 15%를 타입스크립트를 이용하여서 줄일 수 있습니다.

 

2. 더 좋은 개발자의 경험과 코드의 퀄리티 향상에 도움

 

        타입스크립트를 제대로 사용함으로써 얻을 수 있는 가장 큰 장점중에 하나는 변수의 이름뿐만

        아니라 그 데이터의 "type"까지 알 수 있게 해준다.

        그래서 코드 작성이 좀 더 쉽고 직관적이게 만들어준다.

        개발자는 로직과 같은 큰 구조들에만 집중할 수 있게 해주는 것이다.

 

3. 브라우저의 호환성 문제를 해결한다.

 

        모든 브라우저의 지원을 걱정해야하는 프론트개발자 입장에서는 ES6+을 써도 될지 고민이 많을 것이다.

        하지만 타입스크립트는 컴파일 과정에서 ES6+ 문법들을 ES5(또는 ES3)로 바꿔주기 때문에

        Babel 도움 없이 크로스 브라우징 문제를 해결할 있다.

 

 

 

외에도 ts 쉽고, 타입 제어가 가능하며, js 동일하게 브라우저의 엔진을 지원하고, 여러 패러디, 개발의 커뮤니티가 활성화 되어있습니다.

 

 

타입스크립트의 Type 해결법

 

TypeScript는 기본적으로 변수에 타입을 지정해주면서, 코드를 추적해준다.

 

 

//js
let a;
a = 1;
a = true;

//ts
let a: number;
a = 1;
a = true;

 

 

 interface type

 

기본적으로 type과 interface을 사용해 타입을 지정하는 방법

 

interface IStudent {
  id: number;
  name: string;
}

type TStudent = {
  id: number;
  name: string;
};

const interfaceStudent: IStudent = {
  id: 0,
  name: "name",
};

const typeStudent: TStudent = {
  id: 0,
  name: "name",
};

 

type과 interface는 타입을 확장하는 방법에 차이

type & 연산자, interface extends 키워드를 이용합니다.

 

 

type

 

interface IStudent2 extends IStudent {
  age: number;
}

type TStudent2 = TStudent & {
  age: number;
};

//interface
interface IStudent {
  id: number;
  name: string;
}

interface IStudent {
  age: number;
}

 

type 동일한 이름으로 다시 선언할 없습니다.

 

자바스크립트의 등장 배경

 

1995년 당시 약 90%의 시장 점유율로 웹 브라우저 시장을 지배하고 있던 넷스케이프커뮤니케이션즈는

정적인 HTML을 동적으로 표현하기 위해 경량의 프로그래밍 언어를 도입하기로 결정했다.

그리하여 탄생한 것은 브렌던 아이크가 개발한 js이다.

 

 

 

자바스크립트의 장점

 

1. 속도

 

        자바스크립트는 인터프리터 언어이기 때문에, 자바와 같이 컴파일이 필요한

        다른 프로그래밍 언어에 비해 시간 이 적게 소요된다. 또한 자바스크립트는 클라이언트

        스크립트이기 때문에 서버 연결에 드는 시간을 절약할 수 있어서 프로그램 실행 속도를 높인다.

 

2. 서버 로딩

 

        (클라이언트에서 동작하는 자바스크립트의 경우) 서버로 데이터를 주고 받지 않아도

        브라우저 자체에서 데이터 유효성 검사를 할 수 있다. 만약 데이터가 불일치 하는 경우,

        전체 페이지를 새로고침하지 않고, 브라우저가 페이지의 일부만 업데이트한다.

 

3. 풍부한 인터페이스

 

        자바스크립트는 매력적인 웹 페이지를 만들기 위한 다양한 인터페이스를 제공한다.

        드래그 앤 드롭이나 슬라이더는 웹 페이지에 풍부한 인터페이스를 제공한다.

        이로 인해 웹 페이지에서의 사용자 상호작용(user interactivity)이 향상된다.

 

이외에도 확장된 기능성, 오버헤드의 감소, 단순함, 쉽게 익히는 여러가지 장점이 존재한다.

 

자바스크립트의 단점

 

1. 클라이언트 보안

 

        자바스크립트 코드는 유저에게 보이기 때문에, 누군가가 악의적인 의도로

        자바스크립트 코드를 사용할 수도 있다. 인증(authentification) 없이 소스 코드를

        사용하는 것이 이에 해당한다. 또한 데이터 보안을 손상 시킬 수 있는 악성 코드를

        웹사이트에 삽입하는 것은 매우 쉽다.

 

2. 브라우저 지원

 

        브라우저마다 자바스크립트를 해석(interpret)하는 방법은 제각기 다르다. 따라서, 코드를

        배포하기 전에 다양한 플랫폼에서 잘 돌아가는지 시험해봐야 한다. 또한 구형 브라우저는

        새로운 기능을 지원하지 않는 경우가 있기 때문에 그 부분도 늘 확인해야 한다.

 

3. 단일 상속

 

        자바스크립트는 단일 상속만 지원하고 다중 상속은 지원하지 않는다.

 

 

 

 

이외에도 느린 비트 함수, 디버깅 기능의 부족, 렌더링 중지 여러가지 단점이 존재한다.

 느낀점

    처음에는 되게 왜 ts를 써야하는지 의문을 가졌고 지금도 js로 많은 프로젝트를 개발하고 있다.

    하지만 개발자가 왜 ts를 더 선호하고 장점이 생기는 의문에 대해서 알 수 있었던 것 같아서 좋았다.

    더 많은 자료들을 찾아보면서 부족했던 부분을 보완해야겠다. 앞으로 더 많은 개념들을 공부하면서

    블로그에 작성하는 것이 목표이다!