본문 바로가기
  • 금융 개발자 노트
  • 야경이 아름다운 이유는 야근을 하는 사람들 때문
IT 돗개/JavaScript

자바스트립트 ECMA? ES5 ES6? 뭔 용어가 이리 많아

by 돗개에요 2021. 7. 28.

 웹 개발자가 되기 위해서는 Javascript가 필수이다. 프론트앤드건 백앤드건 Javascript는 필수가 되어버렸다. 사실 간단한 웹 페이지는 HTML, CSS 면 충분히 만들 수 있다. 인간의 욕심은 끝이 없다. 아주 지겨워죽겠다. 배울게 지금 이순간에도 늘어나고 있기 때문이다. 

 

 정보보안직군을 때려치고 개발자를 준비하는데 HTML, CSS는 간단하고 작성된 코드가 바로 동작되는 것을 확인할 수 있어 재미가 있다. 그렇지만 Javascript는 그렇지 않다.. 속히 요금 로스크아크에서 말하는 뉴비 폐사 구간이 웹 개발에서는 Javascript라 할 수 있다. 

 

 우선 무작정 프로젝트에 진입하라는 여러 조언들도 있지만, 기본적인 것을 알고 시작하는 것이 굉장히 중요하다고 본다. 우선 용어부터 정리하고자 한다. ECMA, ES5? ES6?

 

ECMA란, Javascript의 표준 규격이다. 그리고 ES는 Javascript의 버전이라 생각하면 편하다. ES3는 IE8(2021년 기준 관짝에 들어간 브라우저이다.)으로 표준으로 사용되었고 IE9은 ES5을 표준을 따랐다. 쉽게 설명하자면 크롬, 파이어폭스, IE(이젠엣지라 불러야겠다..) 등 브라우저들은 주기적인 업데이트를 한다. 그에 맞게 웹 개발 환경도 업데이트 해야 한다. 현재는 ES2015(ES6)이 가장 많이 사용된다. 그렇기 때문에 취업 시장에서도 ES6+을 다룰 줄 아는 신입을 우대하는 편인듯 하다.

 

ES 버전 별 차이점은?


 나도 주니어 개발자로 취업을 준비하는 입장으로 상세한 설명은 힘들지만 기존 호이스팅, Javascript의 변수 문제점 개선안들을 반영한 것이 큰 차이점이다. 예를 들어,

 

ES6 이전 버전

var Test = "test";

 c, java, python들이 무색해 할 만큼 변수 지정 방식이 'var' 딱 하나였다. 이 방식은 정말 편리했다. c 언어처럼 변수의 크기를 그때 그때 신경써서 지정할 필요도 없고, 자료형도 초기화시 ""(쌍따음표), ''(따음표), Number(공백)으로 지정하면 끝이었기 때문이다. 

 

하지만 var의 문제점이 있었다. 다루기 쉬운 만큼 수정도 간편했다. 해당 변수를 호출하여 다시 초기화 해주면 됬기 때문이다. 만약 나의 사수가 중요한 변수를 지정했는데 나같은 주니어 개발자가 같은 이름의 변수를 지정하면 그대로 수정되어버린다. 아주 끔찍한 이슈가 발생해버릴 수도 있다. 그래서 ES6에서는 

 

var test;
let test;
const test;

let과 const를 채용했다. const는 C언어나 타 언어를 공부해봤다면 알 수 있듯 상수이다. 한번 선언 시 동일 변수명 사용 불가, 호춣 후 재초기화도 물론 안된다. let은 비교적 제약이 적긴 하지만 동일한 변수명 사용 불가하다. 

 

 그래서 요즘 오픈 소스들을 보면 var보단 let을 많이 사용하는 것을 볼 수 있다. 결론적으론 버전별로 불필요한 것은 삭제하고 개선안은 개선, 추가될 것은 추가된 차이라는 것이다. 그리고 새로운 버전을 공부해야 하는 이유 새롭게 추가된 기능들을 사용하기 위해서이다. 

 

ES5에서 없던 기능 Arrow Funtion이 그 예이다. 

funtion 변수명 () {

}
// 기존의 함수 선언

변수명 => () {

}
//ES6부터 도입

 이렇게 새롭게 추가 되면 우리는 배워야 한다. 수 많은 오픈소들을 보며 이해할 수 있어야 하기 때문이다. 나도 이제 막 개발 공부를 시작한 주니어이지만, 해당 블로그에 내가 작성한 코드들을 올리며 리팩토링하며 공부를 할 생각이다. 

 

언제나 태클은 환영이다. 그 만큼 잘못된 것을 고칠 수 있게 도와주신다 생각하기 때문이다.

댓글