Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

코딩세상

JavaScript - JavaScript의 동작 원리 본문

Javascript

JavaScript - JavaScript의 동작 원리

필륭 2023. 4. 9. 15:50

JavaScript는 클라이언트 측 웹 개발을 위해 가장 많이 사용되는 프로그래밍 언어 중 하나입니다. 이 언어는 웹 브라우저에서 실행되며, HTML 및 CSS와 함께 사용되어 웹 사이트 및 웹 어플리케이션을 구축하는 데 사용됩니다.

 

JavaScript는 단일 스레드 언어입니다. 이는 JavaScript 엔진이 한 번에 하나의 작업만 수행할 수 있다는 것을 의미합니다. 이러한 특성은 브 라우저의 성능을 향상시키고 복잡한 코드를 보다 쉽게 디버깅할 수 있도록 합니다.

 

 

 

JavaScript의 동작 원리

1. 구문 분석 (Parsing)

JavaScript 엔진은 코드를 실행하기 전에 코드를 읽고 이해합니다. 이 과정에서 문법 오류가 있는지 확인하고 코드를 실행 가능한 형태로 변환 합니다.

 

2. 컨텍스트 생성 (Context Creation)

JavaScript 엔진은 코드를 실행하기 위해 실행 컨텍스트를 생성합니다. 실행 컨텍스트는 코드 실행에 필요한 정보를 담고 있는 객체입니다. 이 객체는 변수, 함수, 매개 변수 등의 정보를 담고 있으며, 스코프 체인, this 값, 변수 및 함수 선언 등의 정보도 포함됩니다.

 

3. 변수 및 함수 선언 (Variable and Function Declaration)

JavaScript 엔진은 실행 컨텍스트를 생성할 때, 변수 및 함수를 메모리에 할당합니다. 이 과정에서 변수를 위한 메모리 공간을 확보하고 함수를 위한 함수 객체를 생성합니다. 변수와 함수는 실행 컨텍스트의 프로퍼티로 저장됩니다.

 

4. 실행 (Execution)

JavaScript 엔진은 생성된 실행 컨텍스트를 스택에 쌓은 후, 코드를 실행합니다. 이때 함수 호출이 발생하면 새로운 실행 컨텍스트가 생성되고 스택에 쌓입니다. 함수 실행이 완료되면 실행 컨텍스트는 스택에서 제거됩니다. 이러한 과정을 반복하면서 전체 코드가 실행됩니다.

 

5. 가비지 컬렉션 (Garbage Collection)

c언어의 경우 low - level의 언어이기 때문에 사용되지 않는 메모리를 수동으로 해제하여 메모리 누수를 줄여야 합니다. 하지만  JavaScript는 c언어보다 높은 수준의 언어이기 때문에 가비지 컬렉션 기능을 내장하고 있습니다. 이 기능은 더 이상 사용되지 않는 메모리를 자동으로 해제하여, 메모리 누수를 방지합니다. 가비지 컬렉션은 주기적으로 실행되며, 더 이상 사용하지 않는 객체 및 변수를 찾아내고 이를 메모리에서 제거합니다. JavaScript는 이러한 동작 원리를 기반으로 코드를 실행하며, 이를 통해 다양한 웹 어플리케이션을 개발할 수 있습니다. JavaScript의 높은 활 용도와 유연성은 이러한 동작 원리와 관련이 있습니다. 이를 이해하고 활용하는 것은 JavaScript를 효과적으로 사용하는 데 중요합니다.

 

 

Node.js

JavaScript는 브라우저에서 실행되는 것 외에도 Node.js를 사용하여 서버 측에서도 실행될 수 있습니다. Node.js는 Google Chrome의 JavaScript 엔진인 V8을 사용하며, 이를 통해 JavaScript를 서버 측에서도 사용할 수 있게 해줍니다.

 

Node.js는 Google Chrome의 JavaScript 엔진인 V8을 사용하여 서버 측 JavaScript를 실행할 수 있게 해주는 도구입니다. 이를 통해 JavaScript를 사용하여 서버 측 웹 어플리케이션을 구축할 수 있습니다. Node.js는 이벤트 기반, 비동기식 I/O 모델을 사용하여 높은 성능을 제공합니다. 이는 Node.js가 대규모 웹 어플리케이션에 적합하다는 것을 의미합니다.

 

Node.js는 JavaScript 런타임 환경을 제공하며, 이를 통해 JavaScript로 작성된 어플리케이션을 실행할 수 있습니다. Node.js는 HTTP, HTTPS, TCP, UDP와 같은 프로토콜을 지원하며, 이를 통해 다양한 종류의 어플리케이션을 개발할 수 있습니다.

 

Node.js는 V8 엔진을 사용하여 JavaScript 코드를 실행합니다. V8은 고성능 JavaScript 엔진으로, JIT (Just-In-Time) 컴파일러와 가비지 컬 렉션 기능을 제공합니다. 이를 통해 Node.js는 빠른 코드 실행 속도와 메모리 관리 기능을 제공합니다. Node.js는 많은 개발자들에게 인기가 있으며, 많은 기업에서도 사용되고 있습니다. 이는 Node.js가 높은 확장성, 높은 성능, 그리고 다양한 모 듈과 패키지를 제공하기 때문입니다. Node.js를 사용하여 서버 측 웹 어플리케이션을 구축하려면, JavaScript와 Node.js의 동작 원리를 이해 하는 것이 중요합니다.

 

JavaScript는 브라우저 및 서버 측 개발에 필수적인 언어입니다. 이러한 동작 원리를 이해하고 이를 기반으로 코드를 작성할 수 있다면, JavaScript를 보다 효과적으로 사용할 수 있습니다.

 

 

 

 

 

#출처 엘리스 AI 트랙 JavaScript 101 - (9) JavaScript의 동작 원리

Comments