게으른 나에게

JS vs TS 본문

My Study/TypeScript

JS vs TS

handbefore 2025. 4. 15. 23:23

NodeJS + Babel 개요

  • NodeJS 등장 이후, 자바스크립트는 웹을 넘어 범용 언어로 발전
  • 그 중심엔 자바스크립트를 자바스크립트로 컴파일하는 기술(ex. Babel)이 있었고, 이로 인해 과거와 전혀 다른 방식의 JS가 탄생
  • 이는 TypeScript와도 유사한 구조를 가지며, 둘 다 최종적으로 JavaScript 코드로 변환된다는 공통점 존재

JavaScript

  • 웹의 표준 스크립트 언어
  • 주로 클라이언트 측에서 작동
  • 폼 검사, 애니메이션, 이벤트 처리 등 대화형 기능 제공
  • 멀티스레딩/멀티프로세싱 미지원

✅ 장점

  1. 범용성: 대부분의 브라우저에서 실행 가능
  2. 유연성: 동적 타이핑으로 자유로운 개발 가능
  3. 풍부한 생태계: 라이브러리와 커뮤니티가 매우 큼

❎ 단점

  1. 타입 오류 발견 어려움: 동적 타이핑으로 인해 컴파일 시 오류 확인 어려움
  2. 유지보수 어려움: 대규모 프로젝트에서 복잡성 관리가 어려움

TypeScript

  • JavaScript기반의 상위 집합
  • 정적 타입 지원 (컴파일 시 타입 검사)
  • 객체지향 프로그래밍(OOP) 지원: 클래스, 상속, 캡슐화 가능
  • .ts 파일을 .js로 변환하여 사용
  • 타입 추론과 any 타입 존재

✅ 장점

  1. 정적 타입 검사: 오류를 사전에 방지 가능
  2. IDE 지원 향상: IntelliSense, 리팩토링에 유리
  3. 코드 문서화: 명확한 타입 선언으로 코드 이해도 상승
  4. 유지보수에 강함: 대규모, 협업 환경에 적합

❎ 단점

  1. 학습 곡선 존재: 타입 시스템 학습 필요
  2. 컴파일 과정 필요: 별도 설정과 빌드가 필요함
  3. 런타임 검사 부족: 실행 시 타입 오류는 잡아내지 못함

JavaScript vs TypeScript

항목 JavaScript TypeScript
타입 시스템 동적 타이핑 정적 타이핑
학습 난이도 쉬움 중간~어려움
개발 속도 빠름 (초기) 느릴 수 있음 (안정성 ↑)
프로젝트 적합도 소규모, 단기 중/대규모, 협업
유지보수 어렵다 용이하다

프로젝트의 요구사항, 팀의 선호도, 사용할 기술 스택에 따라 결정

'My Study > TypeScript' 카테고리의 다른 글

[TypeScript] Omit  (0) 2024.10.20
[TypeScript] - 제네릭(generics)  (0) 2024.10.13
[TypeScript] - 타입을 가진 함수  (0) 2024.10.13
[TypeScript] - 타입 별칭(Type Alias)  (0) 2024.10.13
[TypeScript] - 유니온 타입  (1) 2024.10.13