티스토리 뷰

 

바닐라 자바스크립트 

 

바닐라 자바스크립트(Vanila Javascript)란, 라이브러리나 프레임워크를 사용하지 않는 순수한 형태의 자바스크립트를 의미합니다. 

좀 더 구체적으로 이야기하자면, 바닐라 자바스크립트는 프로그래밍 문제를 해결하기 위해 어떤 도우미 라이브러리나 프레임워크를 사용하는 것보다 코어 API나 유틸리티를 사용하여 코딩하는 방식을 의미합니다. 오늘날 대부분의 자바스크립트 프로그램은 제이쿼리, 리액트, 앵귤러 등 다양한  프레임워크 및 라이브러리에 의해 구현된 기능을 사용하고 있는데, 사실 이러한 라이브러리의 기능들은 모두 자바스크립트 언어를 기반으로 구현이 되어 있기에, 바닐라 자바스크립트 만으로도 구현이 가능한 것들입니다. 

 

 

ECMA Script (ES)

 

순수한 형태의 자바스크립트를 이야기할 때, 바닐라와 더불어 많이 등장하는 용어로 'ES'라는 것이 있습니다. 이는 ECMA Script의 약어로, 스크립트 언어의 표준화를 위해 ECMA International이라는 비영리 기구가 만든 기술 규격 중 하나입니다. 이를 좀 더 풀어서 이야기하면, ECMA Script란 스크립트 언어를 어떻게 사용하면 웹 브라우저가 이를 어떤 식으로 해석하고 동작하게 될 것인지에 대한 규칙을 표준화한 규격이라는 의미입니다. 

우리가 잘 알고 있는 자바스크립트라는 언어는 이러한 표준 규격에 따라 정의한 하나의 스크립트 언어로써, 자바스크립트의 버전을 이야기할 때 언급되는 ES5 라던지 ES6 등은 모두 이 표준 규격의 버전을 의미하는 것입니다. 

 

 

호환성 문제

 

ECMA script라는 스크립트 언어에 대한 기술 규격의 버전이 올라감에 따라, 자바스크립트 언어 또한 이에 따른 문법 수정이나 추가 등의 보완 작업을 거치게 됩니다. 그런데 모든 웹 브라우저가 이에 완벽하게 동기적으로 발을 맞추어 자바스크립트 엔진을 업데이트할 수는 없는 노릇이므로, 최신 자바스크립트 문법을 활용해 작성된 코드를 웹 브라우저가 사용자의 의도에 맞게 해석 및 동작하지 못하는 문제가 종종 발생할 수 있습니다. 이를 가리켜 '호환성 문제'라고 표현하곤 하는데, 이에 사용자가 선택할 수 있는 현실적인 대안으로는 트랜스파일러를 사용한다거나 낮은 버전의 기술 규격에 맞춰 코드를 작성하는 정도가 있겠습니다. 

 

 

(왠지 뜬금없지만)결론

 

바닐라 자바스크립트는 라이브러리나 프레임워크를 사용하지 않고 프로그램 문제를 해결하는 코딩 기법/선호인 반면, ECMA Script는 기술 규격, 표준 또는 자바스크립트의 버전이기 때문에 둘 사이에는 어떤 관계가 있는 것은 맞으나 서로 비교 대상이라고 말할 수는 없겠습니다. 

 

P.S. 가끔가다 보면 바닐라 자바스크립트는 어떤 라이브러리인 것으로 오해하는 경우가 있던데, 그런 오해를 하는 사람들 때문에 다음과 같은 라이브러리 문서(?)가 생기기도 했더군요(출처는 스택오버플로우ㅋㅋ) 

 

 

이상, 두서없는 정리글을 마칩니다. 안녕-!

 

 

댓글
공지사항