평소에 런타임이라는 용어를 많이 사용하고 또 들어왔는데 제 머리속에서는 그 개념이 명확하지 않아서 이번에 시간을 내서 공부해 보았습니다. 위키피디아에서 정의를 찾아보면 런타임과 런타임 환경을 구분해 놓았는데, 정확히 말하자면 평소에 우리가 사용하는 런타임이라는 용어는 대부분 런타임 환경을 의미하는 것 같습니다. 

 

출처: https://ko.wikipedia.org/wiki/%EB%9F%B0%ED%83%80%EC%9E%84

 

 

 

 전 단순히 이 용어에 대한 정의만 가지고는 전혀 가슴에 와닿지 않기 때문에.. 예시를 통해 좀 더 구체적으로 살펴보겠습니다. 저는 Javascript 언어를 사용합니다. 제가 어떤 프로그램을 만들기 위해 코딩을 하면 Javascript언어로 코드를 짤텐데, 컴퓨터는 이 Javascript언어가 무슨 말인지 이해하지 못합니다. 컴퓨터는 0 과 1(비트열)로만 이루어진 자연어(기계어)만 이해합니다. 따라서 컴퓨터 안에서 어떤 다른 소프트웨어가 제가 짜놓은 이 Javascript 코드를 컴퓨터가 이해할 수 있도록 자연어로 바꾸어 줘야 하는데, 그 역할을 브라우저 내부의 interpreter와 compiler가 수행합니다. 즉 브라우저는 런타임이 됩니다.(정확히는 런타임 환경입니다)

 

 다시한번 정리하자면, Javascript같은 프로그래밍 언어로 만들어둔 어떤 기능을 컴퓨터 위에서 작동시키려면 그 코드는 컴퓨터가 이해할 수 있는 자연어 코드가 되어야 하고 이 일을 브라우저가 내부적으로 수행하여 컴퓨터 화면을 통해 사용자에게 어떤 기능을 보여주게 됩니다.

아래는 그림판을 통해 이 과정을 간단히 그려본 것입니다.

아, 그리고 클라이언트쪽이 아닌 서버쪽에서의 Javascript를 이용하는 런타임은 Node입니다.

 

 

 

 

 

 

 

 

 

 

References

https://ko.wikipedia.org/wiki/런타임

https://thebook.io/006982/ch01/01/02/

https://engineering.huiseoul.com/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94%EA%B0%80-%EC%97%94%EC%A7%84-%EB%9F%B0%ED%83%80%EC%9E%84-%EC%BD%9C%EC%8A%A4%ED%83%9D-%EA%B0%9C%EA%B4%80-ea47917c8442

https://gamjam.tistory.com/54

'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

+ Recent posts