무효 클릭 IP 추적 중...
c#

compile time(컴파일 타임) vs runtime(런타임) 차이

꼬예 2022. 4. 28.

이번 포스팅을 통해 컴파일 타임(compile time)런타임(runtime)의 의미가 무엇인지 알아보고,

각 타임에 해당되는 compile errorruntime error도 함께 알아보도록 하겠습니다.

 

 

1. compile time 이란?

우리가 작성한 소스코드가 컴파일(compile)란 과정을 통해 기계가 읽을 수 있는 형태로 변환되는 과정을 컴파일 타임이라고 합니다.

 

기계가 읽을 수 있는 형태로 우리가 흔히 .exe파일을 들 수가 있는데요.

c# 프로젝트 아래 경로에 들어가보면 .exe파일을 발견할 수 있습니다.

이 파일이 기계가 읽을 수 있는 형태인것이죠.

 

compile error란?

compile중 발생되는 에러를 의미합니다.
대표적으로 syntax error가 여기에 해당됩니다.

syntax 에러란 우리가 사용하는 언어 문법에 맞지 않는 코딩을 했을 경우 발생하는 에러를 의미합니다. 

가령 파이썬을 기준으로 예를 들어보면,

아래와 같이 소괄호로 닫아야 하는데 상황에서 중괄호로 닫아 버리는 경우 입니다.

print('hello world'}

output:

 

 

이외에도 요즘 ide에서는 실행전에 빨간줄로 오류를 알려주는데요.

이러한 오류들이 compile error입니다.

2. run time 이란?

compile time이 후 프로그램이 동작되어지는 때를 runtime 이라고 합니다.

앞서 말한 exe파일을 동작시키는 과정입니다.

runtime error란?

runtime에러는 실행이 되어야만 확인이 가능한 에러입니다. 

즉, compile 중에는 감지하지 못하는 에러들입니다. (ide상 빨간줄로 뜨지 않죠)



파이썬 기준으로 예를 들어보자면,

4개의 숫자를 가진 리스트(배열)이 있습니다. 

list_1 = [1,2,3,4]
print(list_1[100])


그런데 100번째 값을 읽으려고 하니 발생되는 에러입니다.

분명 문법적(syntax)으로는 오류가 없지만 막상 실행을 해보니 발생되는 에러입니다.

output:

 


이 뿐만아니라 대표적으로 0으로 값을 나누는 경우도 런타임 에러에 해당합니다.

a = 100
b = 0
print(a/b)

output:



분명 문법적으로 오류가 없지만 막상 뚜껑을 열어보니 발생되는 에러인거죠

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글