Skip to content

Latest commit

 

History

History
56 lines (32 loc) · 2.95 KB

컴파일타임과 런타임.md

File metadata and controls

56 lines (32 loc) · 2.95 KB

컴파일타임과 런타임

컴파일 타임

프로그램 개발 시 개발자는 먼저 소스코드를 작성한다. 소스코드는 프로그램의 동작 방식에 대해 정의한 것이다.
소스 코드가 실행 가능한 프로그램이 되려면 반드시 컴퓨터가 인식할 수 있도록 머신 코드로 컴파일 되어야 한다.
이런 편집 과정(compilation process)을 컴파일 타임이라고 한다.

런타임

컴파일된 프로그램이 사용자에 의해 실행되는 것, 그것을 런타임 이라고 한다.

Compile Error

컴파일 에러는 컴파일러(compiler)에 의해 발생되는데, 소스 코드의 에러(문법적 오류)를 통해 프로그램이 원활하게 컴파일링이 되지 못하는 상황을 말한다. 일반적으로 컴파일러가 소스 코드의 어떤 부분에서 에러가 발생했는지 개발자에게 알려준다.
IDE 사용 시 IDE에서 문법 오류가 발생하면 빨간줄을 표시하여 오류임을 발생시킨다.

Compile Error 예시

  • 잘못된 변수나 인자값의 사용.

  • 선언되지 않은 변수의 사용.

  • 중괄호({})의 누락.

  • 세미콜론(;)의 누락.

RunTime Error

프로그램 실행중에 발생하는 에러.
런타임 에러는 프로그램이 성공적으로 컴파일 되어 실행된 이후(런타임 상태)에 발생하는 에러이다.
런타임 에러의 증상으로 프로그램이 개발자가 의도한 대로 작동하지 않거나, 아예 동작하지 않는다.

런타임 에러는 문제가 있는 코드가 실행되어야만 발생한다. 개발자가 꼼꼼하게 체크하지 못하면 개발이 완료된 이후에도 한동안 에러를 발견하지 못할 수도 있다. 따라서 테스트 코드를 통한 사전 검증 과정이 필요하다.

RunTime Error 예시

  • 개발자가 의도하지 않은 메시지 출력.

  • 프로그램이 시스템 메모리를 과다하게 점유하여 메모리 누수(memory leak) 발생.

  • NullPointerException.

  • 무한루프.

  • 0으로 나누었을 경우.

RunTime Error가 Compile Error에 비해 찾아내기 어려운 이유

프로그램이 컴파일 되려면 개발자는 개발에 사용하는 소스 코드의 언어(C, Java 등)가 요구하는 문법 구조에 맞추어 코드를 작성해야 한다. 컴파일 에러는 대부분 문법적 오류에 의해 발생하기 때문에 컴파일 에러는 쉽게 파악 및 수정이 가능하다.

런타임의 경우 소스 코드가 실행되는 상황이다. 실행 과정에서 데이터 입출력이 빈번하게 발생하는데, 이 때 런타임 에러가 발생하면 명확한 에러 발생 지점을 찾아내기 어렵다. 과장을 보태면 수많은 인파 속에서 특정 인물을 찾는 것이기 때문이다.

참고