본문 바로가기
웹 개발/error

컴파일 에러 vs 런타임 에러 차이점

by dani0312 2023. 11. 23.

에러는 크게 컴파일 에러와 런타임 에러로 나눌 수 있다. 

컴파일 에러와 런타임 에러의 차이점은 무엇일까?

 

 

 

 

📌컴파일 에러

컴파일이란?

소스코드를 다른 프로그램이나 기계가 처리하기 용이한 형태로 바꾸는 과정을 말한다.

이런 컴파일을 진행하는 일련의 과정을 컴파일 타임이라 한다.

 

 

 

컴파일에러

컴파일에러는 위의 정의와 같이 컴파일 과정, 즉 컴퓨터가 명령어를 번역하는 와중에 잘못된 명령어를 발견하여 알려주는 것이다.

 

컴파일 에러의 예는 다음과 같다. IDE에서 소스코드를 작성하다 보면 빨간 줄이 그어지는 것을 본 적이 있다. 이것이 컴파일 에러이다. 예를 들면  키워드 'class'를 'cls'와 같이 입력하여도 SyntaxError (문법적 오류) 로 컴파일 에러가 남을 알 수 있다.

 

  • Syntax Error
  • Type 체크 에러 
  • 파일 참조 오류
  • 선언되지 않은 변수 사용

 

런타임 에러보다 훨씬 직관적이고 발견하기 쉬운 에러이다.

 

 

 

 

📌런타임 에러

런타임란?

컴파일 과정을 마친 컴퓨터 프로그램이 실행되고 있는 환경 또는 동작되는 동안의 시간을 말한다.

 

 

 런타임에러

소스코드가 이미 실행가능한 프로그램으로 성공적으로 컴파일이 되었더라도 여전히 프로그램의 실행 중 버그를 일으킬 수 있는데, 이렇게 프로그램의 실행중에 발생하는 형태의 에러가 런타임 에러이다.

 

컴파일 에러의 예는 다음과 같다. 다음 외에도 다양한 예가 존재한다.

 

 

  • 메모리 부족 오류
  • 0나누기 오류
  • 인덱스 오류
  • 타입 오류
  • Null참조 오류

 

 

런타임에러는 소스코드 작성중에 컴파일 에러처럼 바로 알려주는 것이 아니기 때문에 실행을 해보았을 때 에러를 발견할 수 있다. 

 

 

 

컴파일에러는 소스코드 작성 중 발견할 수 있는 에러이고, 이렇게 코드 작성 중 문제는 없으나 실행을 시켰을 때 발생하는 에러는 런타임에러이다. 즉 컴파일에러가 발생하지 않더라도 막상 실행을 시켜보았을 때 코드 상에 어떠한 문제가 있을 때 런타임에러가 발생하는 것이다. 

 

 

 

 

 

 

 

 

 

 

 

 


참고사이트

https://velog.io/@gyrud02/ERROR-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%97%90%EB%9F%AC-%EC%A2%85%EB%A5%98

https://velog.io/@alkwen0996/CS-%EC%BB%B4%ED%8C%8C%EC%9D%BCCompile%EA%B3%BC-%EB%9F%B0%ED%83%80%EC%9E%84Runtime


/* 내가 추가한 코드 */ /* 내가 추가한 코드 끝끝 */