프로그래밍 언어로서의 자바 스크립트

프론트 기록 일지·2021년 12월 9일
0
post-thumbnail
--- 자바 스크립트의 개요 ---
복습 ()

프로그래밍 언어로서의 자바 스크립트

프로그래밍 언어

· 프로그래밍 언어의 정의

컴퓨터는 기계어만 이해할 수 있고 사람이 이해하기가 쉽지 않으므로 프로그래밍 언어를 사용한다.

프로그래밍 언어로 프로그램을 개발하는 행위를 프로그래밍이라고 하며 프로그래밍 언어로 작성한 프로그램을 소스 코드 또는 코드라고 부름.

· 컴파일 언어와 인터프리터 언어

소스 코드를 실행하기 앞서 기계어로 번역하는 행위를 컴파일이라고 한다. 컴파일을 수행하는 소프트웨어를 컴파일러라고한다. 컴파일한 후에 실행하는 프로그래밍 언어를 컴파일 언어라고 한다.

C,C++,JAVA Objective C 등의 언어가 대표적임

반면, 프로그램을 한 줄마다 기계어로 번역해서 실행하는 프로그래밍 언어를 언터프리터 언어라고 하며, 프로그램을 번역해서 실행시키는 소프트웨어를 인터프리터 라고 한다.

js, LISP, Perl, Ruby, Python 등의 언어가 대표적임

인터프리터 언어는 프로그램을 바로 실행, 동작을 확인해 가며 개발하는 장점이 있지만 한줄한줄 기계어로 번역하기 때문에 컴파일 언어보다 처리 속도가 느리다는 단점도 있다.

· 프로그래밍 언어의 유형

프로그램을 만드는 방식에도 언어를 분류할 수 있다.
1. 절차적 언어 (절차를 순서대로 작성)
2. 객체 지향 언어 (처리와 관련된 데이터와 절차를 하나로 묶어 객체단위로 관리함)
3. 논리형 언어 (데이터 사이의 관계와 논리를 설명해 나감)

자바스크립트는 객체 지향 언어 지만 함수형 언어의 특징도 가지고 있다.


자바스크립트의 특징

자바스크립트는 강력하고 유연한 알고리즘 표현 방식을 갖춘 프로그래밍 언어이다.

  1. 인터프리터 언어다.

    실행 속도가 느릴 것 같지만 웹 브라우저 대부분에는 자바스크립트 코드를 컴파일 하는 JIT 컴파일러(Just in Time Compiler)가 내장되어 있어 실행속도가 매우 빨라졌다. 이를 통해 고기능 웹 애플리케이션구현할 수 있기 되었음

  2. 동적 프로토타입 기반 객체 지향 언어이다.

    C++와 Java 등은 클래스를 이용하여 객체를 생성하는 클래스 기반 객체 언어이다. 자바스크립트에서는 객체를 생성한 후에도 프로퍼티와 메서드를 동적으로 추가하거나 삭제가 가능함. 이 또한 같은 클래스 기반 객체 지향 언어의 객체와 다른 점이다.

  3. 동적 타입 언어다.

    C++와 Java는 실행되기 전에 변수 타입이 결정되는 정적 타입언어다. 반면 JS는 변수타입이 없다. 따라서 변수에 저장되는 데이터 타입이 동적으로 바뀔 수 있다. 이러한 언어를 동적 타입 언어라 한다.

  4. 함수가 일급 객체다.

    자바스크립트의 함수는 객체이며 함수에 함수를 인수로 넘길 수 있다. 이것이 js의 함수가 일급객체인 이유이다. 이 특성을 활용하여 고차 함수를 구현할 수 있어 함수형 프로그래밍이 가능하다.

      ※ 일급객체란?
    • `변수나 데이타에 할당` 할 수 있어야 한다.
    • `객체의 인자`로 넘길 수 있어야 한다.
    • `객체의 리턴값`으로 `리턴` 할수 있어야 한다.
  5. 함수가 클로저를 정의한다.

    JS의 함수는 클로저(closure)를 정의합니다. 클로저로 변수를 은닉하거나 영속성을 보장하는 등 다양한 기능을 구현할 수 있습니다.

      ※ 클로저란?
    • 클로저(closure)는 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다. 클로저는 자바스크립트를 이용한 고난이도의 테크닉을 구사하는데 필수적인 개념으로 활용된다.
    • 참고 영상(클로저)
      출처 : 생활코딩 youtube

자바스크립트의 기술적 요소

자바스크립트는 다음과 같은 기술적 요소로 구성된 언어다, 이러한 요소는 자바스크립트에서 학습해야 할 항목이기도 하다.

  1. ECMAScript(코어 언어)

    자바 스크립트의 핵심 기술은 ECMAScript로 규정이 되어 있고 ECMA라는 조직의 위원회가 표준 작업을 하며 문서로 공개되고 있다. 자바스크립트를 배울 때는 먼저 코어 언어의 내용부터 제대로 이해해야 한다.

  2. 클라이언트 측의 고유한 기술 요소
    웹 브라우저에서 동작하는 JS를 클라이언트 측 자바스크립트라고 한다. 이쪽 자바 스크립트는 EMCAScript가 규정한 코어 언어와 웹 브라우저의 API로 구성되어 있다. 웹 브라우저의 주요 API는 다음과 같다.

    1. Window 인터페이스 : 자바스크립트로 브라우저 또는 창을 조작하는 기능을 제공
    2. DOM : 자바스크립트로 html문서의 요소를 제어하는 기능을 제공
    3. XMLHttpRequest : 서버와 비동기로 통신하는 기능 제공

또한 HTML5에 규정된 다양한 API도 사용이 가능함.

API설명
Drag and DropHtml 요소 혹은 파일을 끌어서 다른 HTML요소에 놓을때 데이터 전달
Blob이진 데이터를 다루는 기능
File로컬 파일 시스템을 읽고 쓸 수 있는 기능
Web Workers프로그램 여러 개를 멀티스레드로 병렬 처리
Web Storage대용량이며 저장 기간에 제한 없는 데이터를 로컬에 저장
Indexed Database로컬에 키=값(key-value) 타입의 관계형 데이터 베이스 기능 제공
WebSockets서버와의 양방향 통신 기능 제공
GeolocationGPS등의 위치 정보를 다루는 기능 제공
Canvas2차원,3차원 그래픽스 기능을 제공
  1. 서버 측 자바스크립트의 고유한 기술 요소

    웹 서버에서 동작하는 JS를 서버 측 JS라고 한다. 웹 서버를 구현하는데는 Perl,PHP,Python,Ruby 등의 프로그래밍 언어가 널리 사용된다. 최근에는 서버 측 언어로 자바스크립트 또한 많이 사용된다. 서버 측 JS실행 환경에는 다음과 같은 구현체가 있다.

    • Node.js : 구글이 개발한 JS 실행 환경
    • Aptana Jaxer : 압타나가 개발하고 현재는 오픈 소스로 개발되고있는 JS환경
    • Rhino : 오픈 소스로 개발되어 현재는 모질라(Mozila)가 관리하고 있는 JS실행 환경
    • `특히나` Node.js가 웹 애플리케이션을 만드는데 자주 사용된다.

ECMAScript6

ECMAScript6는 2015년 6월에 권고된 새 버전이고 다른 프로그래밍 언어가 제공하는 다양한 기능을 추가하면서도 이전 JS버전과의 호환성을 보임. 모두 강력한 기능이나 특히 이터레이터제너레이터는 새로운 프로그래밍 패러다임을 제시하는 ES6의 핵심과도 같다.
@ 추가 학습 필요

profile
꾸준한 학습 일지 기록이 목표입니다.

0개의 댓글

관련 채용 정보