[WIL] 항해99 2주차 회고록

전인호·2022년 7월 3일
0

항해99

목록 보기
2/6
post-thumbnail

🚢 항해99 2주차 회고

프로그래머스 level1 문제들을 풀며 알고리즘의 기본기를 다졌다.
알고리즘과 친해지는게 이번 주차의 목표이다보니,
비교적 쉬운 문제를 풀어보며 아주 단순한 문제해결능력을 키워보았다.

여기서는 아직은 기초적인 단계라 어라? 알고리즘 푸는게 재미있는데?
라는 이상한 상상까지 하게 되었다.

사실은 예전에 C를 이용해서 자료구조를 잠시 훑어본 적이 있는데,
C언어라는 언어 자체가 프로그래밍을 처음 접하는 입장에서는
워낙에 문법자체가 어려웠었기 때문에 방황하는 시기도 있었다.

시험은 울며 겨자먹기로 이해도 안가는 코드를 통째로 외워서
봤었기 때문에 성적은 잘나왔지만 정작에 건져가는건 하나도 없었다.

핑계인 건 알지만 당시에 비전공자의 입장에서 처음 접해본 언어가
비교적 엄격하다보니 개발이라는 직무가 한때는 너무 막연하게만 느껴졌다.

그러나 그래서 완전히 포기했느냐? 보다시피 그건 아니다.
남들보다 조금은 늦게 개발이라는 직무에 뛰어든 만큼 더욱 열심히 해보자.
추후, 리액트를 다루는 것이 어느정도 익숙해지면
자료구조와 알고리즘의 보다 심도있는 내용을 하루 빨리 접해보고자 한다.


📕 JavaScript의 ES란?

Javascript는 원래 넷스케이프에서 시작된 언어인데,
프로그래밍 언어들의 근간이라고 볼 수 있는 C언어보다 훨씬 나중에 개발된 언어이다.

여기서 말하는 ES는 이러한 Javascript의 표준 규격을 의미하는데,
이것이 탄생한 배경에는 브라우저 전쟁이라고 하는
웹 브라우저 시장에서의 점유율 싸움이 있었다.

넷스케이프 사에서 개발한 Javascript가 선풍적인 인기를 끌기 시작하자
마이크로소프트 사에서도 IE 3(우리가 흔히 알고있는 인터넷 익스플로러)에
JScript라는 이름으로 자바스크립트를 탑재했지만,

실제적으로는 둘의 내용이 매우 달라서 같은 기능을 구현하더라도
개발자들이 해야하는 일은 전혀 달랐다.

기업의 입장에서도 서로 사용자를 끌어들이기 위해 추가적인 기능을 고려하다보니
시간이 지날수록 Javascript와 JScript는 갈수록 차이가 생기는 경향을 보였고,

이에 보다 못한 European Computer Manufacturers Association
(ECMA, 현 ECMA International)에서 Javascript에 대한 표준을 정하게 되었다.
이것이 결국 현재 우리가 부르고 있는 ES이며, 이는 ECMA Script의 약자로,
ES6는 ECMA Script 6의 규격을 따른다고 생각하면 된다.


📗 ES5/ES6 문법 차이

간혹 우리가 즐기는 게임들이 업데이트 되면서, 새로운 스토리가 등장하고
각종 편의성 패치들이 나오는 것 처럼 프로그래밍 언어들도
기존의 취약한 점들은 보완하고 필요한 기능들을 추가하면서 발전해 나간다.

ES도 마찬가지다. ES역시, 버전을 올리는 것을 통해
Javascript의 기능적인 부분에서 편의성을 증진시켜 발전시켜 나가고 있다.
ES5와 ES6의 차이점을 간단히 알아보며 포스팅을 마쳐보고자 한다.

추가로, ES5이후부터는 빠르게 변화하는 웹 생태계 때문에
1년에 한번씩은 갱신을 하자는 움직임들이 생겨나게 되었고,
이로 인해 단순한 숫자를 붙이기 보다는 ES6 (ES 2015) 처럼
갱신된 연도를 붙여서 새로운 이름을 만들자는 의견들도 생겨나게 되었다.

ES5 (2009)

  1. forEach, map, filter, reduce, some, every 와 같은 배열 메소드 추가
  2. Object에 대한 getter와 setter를 지원
  3. 기존에 비해서 더 엄격한 문법 검사를 진행하는 Javascript strict 모드 추가
  4. json 형식의 자료 지원 (XML -> JSON)

ES6 (ES 2015)

  1. Hoisting의 개선 :
    기존에는 var키워드를 사용하여 의도치 않은 호이스팅이 빈번하게
    일어났지만 이를 방지하기 위해 블록 스코프를 가진 let과 const를 추가
  2. 화살표 문법 지원 : 코드 및 this의 사용 간결화
  3. module의 import/export 추가.
  4. 백틱으로 문자열을 감싸 표현하는 템플릿 리터럴 기능 추가

0개의 댓글