본문 바로가기

자바스크립트

[자바스크립트] 1. 소개

자바스크립트(javascript)


(학습 자료 : 인사이트 자바스크립트(2014년))


소개

자바스크립트는 웹 브라우저에서 동작하는 스크립트 언어다.

웹이 점점 발전하면서, 웹 아키텍처에 변화가 일어났고 서버에서 담당하던 역할들이 상당 부분 웹 브라우저로 이동했다. 이 중심에는 자바스크립트가 있었고, jQuery가 등장하여 쉽게 DOM을 핸들링하게 되면서 폭발적인 성장을 보이게 된다.

현재는 브라우저 기반의 자바스크립트 리이브러리뿐만 아니라, Node.js와 같은 서버 기반의 환경에서 동작할 수 있는 라이브러리도 쏟아져 나오고 있다. 이제 자바스크립트만으로 클라이언트와 서버 개발을 동시에 할 수 있는 수준에 도달한 것이다.




핵심 개념 요약

앞으로 배우게 될 자바스크립트에서 핵심적인 개념들


  1. 객체

    자바스크립트의 거의 모든 것은 '객체'

    null과 undefined를 제외한 모든 것을 객체로 다룰 수 있다.

  2. 함수

    자바스크립트에서는 함수도 객체

    함수는 '일급 객체'로 다뤄진다.

  3. 프로토타입

    모든 객체는 숨겨진 링크인 프로토타입을 가진다.

    ECMAScript에서는 [[Prototype]]이라고 표현

  4. 실행 컨텍스트

    자바스크립트는 실행 컨텍스트를 만들고 이 안에서 실행이 이루어짐

    이 실행 컨텍스트는 자신만의 유효 범위(Scope)를 가진다.



객체지향 프로그래밍

자바스크립트는 클래스를 지원하지 않지만, 객체지향 프로그래밍이 가능하다. 프로토타입 체인과 클로저로 상속, 캡슐화, 정보 은닉 등의 개념을 소화할 수 있다.



함수형 프로그래밍

자바스크립트는 함수형 프로그래밍이 가능하다.

함수형 프로그래밍이란?

높은 수준의 모듈화를 가능케 하는 매우 효율적인 프로그래밍 방법

주요 특성인 일급 객체로서의 함수 특성과 클로저를 활용한다. (But, 가독성이 떨어질 수 있음)



단점?

자바스크립트는 상당히 유연하고 뛰어난 표현력을 가진 언어지만, 오히려 이러한 특성으로 디버깅에 어려움을 겪는다. 느슨한 타입 체크는 개발자들에게 타입 설정에 대한 자유를 주지만, 컴파일 타임에 잡지 못하는 오류는 모두 런타임 오류로 발견이 된다.

또한 전역 객체의 존재에 대한 논란이 존재한다. 최상위 레벨의 객체들은 모두 전역 객체 안에 위치하기 때문에, 이름 충돌 위험성이 있다.