ECMAScript

ECMAScript는 자바스크립트의 표준 규격으로, Ecma International이 ECMA-262 기술 규격을 통해 정의한 스크립트 프로그래밍 언어이다.
1997년 처음 표준화되었으며, 자바스크립트의 핵심 문법과 기능을 규정한다.

ECMAScript는 ECMA 인터내셔널(ECMA International)에서 제정한 스크립트 프로그래밍 언어의 표준 사양이다.
이 표준은 다양한 스크립트 언어의 상호 운용성을 보장하기 위해 만들어졌으며, JavaScript, JScript, ActionScript 등이 ECMAScript 표준을 준수한다.

ECMAScript는 1997년에 첫 번째 버전이 발표된 이후 지속적으로 발전해 왔다.
주요 버전으로는 2015년에 발표된 ECMAScript 6(ES6), 2016년의 ECMAScript 2016(ES7), 2017년의 ECMAScript 2017(ES8) 등이 있으며, 각 버전마다 새로운 기능과 개선 사항이 추가되었다.

ECMAScript는 주로 웹 브라우저에서 클라이언트 측 스크립트로 사용되지만, Node.js와 같은 런타임 환경을 통해 서버 측 애플리케이션 개발에도 널리 활용되고 있다.

ECMAScript와 JavaScript의 관계를 이해하기 위해, ECMAScript는 스크립트 언어의 표준 사양이며, JavaScript는 이 표준을 준수하여 구현된 프로그래밍 언어라고 할 수 있다. 즉, ECMAScript는 언어의 규칙과 지침을 정의하고, JavaScript는 이를 기반으로 실제로 사용되는 언어이다.

핵심 특징

  1. 표준화: 브라우저 간 호환성을 유지하며 자바스크립트의 동작을 통일한다.
  2. 확장성: 매년 새로운 기능(예: 비동기 처리, 모듈 시스템)이 추가된다.
  3. 하위 호환성: 기존 코드와의 호환성 유지.

주요 버전별 변화

ECMAScript는 자바스크립트의 표준 규격으로, 1997년 첫 버전(ES1) 출시 이후 연간 업데이트를 통해 현대 웹 개발의 핵심 기술로 발전했다.

ES5 (2009)

  • 엄격 모드: 'use strict'로 안전한 코드 작성 가능
  • JSON 표준화: JSON.parse()/JSON.stringify() 추가
  • 배열 메서드: forEach(), map(), filter() 등 함수형 프로그래밍 지원
1
2
// ES5 배열 메서드 예시
[1, 2, 3].map(function(x) { return x * 2 }); // [2, 4, 6]

ES6 (ECMAScript 2015)

자바스크립트 역사상 가장 혁신적인 업데이트로 평가된다.

  • 변수 선언: 블록 스코프 let/const 도입
  • 화살표 함수: (a, b) => a + b 형태로 간결한 표현
  • 템플릿 리터럴: 백틱(`)과 ${}로 문자열 보간
  • 클래스: class 키워드로 OOP 구현
  • 모듈 시스템: import/export로 코드 분리
1
2
3
4
// ES6 클래스 예시
class Animal {
  constructor(name) { this.name = name; }
}

ES2016~ES2022

ES2016 (ES7)
  • 지수 연산자: 2 ** 3 → 8
  • Array.includes(): 요소 존재 여부 확인
ES2017 (ES8)
  • async/await: 비동기 코드 동기식 작성
  • Object.values(): 객체 값 배열 반환
ES2020 (ES11)
  • 옵셔널 체이닝: obj?.prop
  • 널 병합 연산자: ??로 기본값 설정
ES2021 (ES12)
  • String.replaceAll(): 전체 문자열 치환
  • 논리 할당 연산자: &&=, ||=

ES2023 (ES14)

  • 배열 검색 메서드: findLast(), findLastIndex()[4][7]
  • 불변 배열 메서드: toReversed(), with()로 원본 보존[4][7]
  • Hashbang 문법: #!/usr/bin/env node 지원[4][7]
1
2
3
// ES2023 배열 메서드 예시
const arr = [1, 2, 3];
arr.with(1, 4); // [1, 4, 3] (원본 변경 없음)

버전별 비교 표

버전대표 기능개발 영향도
ES5Strict Mode, JSON표준화 기반 마련
ES6let/const, 모듈 시스템현대 웹 개발 패러다임 전환
ES2020옵셔널 체이닝Null 안정성 강화
ES2023불변 배열 메서드함수형 프로그래밍 지원

ECMAScript와 자바스크립트의 관계

  • ECMAScript: 자바스크립트의 핵심 규격으로, 언어의 기본 구조를 정의.
  • 자바스크립트: ECMAScript를 기반으로 클라이언트 측 Web API(DOM, BOM 등)를 확장한 구현체.

실무 적용 시 고려사항

  1. 크로스 브라우징: 브라우저별 지원 범위 차이로 Babel 같은 트랜스파일러 활용 필요.
  2. 모던 자바스크립트: ES6+ 기능 사용 시 코드 가독성과 유지보수성 향상.

참고 및 출처