Node.js에서의 에러 핸들링과 디버깅 🐞
Node.js에서 코드를 작성하다 보면 예상치 못한 에러가 발생할 때가 있습니다. 이러한 에러들을 효과적으로 다루는 방법을 알아보겠습니다. 이 글은 주니어 개발자들을 위해 복잡한 용어를 최소화하면서 설명합니다.
에러 핸들링이란?
에러 핸들링은 프로그램에서 예상치 못한 문제가 발생했을 때, 이를 적절히 처리하는 방법입니다. Node.js에서는 주로 try...catch
구문과 Promise
의 .catch()
메서드를 사용하여 에러를 처리합니다.
try...catch
사용하기
try...catch
구문을 사용하면 에러가 발생할 수 있는 코드를 try
블록 안에 넣고, 만약 에러가 발생하면 catch
블록이 실행되어 에러를 처리합니다.
try {
// 에러가 발생할 수 있는 코드
const result = riskyOperation();
console.log(result);
} catch (error) {
// 에러 처리
console.error("에러가 발생했습니다:", error);
}
Promise와 .catch()
메서드
비동기 작업을 처리할 때는 Promise
를 사용하는 경우가 많습니다. Promise
에서 발생한 에러는 .catch()
메서드를 사용하여 처리할 수 있습니다.
doSomethingAsync()
.then(result => {
console.log("성공:", result);
})
.catch(error => {
console.error("에러 발생:", error);
});
비동기 함수에서의 에러 핸들링
비동기 함수인 async/await
를 사용할 때는 try...catch
구문을 사용하여 에러를 처리할 수 있습니다.
async function fetchData() {
try {
const data = await fetchSomeData();
console.log("데이터:", data);
} catch (error) {
console.error("데이터를 가져오는 중 에러 발생:", error);
}
}
에러 로깅
에러를 처리할 때, 단순히 콘솔에 에러를 출력하는 것 외에도, 에러 로깅을 통해 에러 정보를 파일이나 데이터베이스에 저장할 수 있습니다. 이는 나중에 에러를 분석하고 문제를 해결하는 데 도움이 됩니다.
const fs = require('fs');
try {
// 에러가 발생할 수 있는 코드
} catch (error) {
// 에러 로깅
fs.writeFile('errorLog.txt', error.stack, (err) => {
if (err) console.error("로그 기록 실패:", err);
else console.log("에러 로그가 기록되었습니다.");
});
}
에러 핸들링은 개발 과정에서 매우 중요한 부분입니다. 위에서 소개한 방법들을 통해 Node.js 애플리케이션에서 발생할 수 있는 에러를 효과적으로 다룰 수 있습니다. 에러 핸들링을 잘 이해하고 적용하면, 더 안정적이고 신뢰할 수 있는 애플리케이션을 개발할 수 있습니다.