Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트에서 발생하는 3가지 오류 유형 완벽 정리

자바스크립트로 개발을 하다 보면 예상치 못한 오류를 자주 마주하게 됩니다. 자바스크립트에서 발생할 수 있는 오류는 크게 구문 오류(Syntax Error), 런타임 오류(Runtime Error), 논리 오류(Logical Error) 세 가지로 나눌 수 있습니다. 각 오류의 특징과 발생 원인을 정확히 이해하면 디버깅 시간을 크게 줄일 수 있습니다.

1. 구문 오류(Syntax Errors)

구문 오류는 파싱 오류(parsing error)라고도 불립니다. 전통적인 프로그래밍 언어에서는 컴파일 시점에 발생하지만, 자바스크립트는 인터프리터 언어이기 때문에 코드를 해석(interpret)하는 시점에 발생합니다.

예를 들어 괄호를 닫지 않았거나, 문장 끝에 문법적으로 잘못된 표현을 사용한 경우 구문 오류가 발생합니다. 자바스크립트에서 구문 오류가 발생하면 해당 오류가 포함된 같은 스레드(thread)의 코드만 영향을 받습니다. 즉, 오류가 있는 코드에 의존하지 않는 한 다른 스레드의 나머지 코드는 정상적으로 실행됩니다.

2. 런타임 오류(Runtime Errors)

런타임 오류는 예외(exception)라고도 부르며, 컴파일 또는 해석이 완료된 후 실제로 코드가 실행되는 도중에 발생합니다. 존재하지 않는 변수나 함수를 호출하거나, null 값의 속성에 접근하는 경우 대표적인 런타임 오류가 발생합니다.

예외 역시 발생한 스레드에만 영향을 미치기 때문에, 다른 자바스크립트 스레드는 정상적인 실행을 계속 이어갈 수 있습니다. 런타임 오류는 try...catch 문을 사용해 실행 중에 감지하고 처리할 수 있다는 점이 구문 오류와 다릅니다.

3. 논리 오류(Logical Errors)

논리 오류는 세 가지 오류 중 추적하기 가장 어려운 유형입니다. 이 오류는 구문 오류나 런타임 오류처럼 명시적인 에러 메시지를 남기지 않습니다. 대신 스크립트를 구동하는 로직 자체를 잘못 작성했을 때 발생하며, 프로그램은 멀쩡히 실행되지만 개발자가 의도한 결과와 다른 결과를 반환하게 됩니다.

논리 오류는 프로그램에 어떤 로직을 담을지가 비즈니스 요구 사항에 따라 달라지기 때문에, 일반적인 방법으로는 자동으로 잡아낼 수 없습니다. 따라서 코드 리뷰, 단위 테스트, 단계별 디버깅 등을 통해 개발자가 직접 검증하는 과정이 반드시 필요합니다.

정리

  • 구문 오류: 코드 해석 시점에 발생하며, 해당 스레드의 실행에 영향을 줍니다.
  • 런타임 오류: 실행 도중 발생하는 예외로, try...catch로 처리할 수 있습니다.
  • 논리 오류: 에러 없이 실행되지만 결과가 의도와 달라 직접 검증이 필요합니다.