처음에는 웹 보조, 기능 처리를 위한 언어였으나 현재는 범용 개발 언어이다.
deep dive에서는 개발자로서 javascript를 대하는 태도에 대해 배운다.
기본 개념(문맥에 맞는 정확한 용어 구사)과 동작원리(구현을 위한 코드 독해의 원천)를 자세히 배운다.
프로그래밍 언어로서 컴퓨터에게 실행을 요구하는 커뮤니케이션 수단이다.
개발자가 직면한 문제, 그것을 이해, 해결을 하기위하여 정확하고 상세한 요구사항을 컴퓨터에게 전달하는 것이 중요하다.
진짜 정확하고 상세해야한다. 까딱 잘못하면 어디서 언제 터질지 모를 에러가 나타난다.
정확하고 상세하게 전달하려면 작은 단위로 분석하고 패턴화하여 추출하고 모든 개념이 평가 가능하도록 정의해야한다.
결국 프로그래밍은 요구사항의 집합을 분석하여 적절한 자료구조와 함수의 집합으로 변환한 후 그 흐름을 제어하는 것이다.
브랜든 아이크가 개발했다. 1996년도 내가 태어난 연도에.
여기저기서 자바스크립트 규칙을 만들어서 파편화가 되었다. 그래서 크로스 브라우징 이슈가 났는데
ECMAScript라는 표준 자바스크립트를 만들어서 이를 완화했다.
ES5, ES6라고 말하는 것들이 다 ECMAScript 몇년도를 줄인 약자임
사용자와의 동적인 상호작용을 위해 사용되었으나
현재는 구글에서 개발된 V8이라는 JS 엔진으로 클라이언트 단에서 서버 로직을 돌릴 수 있게 되고 front개발자가 주목받게 되었다.
Nodejs는 V8엔진으로 빌드된 JS 런타임 환경으로 브라우져 이외의 환경에서도 JS를 사용할 수 있게 되었다. 주로 서버 개발에 사용되지만 여러 분야에서 사용될 수 있고 엄청난 잠재력을 가졌다.
Nodejs와 브라우져에서 쓰는 JS는 DOM API를 지원하느냐 아니냐에 차이가 있다. Nodejs의 경우에는 라이브러리를 사용해야 DOM을 다룰 수 있다.