[일반] 런타임

Shadis·2024년 6월 21일

일반

목록 보기
7/14

런타임

웹 서버에 대해 공부하던 중 다음과 같은 node.js에 대한 꺼무위키의 설명을 보았다.

??? 런타임 환경 ???

런타임 환경이라니 너무 애매모호한 개념이다.

이번 포스트에서는 이 애매모호한 런타임이 무엇인지 확실하게 알아보고자 한다.

프로그래밍 언어는 환경이 필요하다

잘 생각해보자. 인간은 한국어, 영어, 프랑스어 등등 인간의 언어를 구사하기 위한 실행 환경이 필요하지 않다. 우리는 해당 언어의 문법과 단어를 알고 있기만 하면 입으로 그 언어를 구사할 수 있다. 우리는 언어를 구사하는데 특별한 기계 장치가 필요하지 않다.

하지만 컴퓨터는 별도의 프로그램 없이는 해당 언어를 구사할 수 없다. 파이썬에 대해 빠삭하게 알고 있는 프로그래머가 vscode 같은 코드 에디터에 아무리 완벽한 파이썬 코드를 짰다고 해도 해당 컴퓨터에 파이썬 코드를 해석할 인터프리터가 설치되어있지 않으면 파이썬 코드를 실행시킬 수 없다.

런타임이란

프로그래밍 언어를 실행시키기 위한 실행 환경을 런타임이라고 한다.

런타임은 컴파일러와 인터프리터, 라이브러리, 디버거 등을 포함하는 개념이다.

파이썬으로 치면 파이썬 인터프리터와 표준 라이브러리 등을 파이썬의 런타임이라고 할 수 있고,
자바로 치면 자바 컴파일러, JVM, 표준 라이브러리를 포함한 JDK이 자바의 런타임이라고 할 수 있고,
문제의 자바스크립트로 치면 V8 엔진, 라이브러리 등을 자바스크립트의 런타임이라고 할 수 있다.

파이썬, 자바, C에서는 딱히 런타임이란 단어를 사용하지 않고 자바스크립트에서만 런타임이라는 단어를 사용하는 이유는 자바스크립트가 원래는 브라우저에 종속된 언어였는데, 추후에 브라우저에서 떨어져 나와 독립적인 런타임을 구축한 언어이기 때문이다.

profile
HGU 20 김민석

0개의 댓글