Post

어떤 자바스크립트를 사용하고 있을까?

2. 어떤 자바스크립트를 사용하고 있을까?

자바스크립트에서 도구와 작업 흐름에 큰 영향을 줄 수 있는 것들

  • 버전 및 사양
  • 플랫폼 및 구현
  • 미리 컴파일된 언어
  • 프레임워크
  • 라이브러리
  • 필요한 자바스크립트
  • 사용할 자바스크립트

2.1 버전 및 사양

자바스크립트 기능은 라이브러리와 특정 구현에 따라 달라질 수 있지만, 기능을 유지할 수 있는 표준 소스를 찾고 있다면 ECMAScript 사양 확인

ECMAScript 규격을 따르는 것의 2가지 단점

  • 읽기 쉽도록 다시 작성한 문서가 아니기 때문에 문서 분량과 중요하다고 표시한 내용이 너무 많다고 느낄수 있다.
  • 사양을 만족했더라도 목표로한 구현이 제대로 작동하리라는 보장이 없다.

strict 모드

자바스크립트에는 예측할 수 없는 기능들이 포함되어 있으며, 사용이 가능하더라도 성능에 문제가 되는 기능들도 존재

이것을 방지하기 위해 개발자가 파일 또는 기능 범위를 지정하는 데 사용할 수 있는 안전하고 신속한 use strict가 존재

2.2 플랫폼과 구현

백엔드와 프론트엔드 모두 같은 JavaScript로 작성되었다 하더라도, 코드 체계까지 유사한 관심 패턴을 따르는 것은 아님

런타임(설치): 프로그래밍 언어를 구현하는 것

자바스크립트 엔진: 특정 버전의 자바스크립트, 특히 웹 브라우저에서 구현될 때 버전과 배포의 주기 관계에서 현재 버전이 어떤 상태에 있는지 알려 주는 데 빌드(build)나 릴리스(release) 사용

실험적 기능(ECMAScript 사양 X)이면서 비기본 기능과 사양의 차이는 웹 브라우저와 빌드마다 차이가 존재

2.3 미리 컴파일된 언어

축약은 기능을 유지하면서 코드를 압축하여 크기를 줄이는 것

웹 브라우저 관점에서 보면, 웹 사이트 사용자가 적은 양을 내려받으면서 빠르게 웹 페이지를 불러올 수 있다는 의미

Babel.js: 개발자가 목적한 것을 구현하려고 할 때, 아직 작동하지 않을 가능성이 있는 소스 코드를 입력했다면, 더 나은 이전 구문을 채택해서 컴파일함으로써 개발자가 이후에 코드를 사용할 수 있게 하려는 목적에서 시작된 프로젝트

미리 컴파일된 언어로 정의되어 가는 단계에 있는 라이브러리들이 폭발적으로 증가 -> 자바스크립트를 컴파일 대상으로 간주

2.4 프레임워크

프레임워크는 플랫폼과 구현을 통합하고 사용 중인 자바스크립트 어휘를 확장 가능

Vanilla.js

어떤 프레임워크로 사용하지 않는 사례

2.5 라이브러리

라이브러리는 일반적으로 더 전문화된 목적이 있고 규모가 더 작다는 점이 프레임워크와 구별됨

라이브러리는 더 많은 기능과 앞으로 중단될 수 있는 기능의 일부 조합이라고도 볼 수 있음

2.6 어떤 자바스크립트가 필요할까?

  1. 널리 알려진 것을 사용

커다란 커뮤니티가 있다는 것은 괜찮은 문서와 예제 코드가 많다는 의미

  1. 잘 알려지지 않은 것을 시도

대중적인 프레임워크와 유사점 및 차이점을 찾다 보면 다른 방식으로 생각하는 데 도움을 줄 수 있다.

  1. 가능한 모든 도구 사용
  2. 최소화

2.7 우리는 어떤 자바스크립트를 사용하고 있을까?

책은 다양한 스타일과 품질 코드를 채택하고 향상시킬 수 있도록 준비하는 것이 목적이기 때문에 절차적 프로그래밍과 OOP 및 함수 프로그래밍을 살펴볼 것

2.8 마무리

자바스크립트 사용 방법에서 선택할 수 있는 사항은 매우 광범위

참고자료

리팩토링 자바스크립트(Refactoring JavaScript)

This post is licensed under CC BY 4.0 by the author.