평소에 런타임이라는 용어를 많이 사용하고 또 들어왔는데 제 머리속에서는 그 개념이 명확하지 않아서 이번에 시간을 내서 공부해 보았습니다. 위키피디아에서 정의를 찾아보면 런타임과 런타임 환경을 구분해 놓았는데, 정확히 말하자면 평소에 우리가 사용하는 런타임이라는 용어는 대부분 런타임 환경을 의미하는 것 같습니다.
전 단순히 이 용어에 대한 정의만 가지고는 전혀 가슴에 와닿지 않기 때문에.. 예시를 통해 좀 더 구체적으로 살펴보겠습니다. 저는 Javascript 언어를 사용합니다. 제가 어떤 프로그램을 만들기 위해 코딩을 하면 Javascript언어로 코드를 짤텐데, 컴퓨터는 이 Javascript언어가 무슨 말인지 이해하지 못합니다. 컴퓨터는 0 과 1(비트열)로만 이루어진 자연어(기계어)만 이해합니다. 따라서 컴퓨터 안에서 어떤 다른 소프트웨어가 제가 짜놓은 이 Javascript 코드를 컴퓨터가 이해할 수 있도록 자연어로 바꾸어 줘야 하는데, 그 역할을 브라우저 내부의 interpreter와 compiler가 수행합니다. 즉 브라우저는 런타임이 됩니다.(정확히는 런타임 환경입니다)
다시한번 정리하자면, Javascript같은 프로그래밍 언어로 만들어둔 어떤 기능을 컴퓨터 위에서 작동시키려면 그 코드는 컴퓨터가 이해할 수 있는 자연어 코드가 되어야 하고 이 일을 브라우저가 내부적으로 수행하여 컴퓨터 화면을 통해 사용자에게 어떤 기능을 보여주게 됩니다.
아래는 그림판을 통해 이 과정을 간단히 그려본 것입니다.
아, 그리고 클라이언트쪽이 아닌 서버쪽에서의 Javascript를 이용하는 런타임은 Node입니다.
References
https://ko.wikipedia.org/wiki/런타임
'PROGRAMING > 일반' 카테고리의 다른 글
Youtube api 사용하기 (0) | 2020.06.25 |
---|---|
Travis Continuous Integration (0) | 2020.06.23 |
로드밸런서 (0) | 2020.06.23 |
네트워크 통신과 토큰 (0) | 2020.06.22 |
Docker 소개 (0) | 2020.06.22 |