출처: (https://www.inflearn.com/pages/weekly-inflearn-12)
-- 소프트웨어에서 발생하는 예견치 못한 오류나 오작동을 말한다.
-- 유저가 입력한 내용이 잘못됐을 때 발생하는 문제를 뜻한다. 잘못 작성한 코드처럼 내부 문제로 예상하지 못한 문제가 일어나는 버그와 달리, 예를 들면 숫자만 적도록 되어있는 주민번호 입력창에 영어를 적는다면 에러가 일어나는 것처럼 외부에 있는 유저가 오탈자를 내거나 띄어쓰기를 실수하는 등의 내부에서 정한 형식을 따르지 않을 때 주로 발생한다.
-- 에러(Error)가 일어날 가능성을 개발자가 미리 예상하고 프로그램이 비정상적으로 종료되지 않도록 하는 것을 예외 처리(Exception Handling) 또는 트러블 슈팅(Trouble Shooting)이라고 하며, 이를 통해 예외를 구분하고 유저에게 문제를 바로 잡아달라는 에러 메세지를 띄워주어야 에러로 인한 문제를 예방할 수 있다.
-- 디버깅 또는 디버그(Debug)라고 하며, 프로그래밍 과정에서 발생하는 버그를 찾아 바로 잡는 작업이다. 단순히 버그를 없애는 것뿐만 아니라 문제가 발생한 근본적인 원인을 찾아 해결해나가는 과정을 말한다.
-- 운영 중인 웹 애플리케이션이 문제가 발생했을 경우, 문제의 원인을 파악하려면 문제가 발생했을 때 당시의 정보가 필요하다. 이런 정보를 얻기 위해서 예외가 발생했거나, 중요 기능이 실행되는 부분에서는 적절한 로그를 남겨야 한다. 즉, 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동이다.