Node.js의 assert(어설션) 모듈은 함수 검증을 위한 다양한 기능을 제공하는 내장 모듈입니다. 이 모듈은 프로그램 내 불변 조건(invariant)을 확인하는 데 사용되는 여러 함수를 제공하며, null 체크나 다양한 조건 검사에 활용할 수 있습니다.
어설션은 실행 중인 프로그램의 동작에는 어떠한 영향도 주지 않습니다. 단순히 조건을 평가하고, 조건이 충족되지 않을 경우 에러를 발생시키는 역할만 수행합니다.
assert 모듈 설치하기
npm install assert
assert 모듈은 Node.js에 기본으로 내장되어 있기 때문에, 별도로 설치하지 않고 바로 사용할 수 있습니다. 따라서 위 설치 과정은 생략해도 무방합니다.
모듈 가져오기(import)
코드에서 assert 모듈을 사용하려면 먼저 require() 함수로 모듈을 불러와야 합니다.
const assert = require("assert");기본 사용 예제
다음은 assert의 가장 기본적인 사용 예시입니다. x가 y보다 크다는 조건을 검사하지만, 실제로는 3 > 21이 거짓이므로 AssertionError가 발생합니다.
const assert = require('assert');
let x = 3;
let y = 21;
assert(x > y);실행 결과
C:\home\node>> node assert.js
assert.js:339
throw err;
^
AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
assert(x>y)
at Object. (/home/node/mysql-test/assert.js:6:1)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)try-catch로 에러 처리하기
위 예제에서는 에러를 직접 처리하지 않고 시스템에 맡겼기 때문에, 긴 시스템 로그 전체가 출력되었습니다. 이번에는 try-catch 블록을 사용하여 발생한 에러를 직접 처리하는 방법을 살펴보겠습니다.
const assert = require('assert');
let x = 3;
let y = 21;
try {
// 조건 검사
assert(x == y);
}
catch {
// 에러가 발생하면 메시지 출력
console.log(
`${x} is not equal to ${y}`);
}실행 결과
C:\home\node>> node assert.js 3 is not equal to 21
이처럼 try-catch 블록으로 감싸면 AssertionError가 발생했을 때 프로그램이 비정상 종료되지 않고, 원하는 방식으로 에러 메시지를 깔끔하게 출력할 수 있습니다. 실무에서는 테스트 코드 작성 시 이러한 패턴을 자주 활용하게 됩니다.