상세 컨텐츠

본문 제목

에러의 종류 - 컴파일에러, 런타임에러

CS/CS

by Chan.94 2022. 7. 8. 21:23

본문

반응형

컴파일 타임(Compiletime)

개발자는 첫째로 소스코드를 작성하고 컴파일(Compile)이라는 과정을 통해 기계어코드로 변환되어 실행 가능한 프로그램이 되며, 이러한 편집 과정을 컴파일 타임(Compiletime)이라고 부른다.

 

런타임(Runtime)

컴파일 과정을 마친 프로그램은 사용자에 의해 실행되어지며, 이러한 응용프로그램이 동작되는 때를 런타임(Runtime)이라고 부른다.


컴파일 타임 에러 (Compiletime Error)

프로그램이 성공적으로 컴파일링 되는 것을 방해하는 신택스 에러(Syntax error) 같은 문제를 말하며, 이런 경우 컴파일러는 컴파일 타임 에러를 발생시키고 일반적으로 문제를 일으킨 소스코드 라인을 지시해준다.

  • 문법 오류 (Syntax Error)

 

런타임 에러 (Runtime Error)

어떤 소스코드가 이미 실행 가능한 프로그램으로 컴파일되었다 할지라도 이것은 여전히 프로그램의 실행 중에 버그를 일으킬 수 있다. 예를 들자면, 예상치 못한 오류 또는 충돌로 동작하지 않을 수 있는데 이렇게 프로그램이 실행중에 발생하는 형태의 오류를 런타임 오류라고 한다.

  • NullPointerException (생성되지 않은 객체를 참조할 때 발생)
  • Infinite Loop(무한 루프)
  • ArithmeticException(0으로 나눴을 때 발생)
  • 메모리 초과

 

런타임 에러는 논리 에러(Logical Error)와 시스템 에러(System Error)로 나눌 수 있다.

 

논리 에러 (Logical Error)

개발자의 논리적 실수에 의해 발생하는 에러이며 덧셈을 해야 하는 상황에서 뺄셈을 하는 것과 같은 논리적인 실수를 말한다. 논리 에러는 '작성자의 의도'에 따라 오류 여부가 판가름되기 때문에 가장 해결하기 어려운 에러이다.

 

* 논리 에러에 대한 생각
운영 중인 시스템이라도 수면 위로 드러나지 않은 논리 에러들이 존재한다. 에러가 없는 시스템은 없다. 단지 수많은 테스트와 안정화 과정을 거치면서 다양한 예외처리와 수정이 되어있을 뿐이다.
시스템을 개발한 개발자와 유지 보수하는 개발자는 다른 사람일 확률이 높다. 이때 최초 개발자의 개발 의도를 파악하는 것이 제일 우선시되어야 한다. 하지만 개발 의도를 파악한다는 것이 생각보다 어렵고 힘들다.
단순한 실수인지, 어떠한 의도가 있는 것인지 등의 다양한 생각이 들게 된다.
필자는 그래서 주석이 중요하다 생각한다. 개발자가 간단하게 작성해놓는 주석한 줄이 다음 사람에게는 길잡이 역할이 될 수 있기 때문이다. 물론 본인이 작성한 소스코드라도 시간이 지나면 처음 보는 소스코드가 되어있을 수 있다..

 

시스템 에러 (System Error)

프로그램 동작 중에 운영체제 또는 하드웨어에 문제가 발생해 프로그램이 정상적으로 동작하지 않는 경우에 발생하는 에러이며 개발자가 처리하기 어렵다.

예를 들어 A시스템에서 B 시스템의 어떤 데이터를 가지고오는 API가 있다고 가정하자. B시스템의 서버가 내려가 있다면 A시스템은 API를 호출하는 도중 에러가 발생할 것이다. 이러한 경우가 시스템 에러에 포함된다.

반응형

'CS > CS' 카테고리의 다른 글

쿠키(Cookie) 세션(Session)  (0) 2022.10.31
정규식(Regular Expression)  (1) 2022.08.24
프로그래밍 사칙연산 부동소수점 오차 (0.1 + 1.1 != 1.2)  (0) 2022.08.16
MSA(MicroService Architecture)  (0) 2022.07.20
[배포] JAR와 WAR  (0) 2022.07.11

관련글 더보기

댓글 영역

>