메뉴 건너뛰기

조회 수 109 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

1. jQuery와 바닐라 JS

그동안 웹 브라우저의 호환성 문제 혹은 코드의 가독성 문제 등으로 일반 JavaScript보다 jQuery를 많이 사용해왔다. 그러나 최근 ES6, ES7 등을 따르는 JavaScript가 등장하면서 이러한 문제점들이 상당수 해결되었고, jQuery 자체도 불필요한 코드의 로드에 의한 성능적인 비효율을 야기한다는 문제점을 가지고 있었다.

 

이로 인해 최근에는 라이브러리를 사용하지 않는 날 것 그대로의 JavaScript, 즉 바닐라 JS를 많이 사용하기 시작했다. 사실 바닐라 JS에 익숙해지면 React, Angular, jQuery 등 프론트 엔드 개발 프레임워크 및 라이브러리들을 습득하는 시간도 굉장히 짧아진다. 이는 웹 브라우저를 이루는 DOM 등의 기본적인 개념들을 익힐 수 있게 도와주는 아주 중요한 기반 지식이기 때문이다. 따라서 기존의 거대한 프로젝트가 이미 jQuery를 쓰고 있거나 현재 재직 중인 회사에서 jQuery를 쓰고 있는 것이 아니라면, 바닐라 JS로 프로젝트를 시작하고 공부하는 것을 추천한다. 유저와 상호작용하는 기능(드래그 앤 드롭, 슬라이더 메뉴, 모달 팝업 등)들을 아무렇지 않게 구현할 수 있는 수준까지 바닐라 JS에 익숙해지는 것이 React 등의 부가적인 프론트 엔드 개발 도구들을 접하는 것보다 우선이 되기를 바란다.

 

 

2. ECMA Script (Specification)

ECMA-262란 JavaScript의 표준화를 위해 ECMA International이라는 비영리 기구가 만든 표준(기술 규격) 중 하나이다. ECMA-262에는 범용 목적의 스크립트 언어들에 대한 표준을 정의하고 있는데, 이를 ECMAScript 또는 ECMAScript Specification이라고 부른다. 즉, 스크립트 언어로 어떻게 작성을 하면 웹 브라우저가 이를 어떻게 해석을 해서 어떻게 동작해야 하는지 등에 대한 규칙들을 정의해둔 것이다. 그리고 JavaScript는 그 표준에 따라 정의된 하나의 스크립트 언어이다. 즉 스크립트 언어를 개발하려는 사람은 이 표준을 이해하고 있어야 한다. 물론 웹 브라우저의 내부 엔진이 해당 동작을 어떻게 구현하는지까지는 정의하지 않는다. 세부적인 구현 사항은 웹 브라우저 내부 엔진 개발자의 몫이다. 한편, 시간이 지날수록 표준 규칙들은 조금씩 바뀌기 대문에 ECMAScript는 여러 버전이 존재한다. ES3, ES5, ES6, ES7 등이 대표적인 예시이며, 여기서 ES가 바로 ECMAScript의 약자이다.

 

결국 ECMAScript는 스크립트 언어를 어떻게 만들어야 하는가에 대한 표준을 정의한 것을 말하고, JavaScript는 해당 표준에 따라 만들어진 하나의 구현체를 말한다. 실제로 JavaScript 말고도 ActionScript 등과 같이 ECMAScript 표준에 따라 만들어진 스크립트 언어가 존재한다. 결국 ES6 버전의 JavaScript라는 것은 ES6에서 명시한 규칙들을 따르는 JavaScript를 의미하고, 따라서 ES5 버전의 JavaScript와 ES6 버전의 JavaScript는 문법이 조금 다르다. 예를 들어, 변수 선언을 위한 키워드로서 ES5에서는 var만 정의하고 있지만, 새로이 탄생한 ES6에서는 let, const라는 키워드도 추가하였다. 그래서 ES5 버전의 JavaScript만 이해할 수 있는 JavaScript 엔진에서는 let, const 키워드가 오류를 발생시키지만, ES6 버전의 JavaScript까지 이해할 수 있는 JavaScript 엔진에서는 해당 키워드들을 사용할 수 있다. 이러한 맥락에서, 어떠한 웹 브라우저가 ES6을 지원한다는 것은 해당 웹 브라우저가 ES6 버전의 JavaScript를 해석하고 실행할 수 있는 JavaScript 엔진을 갖추고 있음을 의미한다. ES3과 ES5는 (거의) 모든 웹 브라우저가 지원하는 반면, ES6부터는 IE에서 지원이 되지 않는 등 웹 브라우저 제약이 조금씩 존재한다.

 

예를 들어 ES6(= ECMAScript 2015)는 지원되는 웹 브라우저가 다음과 같다.

 

 

 

▲ 출처 : https://www.w3schools.com/js/js_versions.asp


List of Articles
번호 제목 날짜 조회 수
247 비동기 작업의 원리 (JavaScript 엔진, Web API, Task Queue, Event Loop) file 2023.01.20 138
246 Node.js와 npm(+ npx)의 개념 2023.01.20 134
» 바닐라 JS, ECMAScript 개념 file 2023.01.20 109
244 마우스 오른쪽버튼 , 드래그 선택 차단 2023.01.12 118
243 개발자도구 F12키 막기 file 2023.01.12 169
242 패스워드, 확인패스워드가 맞는지 체크 2023.01.12 129
241 문자열 안에 쌍따옴표, 홑따옴표 표시하는 3가지 방법 file 2021.08.20 1779
240 대소문자 변경 (대문자를 소문자로, 소문자를 대문자로) 2021.08.20 259
239 시간 계산하기 (시/분/초/ 더하기, 빼기) 2021.08.20 1706
238 날짜 계산 (Date) 마지막 날짜(말일)/윤달/윤년 처리하기 2021.08.20 1538
237 월의 마지막 날짜 계산하기 2021.08.20 242
236 Date 객체로 원하는 날짜, 시간 표현하기 2021.08.20 223
235 날짜 계산하기 (년/월/일 더하기, 빼기) 2021.08.20 2356
234 3자리 마다 쉼표만 찍어주는 number_format 함수 2021.03.26 224
233 팝업창 맨위로 올라오게 하기 2021.03.26 858
232 폼안에 태그명, 함수명 같을때 오류 2021.03.26 214
231 ajax 사용시 Internal Sever Error 뜨는 경우 2021.03.26 956
230 자주쓰는 것들 2021.03.26 203
229 utf-8일때 alert 한글 깨짐 해결 2021.03.26 3552
228 split, join, replace, replace_all 2021.03.26 204
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved