자바스크립트란?

김보현·2021년 10월 20일
0

자바스크립트

목록 보기
8/11
post-custom-banner

An High-Level Overview Of Javascript

자바스크립트를 좀 더 깊게 알아보자

자바스크립트란 무엇일까?

자바스크립트를 정의하자면 하이레벨, 객체지향, 멀티 패러다임 프로그래밍 언어

이다.

하기만 여기서 더 깊게 정의를 해 보자면

자바스크립트는 하이레벨, 프로토타입 기반의 객체지향, 멀티 패러다임, Interpreted 또는 Just-In-Time(JIT) Compiled, 동적인, 싱글 쓰레드의, Garbage-collected, first-class functions 와 Non-blocking Event loop을 포함한 언어라고 정의할 수 있다.

위 문장에 포함 된 단어들은 모두 자바스크립트의 성격을 나타내지만, 이렇게 봐서는 잘 이해가 가지 않는다.

그럼 단어 하나 하나를 파해쳐 보자

  • 하이레벨

    자바스크립트는 C나 C++과 같이 메모리등의 리소스를 개발자가 직접 관리해야 하는 Low-level 언어가 아닌 파이썬과 같은 High-Level 언어이다.

    개발자가 리소스 관리를 안해도 된다는 편리함이 있지만 C와 같은 실행속도와 최적화를 기대하긴 힘들다.

  • Garage-collected

    가비지 콜렉터가 사용하지 않는 메모리를 회수한다.

  • 프로토타입 기반의 객체지향

    primitive value를 제외한 거의 모든 것이 자바스크립트에서는 object이다.

    Prototype은 Object의 설계도이다.

    한 배열을 생성하고 이 배열에서 push 같은 메소드를 사용할 수 있는 이유는 Prototype inheritance 덕분이다.

  • 멀티 패러다임

    프로그래밍에서 패러다임이란 어떻게 코드를 작성할지에 대한 접근 또는 방식이다.

    1. 절차지향 프로그래밍
    2. 객체지향 프로그래밍
    3. 함수형 프로그래밍

    많은 언어들은 이 패러다임 중 1개만 할 수 있지만 자바스크립트는 3개의 패러다임으로 코드를 작성 할 수 있다.

  • Interpreted or JIT compiled

    자바스크립코드는 자바스크립트 엔진에 의해 Interpreted 된다.

  • 동적인 타입

    자바스크립트에서는 data-type 정의를 하지 않는다. data-type은 runtime때 정해진다.

    또 값을 변수에 할당함에 따라 data-type이 동적으로 바뀐다.

  • 싱글 쓰레드

    자바스크립트는 싱글 쓰레드여서 한번에 한 작업을 처리한다.

  • First-class functions

    first-class function이란 함수를 일반 변수처럼 취급한다.

    이에 따라 우리는 함수를 파라미터로 넘길 수도 있고 다른 함수에서 return 받을 수 있다.

    이에 따라 개발하는 함수형 프로그래밍을 할 수 있다.

  • Non Blocking event loop

    자바스크립트는 싱글 쓰레드이다.

    만약 data를 fetching하는 긴 작업이 있으면 다른 작업을 진행 못하고 우리는 그것을 원하지 않을 것 이다.

    그렇다면 어떻게 해야할까?

    event loop가 쓰레드를 blocking 하지 않면서 오랜시간이 걸리는 작업들을 백그라운드에서 실행한다. 그리고 작업들이 완료되면 메인 쓰레드로 다시 돌려 놓는다.

더 깊은 내용은 포스트를 나누어서 작성하겠다.

profile
안녕하세요 김보현입니다.
post-custom-banner

0개의 댓글