미래 예약어(Future Reserved Words)란?
자바스크립트에서 class는 미래 예약어(future reserved words)에 포함되어 있습니다. 이 단어들은 당시 제안되었던 언어 확장 기능에서 키워드로 사용될 예정이었기 때문에, 향후 해당 확장 기능이 채택될 가능성에 대비하여 미리 예약해 둔 것입니다.
class enum extends super
const export import
위 목록은 ECMAScript 사양(ECMAScript Specification)에 공식적으로 정의되어 있습니다.
ECMAScript 6에서의 class 사용
이후 발표된 ECMAScript 6(ES6) 언어 사양부터는 class 키워드가 실제로 사용되기 시작했습니다. 클래스 선언(class declaration)은 다음과 같은 형식으로 새로운 클래스를 생성합니다.
class name [extends] {
// 클래스 본문(body of class)
}
즉, 초기 자바스크립트 설계 단계에서 이미 객체 지향 프로그래밍을 위한 클래스 문법이 계획되어 있었고, 그 실행을 위해 class라는 식별자를 미리 예약해 둔 것입니다. 덕분에 ES6에서 클래스 문법이 정식 도입될 때 기존 코드와의 충돌 없이 원활하게 적용될 수 있었습니다.