반응형
과연 타입스크립트는 런타임 최적화를 수행할까요?
물론 약간의 효과는 얻을 수도 있을 것 같지만, 클린하며 예측 가능한 코드를 작성하면서 얻는 우발적 효과일 것 같습니다.
아래 문서는 TypeScript 언어의 기반이 되는 일반적인 디자인 원칙을 설명합니다.
철저하게 모든 원칙을 다루진 않지만, 언어의 설계를 결정하는데 근거가 된 규칙을 요약하는 것을 목표로 작성되어 있습니다.
이러한 규칙 중 일부는 주관적이며 때때로 서로 상충됩니다.
올바른 균형에 도달하고 올바른 예외를 만드는 것이 성공적인 프로그래밍 언어 설계의 핵심입니다.
https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
타입스크립트의 목표
- 오류 가능성이 있는 구문을 정적으로 식별하는 것
- 더 큰 코드 조각을 위한 구조화 메커니즘을 제공하는 것
- 내보낸 프로그램에 런타임 오버헤드를 부과하지 않는 것
- 깨끗(clean)하고 관용적이며 인식 가능한 JavaScript 코드를 내보내는 것
- 합성 가능하고 추론하기 쉬운 언어를 생성하는 것
- 현재 및 미래의 ECMAScript 제안과 일하는 것
- 모든 JavaScript 코드의 런타임 동작을 유지하는 것
- 식 수준 구문을 추가하지 않는 것
- 일관되고 완전히 제거할 수 있는 구조적 타입 시스템을 사용하는 것
- 크로스 플랫폼 개발 도구가 되는 것
- TypeScript 1.0에서 멀어지지 않는 것
타입스크립트의 목표가 아닌 것
- JS의 언어 디자인을 정확히 모방하지 않습니다.
- 대신 JavaScript의 동작과 프로그램 작성자의 의도를 언어 설계의 적절한 지침으로 사용합니다.
- 프로그램의 런타임 성능을 적극적으로 최적화하지 않습니다
- 대신 런타임 플랫폼의 성능 특성과 잘 어울리는 관용적인 JavaScript 코드를 내보냅니다.
- 건전하거나 "확실히 올바른" 타입 시스템을 적용하지 않습니다.
- 대신 정확성과 생산성 사이의 균형을 유지하십시오.
- 종단 간 빌드 파이프라인을 제공합지 않습니다.
- 대신 외부 도구가 보다 복잡한 빌드 워크플로우에 타입스크립트 컴파일러를 사용할 수 있도록 시스템을 확장 가능하게 만듭니다.
- 프로그램의 런타임 타입 정보를 추가하거나 의존하거나 타입 시스템의 결과에 따라 다른 코드를 내보내지 않습니다.
- 대신 런타임 메타데이터가 필요하지 않은 프로그래밍 패턴을 권장합니다.
- 추가 런타임 기능 또는 라이브러리를 제공하지 않습니다.
- 대신 TypeScript를 사용하여 기존 라이브러리를 설명합니다.
- 사용자를 놀라게 할 수 있는 동작을 도입하지 않습니다.
- 대신 일반적으로 사용되는 다른 언어에서 채택한 패턴을 충분히 고려합니다.
반응형
'FrontEnd' 카테고리의 다른 글
Javascript ES module과 순환 참조 해결하기 (0) | 2022.11.27 |
---|---|
OpenAPI 3.0 튜토리얼 (0) | 2022.11.24 |
B2C IT기업 개발자와 B2B IT기업 개발자의 차이점, B2B에 어울리는 인재상 (0) | 2022.11.19 |
크롬 개발자 도구의 QueryObjects 객체로 Javascript 메모리 누수 잡기 (0) | 2022.11.19 |
프론트엔드 성능 최적화 가이드 스터디 4장 (0) | 2022.11.19 |