본문 바로가기

JavaScript

[JavaScript] #1, JavaScript

반응형

JavaScript


JavaScript를 처음 접했을 때, 얄팍한 지식으로 어느 정도 필요한 기능이 구현되었다.


오픈 소스나 구글링 하면서 소스를 보면 내가 구현하는 것과 매우 다른 형태 소스들을 보게 된다.

역시 고수들...이러면서 대수롭지 않게 그냥 지나쳤다. 왜 그랬을까..

JavaScript를 진입 장벽이 낮다고 하는 사람들이 있다.

체감적으로 다른 언어들에 비해 유연한 덕분에 쉽게 느껴지는 부분이 있다.

하지만 깊이 들어갈수록 어떤 언어보다 복잡하고, 알아둬야 할 개념들이 많다. 계속 알아가는 중..

애초에 탄생 자체가 HTML DOM을 동적으로 제어하고 싶어서 만든 보조적인 언어라 그런 걸까.

아무튼 기본 개념 없이 접근했다가 된통 당하고 조금씩 알게 되는 것을 메모해 둠.

컴퓨터 관련 비전공자이자, 기초가 없어서 굉장히 고충이 많은 1인으로...

완전히 초보라고 생각하고 쉽게 하나씩 다시 되짚어가면서 작성할 예정.

처음 정리는 평소에 궁금했던 내용으로 찾아보면서 적어보려고 한다.


물론 역사와 탄생은 건너 뜀.




JavaScript는 스크립트 언어이다.
스크립트 언어에 대한 설명은 궁금하면 찾아보면 됨.
아무튼 중요한 건 컴파일을 하지 않고도 실행할 수 있는 언어라는 것.

컴파일 언어는 컴파일을 한다는 것.
컴파일 한다는 것은 기계어로 변환한다는 말.기계어는 바로 기계가 사용하니깐 속도 빠름.

반대로 스크립트 언어는 컴파일을 하지 않으니깐 속도는 컴파일 언어에 비해 느림.

컴파일 언어는 덩치가 커지면 컴파일 하는데 시간이 오래 걸림.
소스 한 줄 수정하고 컴파일 돌려놓고 커피 한잔하고 올 정도.



JavaScript는 인터프리터 방식이다.
역시나 인터프리터가 궁금하면 찾아보면 됨.
중요한건 인터프리터 방식은 한줄한줄 해석하면서 실행된다는 점.
그래서 문제가 발생하는 지점을 만나야 문제인지 알게 된다.(단점)
물론 수정도 바로바로 할 수 있어서 편하고 빠르다(장점)




JavaScript는 계속 발전 중이다.
JavaScript를 브라우저 밖으로 빼내려고 노력 중이며 성능도 향상 중이다.

그 중에서도 크롬에 V8엔진은 충격적임.
대충 말하자면 JavaScript를 실시간으로 컴파일하는 방식으로 성능 대폭 향상 시킴.

asmjs는 C/C++을 JavaScript로 변환하여 웹에서 사용할 수 있게 한다. 
C/C++로 작성해서 실행 했을 때에 비해 1.5배 느리다.

WebAssembly는 웹을 위한 새로운 기술이다.
네이티브 코드 만큼 속도를 목표로 개발 진행 중이다.



JavaScript는 충분히 매력적이며, JavaScript가 세상을 먹는 중이라고 표현하기도 한다.


JavaScirpt라서 알아야할 기본 개념 위주로 작성할 예정.


적다보니깐 정리할게 엄청 많아보인다.



반응형