자바스크립트를 이해하기 위한 컴퓨터 프로그래밍 언어 개념

jjyu_my·2024년 8월 16일
0

JAVASCRIPT

목록 보기
1/15
post-thumbnail

💡 자바스크립트를 알기위해서 컴퓨터프로그래밍 언어먼저 이해하여야한다

📌 프로그래밍 언어와 컴파일

1️⃣ 프로그램

  • 컴퓨터에서 실행되는 명령어의 집합입니다.
    프로그램은 사람이 작성한 소스코드에서 출발하여, 컴파일 또는 인터프리터를 통해 기계어로 변환됩니다.

👩🏻‍💻 컴파일 이랑 인터프리터가 뭔데??? 자세히 알기위해 컴퓨터프로그래밍 언어 세대먼저 간단히 알아보도록 합니다

🔎 언어 세대

▶︎ 1세대 언어 (기계어)

  • 0과 1의 이진수로 이루어진 코드로 작성되며, 컴퓨터가 직접 이해하고 실행할 수 있는 유일한 언어입니다. 천공카드와 같은 초기 컴퓨터에서는 1세대 언어로 프로그래밍했습니다.

▶︎2세대 언어 (어셈블리 언어)

  • 기계어를 사람이 조금 더 이해하기 쉽게 만든 것으로, 간단한 명령어와 메모리 주소를 사용하여 프로그래밍합니다. 어셈블러라는 프로그램을 사용해 기계어로 변환됩니다.

▶︎3세대 언어 (고급언어)

  • 사람의 언어와 더 가까운 구조를 가지고 있으며, 논리적이고 수학적인 표현이 가능합니다.
    예로는 C, C++, Java, Python 등이 있습니다.
    이 언어들은 컴파일러나 인터프리터를 사용하여 기계어로 변환됩니다.

▶︎4세대 언어
주로 데이터베이스 관리와 같은 비즈니스 문제를 해결하기 위해 개발된 언어들로, SQL 같은 데이터 중심의 언어가 포함됩니다.
객체지향 언어인 C++, Java도 4세대 언어로 분류될 수 있습니다.


2️⃣ 컴파일 과 컴파일러

📌 컴파일

  • 소스코드를 기계어로 변환하는 과정입니다.
    컴파일된 결과물은 운영 체제나 하드웨어에 맞게 최적화되어 실행되며, 실행 파일(exe, dll 등)이 생성됩니 다.
    이는 실행 속도가 매우 빠르며, 다양한 하드웨어 접근이 가능합니다.

📌 컴파일러

  • 특정 프로그래밍 언어의 코드를 기계어로 변환하는 프로그램입니다.
    C, C++, Java와 같은 언어들은 컴파일러를 사용하여 코드를 기계어로 변환합니다.

3️⃣ 인터프리터언어

  • 소스코드를 미리 기계어로 변환하지 않고, 실행 시점에 한 줄씩 해석하고 실행하는 프로그램입니다. Python, JavaScript 등이 대표적인 인터프리터 언어입니다.

💡 컴파일러를 사용하는 언어보다 실행 속도가 느릴 수 있지만, 즉시 코드 실행이 가능해 개발 속도가 빠르고, 테스트와 디버깅이 용이합니다.
또한, 인터프리터 언어는 플랫폼 독립적이며, 다양한 운영 체제에서 동일한 코드를 실행할 수 있습니다.

4️⃣ 자바스크립트와 타입스크립트

📌 자바스크립트 (JavaScript)

  • 원래 웹 페이지에서 동적 기능을 구현하기 위해 개발된 스크립트 언어입니다.
    현재는 Node.js 같은 환경에서 서버 측 프로그래밍에도 사용되며, 범용 프로그래밍 언어로 진화했습니다.

📌 타입스크립트 (TypeScript)

  • 마이크로소프트에서 개발한 자바스크립트의 상위 집합으로, 정적 타입을 지원합니다.
    즉, 변수나 함수의 데이터 타입을 명시할 수 있어 코드의 안정성과 유지보수성이 향상됩니다.
    대규모 애플리케이션에서 코드 품질을 높이기 위해 많이 사용되며, 최근 실무에서 매우 중요한 기술로 자리 잡았습니다.

5️⃣ V8 엔진과 자바스크립트의 실행

📌 V8 엔진

  • 구글 크롬과 Node.js에서 사용되는 자바스크립트 엔진으로, 자바스크립트를 매우 빠르게 실행할 수 있도록 설계되었습니다.
    V8은 자바스크립트를 해석하는 동시에 Just-In-Time (JIT) 컴파일링을 통해 기계어로 변환하여 실행 속도를 높입니다.

📌 JIT 컴파일링

  • 인터프리터와 컴파일러의 장점을 결합한 기술로, 프로그램 실행 중에 필요한 부분만 즉석에서 컴파일하여 실행 속도를 높이는 방식입니다.
    V8 엔진을 통해 자바스크립트가 컴파일된 언어처럼 빠르게 동작할 수 있게 됩니다.

👩🏻‍💻 하드웨어 접근
일반적으로 인터프리터 언어는 하드웨어 접근이 제한되지만, Node.js와 같은 환경에서는 JavaScript로 파일 시스템, 네트워크, 장치 제어 등이 가능합니다.

다른 인터프리터 언어
Python 외에도 Ruby, Perl, PHP 등도 인터프리터 언어에 속합니다.


profile

0개의 댓글