맨위로가기

런타임

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

런타임은 프로그램이 실행되는 환경을 의미하며, 로더는 메모리 설정, 동적 라이브러리 연결, 엔트리 포인트 실행을 수행한다. 런타임 중 발생하는 오류는 런타임 오류라고 하며, 예외 처리를 통해 관리할 수 있다. 런타임 오류에는 여러 유형이 있으며, 정적 프로그램 분석 도구는 런타임 오류 발생 가능성을 미리 경고한다.

더 읽어볼만한 페이지

  • 컴퓨팅 플랫폼 - 안드로이드 (운영체제)
    구글이 개발한 리눅스 커널 기반의 모바일 운영체제인 안드로이드는 오픈소스 플랫폼으로 다양한 기기에서 활용되며 세계적으로 널리 사용되지만, 개인정보 보호 문제와 독점적 지위 남용 논란 등의 비판도 존재한다.
  • 컴퓨팅 플랫폼 - 자바 플랫폼, 마이크로 에디션
    자바 ME는 임베디드 및 모바일 장치에서 자바 앱을 실행하는 플랫폼으로, 피처폰에서 주로 사용되었으며 다양한 프로파일과 에뮬레이터, 개발 도구를 제공하고 JSR을 통해 기능이 확장된다.
  • 라이브러리 - 바이너리 재컴파일러
  • 라이브러리 - 동적 링크 라이브러리
    동적 링크 라이브러리(DLL)는 윈도우 운영체제에서 프로그램 실행 시 필요한 코드와 데이터를 제공하며, 여러 프로그램에서 공유되어 메모리 효율성을 높이고 모듈성을 향상시키는 라이브러리 형식이다.
런타임
일반 개념
코드컴퓨터 코드
트랜슬레이터트랜슬레이터
컴파일러컴파일러
컴파일 타임컴파일 타임
컴파일러 최적화컴파일러 최적화
중간 표현 (IR)중간 표현
실행실행
런타임 시스템런타임 시스템
런타임런타임
실행 파일실행 파일
인터프리터인터프리터
가상 머신가상 머신
코드 종류
소스 코드소스 코드
목적 파일목적 파일
바이트코드바이트코드
기계어기계어
마이크로코드마이크로코드
컴파일 전략
JIT 컴파일JIT 컴파일
트레이싱 JIT 컴파일트레이싱 JIT 컴파일
AOT 컴파일AOT 컴파일
소스 대 소스 컴파일러소스 대 소스 컴파일러
동적 리컴파일동적 리컴파일
저명한 런타임
안드로이드 런타임안드로이드 런타임 (ART)
공통 언어 런타임공통 언어 런타임 (CLR) & 모노
Crt0Crt0
HHVMHHVM
자바 가상 머신자바 가상 머신 (JVM)
오브젝티브-C오브젝티브-C
크롬 V8크롬 V8
Node.jsNode.js
PyPyPyPy
젠드 엔진젠드 엔진
저명한 컴파일러 및 툴체인
GNU 컴파일러 모음GNU 컴파일러 모음 (GCC)
LLVMLLVM
클랭클랭

2. 런타임 환경의 구성

프로그램 실행 시 로더는 메모리 설정, 동적 링크 라이브러리 연결, 엔트리 포인트 실행 등의 작업을 수행한다. 일반적인 운영 체제에서는 이러한 작업이 런타임 시스템에 의해 수행되는 경우는 드물다.

논리 오류배열 경계 검사 오류와 같이 일부 프로그램 버그는 실행 중에만 발견 가능하다. 이러한 오류는 실제 환경에서 실제 데이터를 사용하여 테스트할 때까지 발견되지 않을 수 있으며, 이 경우 최종 사용자는 "런타임 에러" 메시지를 보게 된다.

2. 1. 메모리 관리

프로그램을 실행할 때, 로더는 먼저 필요한 메모리 설정을 수행하고, 프로그램을 필요한 동적 링크 라이브러리에 연결한다. 그 다음, 프로그램의 엔트리 포인트부터 실행을 시작한다. 경우에 따라 언어 또는 구현에 따라 런타임에 의해 이러한 작업이 수행되지만, 이는 일반적인 소비자 운영 체제의 주류 언어에서는 드문 경우이다.

일부 프로그램 디버깅은 실행 시에만 수행할 수 있다(또는, 실행하면 더 효율적이거나 정확해진다). 논리 오류배열 경계 검사가 한 가지 예이다. 이 때문에, 고도화된 컴파일 시 검사와 사전 릴리스 테스트에도 불구하고, 프로그램이 실제 데이터를 사용하여 실제 가동 환경에서 테스트될 때까지 일부 프로그래밍 버그는 발견되지 않는다. 이 경우, 최종 사용자는 "런타임 에러" 메시지를 받게 될 수 있다.

2. 2. 동적 라이브러리 연결

프로그램을 실행할 때, 로더는 먼저 필요한 메모리 설정을 수행하고, 프로그램을 필요한 동적 링크 라이브러리에 연결한다. 그 다음, 프로그램의 엔트리 포인트부터 실행을 시작한다. 경우에 따라 언어 또는 구현에 따라 런타임에 의해 이러한 작업이 수행되지만, 이는 일반적인 소비자 운영 체제의 주류 언어에서는 드문 경우이다.

2. 3. 엔트리 포인트 실행

로더는 먼저 필요한 메모리 설정을 수행하고, 프로그램을 필요한 동적 링크 라이브러리에 연결한다. 그 다음, 프로그램의 엔트리 포인트부터 실행을 시작한다. 경우에 따라 언어 또는 구현에 따라 런타임에 의해 이러한 작업이 수행되지만, 이는 일반적인 소비자 운영 체제의 주류 언어에서는 드문 경우이다.

3. 런타임 오류

예외 처리는 런타임 오류를 처리하도록 설계된 기능으로, 예측 가능하거나 일반적이지 않은 오류뿐만 아니라 완전히 예측하지 못한 상황까지 잡아내는 구체적인 방안을 제공한다. 최근 런타임 엔진에 추가된 자동 예외 처리는 모든 예외에 대해 "문제의 핵심 부분"(root-cause) 디버그 정보를 제공하며, 소스 코드와 독립적으로 작동한다.

런타임 시 발생 가능한 오류에 대해 경고해주는 정적 프로그램 분석 도구들도 있다. 이러한 도구를 사용하면 소프트웨어의 안전성과 완성도를 높여 사용자에게 신뢰성을 제공한다.

프로그램을 실행할 때, 로더는 먼저 필요한 메모리 설정을 수행하고, 프로그램을 필요한 동적 링크 라이브러리에 연결한다. 그 다음, 프로그램의 엔트리 포인트부터 실행을 시작한다. 경우에 따라 언어 또는 구현에 따라 런타임에 의해 이러한 작업이 수행되지만, 이는 일반적인 소비자 운영 체제의 주류 언어에서는 드문 경우이다.

3. 1. 런타임 오류의 유형

프로그램을 실행할 때 발생하는 논리 오류배열 경계 검사와 같은 일부 프로그램 버그는 실행 시에만 발견되거나, 실행 시에 디버깅이 더 효율적이거나 정확해진다. 고도화된 컴파일 시 검사와 사전 릴리스 테스트에도 불구하고, 실제 데이터를 사용하는 실제 가동 환경에서 테스트가 이루어질 때까지 이러한 버그들이 발견되지 않을 수 있다. 이 경우, 최종 사용자는 "런타임 에러" 메시지를 받게 될 수 있다.

예외 처리는 런타임 오류를 처리하도록 설계된 기능이다. 예측 가능한 오류나 일반적이지 않은 오류뿐만 아니라 완전히 예측하지 못한 상황까지 처리할 수 있다. 최근에는 자동 예외 처리 기능이 런타임 엔진에 추가되었다. 이는 모든 예외에 대해 "문제의 핵심 부분"(root-cause) 디버그 정보를 제공하며, 소스 코드와 독립적으로 추가된다.

런타임 시 발생 가능한 오류에 대해 경고해주는 정적 프로그램 분석 도구들도 있다. 이러한 도구는 소프트웨어의 안전성과 완성도를 높여 사용자에게 신뢰성을 제공한다.

3. 2. 예외 처리

예외 처리는 런타임 오류를 처리하도록 설계된 기능으로, 예측 가능한 오류나 일반적이지 않은 오류뿐만 아니라 완전히 예측하지 못한 상황까지 잡아내는 구체적인 방안을 제공한다. 런타임 엔진에서 최근에 이루어진 것으로는 자동 예외 처리가 있다. 이것은 "문제의 핵심 부분"(root-cause)의 디버그 정보를 모든 예외에 제공하며 소스 코드와 독립하여 추가된다.

일부 프로그램의 디버깅은 실행 시에만 수행할 수 있다(또는, 실행하면 더 효율적이거나 정확해진다). 논리 오류배열 경계 검사가 한 가지 예이다. 이 때문에, 고도화된 컴파일 시 검사와 사전 릴리스 테스트에도 불구하고, 프로그램이 실제 데이터를 사용하여 실제 가동 환경에서 테스트될 때까지 일부 프로그래밍 버그는 발견되지 않는다. 이 경우, 최종 사용자는 "런타임 에러" 메시지를 받게 될 수 있다.

3. 3. 자동 예외 처리

예외 처리는 런타임 오류를 처리하도록 설계된 기능으로, 예측 가능하거나 일반적이지 않은 오류뿐만 아니라 완전히 예측하지 못한 상황까지 잡아내는 구체적인 방안을 제공한다. 최근 런타임 엔진에 추가된 자동 예외 처리는 모든 예외에 대해 "문제의 핵심 부분"(root-cause) 디버그 정보를 제공하며, 소스 코드와 독립적으로 작동한다.

3. 4. 정적 프로그램 분석

런타임 시 발생 가능한 런타임 오류에 대한 경고를 해주는 정적 프로그램 분석 도구들이 있다. 이와 같은 도구를 사용한다면 소프트웨어의 안전성과 완성도를 높여줄 것이며, 사용자에게는 소프트웨어에 대한 신뢰성을 제공한다.

4. 한국 IT 환경과 런타임 오류 관리

정적 프로그램 분석 도구는 런타임 시 발생할 수 있는 런타임 오류에 대한 경고를 제공한다. 이러한 도구를 사용하면 소프트웨어의 안전성과 완성도를 높여 사용자에게 소프트웨어에 대한 신뢰성을 제공할 수 있다.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com