큰 꿈은 파편이 크다!!⚡️

“런타임”이라는 단어를 이제는 사용할거야 본문

기타 CS

“런타임”이라는 단어를 이제는 사용할거야

wood.forest 2023. 7. 2. 18:45

컴잡을 하다보면 전문적인 기술 용어를 많이 알게 된다. 사실 나는 내가 그 용어를 확실하게 이해하기 전까지는 의사소통 오류가 있을까 해서 용어를 안쓰는 편이다.

컴퓨터 / 컴퓨터 시스템에 대해 공부하기 시작하면 자주 보게 되는 단어 “런타임”이라는 용어가 있다. 2021년에 이 단어가 잘 이해되지 않아서 메모해놓은 것을 보고, 오늘은 런타임과 그것에서 파생된 여러 단어들을 정리해보려 한다. (제목 짓기가 참..)

 

 


 

 

런타임 (Runtime)

컴퓨터 프로그램이 실행되는 시간이다.

영화 길이에 대해 이야기할때도 “아바타2는 러닝타임이 3시간이다~~”라고 말하는 것처럼, 영어에서는 Run이 뭔가 실행 • 수행하고 있다는 개념으로 쓰인다고 생각하면 기억하기 쉬울 것 같다.

 

https://www.techtarget.com/searchsoftwarequality/definition/runtime

 

이 사진에서도 볼 수 있듯이, 런타임은 프로그램이 이것저것 여러가지 과정을 거쳐서 결국 실행되고 있는! 제일 마지막 단계를 나타낸다. 그러면 우리가 실제로 사용하고 있는 웹사이트라던가 서비스들은 전부 런타임 단계에 있는 것이구나!

 

 

 

 

 

런타임 환경 (Runtime Environment)

프로그램이 실행되는 환경을 나타낸다. 각 언어는 아래와 같은 런타임 환경을 갖는다.

  • C# ↔️ CLR (Common Language Runtime)
  • Javascript ↔️ Node.js / Browser
  • Java ↔️ JRE (Java Runtime Environment)

 

그럼 런타임 환경이 하는 일은 무엇일까?

자바스크립트와 웹 브라우저의 관계를 예로 들어보겠다. 브라우저는 자바스크립트로 만들어진 프로그램을 실행할 때 필요한 모든 리소스, 라이브러리 등을 불러와서, 브라우저를 실행하는 OS에 관계 없이 서비스를 정상적으로 사용할 수 있도록 해준다.

결국 브라우저에서 제공하는 Web API들이나 콜백 큐 같은 것들도 모두 런타임 환경에 포함된 것들이다.

 

https://vahid.blog/post/2021-03-21-understanding-the-javascript-runtime-environment-and-dom-nodes/

 

 

 

 

 

런타임 에러 (Runtime Error)

런타임 에러는 추측할 수 있듯이 “프로그램을 실행하는 중에 나타나는 에러”이다.

백준 등에서 알고리즘을 풀 때 이 에러가 나타난다면 아래와 같은 경우가 있다

  1. 0으로 나누는 경우
  2. 무한 루프에 빠지는 경우
  3. Null point error
  4. segmentation fault/bus error - 존재하지 않는 메모리 위치에 접근하려 할 때

실제 서비스에서는 예외처리가 되지 않은 코드에서 문제가 발생하는 경우 런타임 에러를 확인할 수 있다. 런타임 에러가 발생하면 프로그램 또는 실행중이던 웹 페이지가 멈춰버리거나 앱의 경우 강제종료(앱터짐)가 생길 수도 있으니 테스트를 잘해야겠다는 생각이 든다.

 

 

 

 

런타임 세이프 (Runtime Safety)

Runtime-safe라는 말은 들어봤는데 한국어로 “런타임 세이프” 또는 “런타임 안정성” 과 같은 말은 검색해도 나오지 않는 것을 보니 뭔가 정해진 용어는 아닌가 싶기도 하다.

어쨌든 핵심은 프로그램이 안정적으로 실행된다는 의미다. 예외처리를 통해 프로그램 강제 종료를 막거나, 타입 체크 또는 메모리 관리 등을 통해 런타임 에러를 방지하는 것이다. 이것은 사용하는 언어에 따라 보장하는 내용들이 조금씩 달라질 수 있다고 한다.

 

 

 

 

 


 

 

 

쓰다보니 단순 용어 설명과 종류의 나열이 된 것 같긴 하다😩

하지만 다시 생각해보면 그만큼 내가 '잘 몰라서 사용하기 두려워했던 용어'가 사실은 별거 없다!?는 의미이기도 하다.

앞으로도 모르는 용어 그냥 검색하고 치우지 말고 정리를 해봐야겠다고 느껴진다.

Ref

https://www.underthehoodlearning.com/what-is-runtime-environment/

https://www.linkedin.com/pulse/understanding-javascript-runtime-environment-tech-grid-asia/

https://vahid.blog/post/2021-03-21-understanding-the-javascript-runtime-environment-and-dom-nodes/

 

 

반응형