본문으로 건너뛰기

assert

assert의 사전적 의미.

to behave in a way that expresses your confidence : 너의 확신을 표현하는 행위라고 해석할 수 있습니다.


코드에서의 assert

프로그래밍에서 어떤 일이 일어나야만 한다는 것을 가정하에 진행할 수 있도록 하는 행위입니다. 코드의 복잡도가 높을 때 "경우의 수를 줄이는 것에 집중한다"라는 측면에서 유용하게 사용될 수 있습니다.

보통은 개발단계에서 디버깅 용도를 위해서 사용하고, 프로덕션 빌드시 해당 코드는 지워지도록 설계되어 있습니다.


자바스크립트에서의 assert

동적언어인 자바스크립트의 경우는 대부분의 것이 런타임에 동적으로 결정됩니다. 따라서 assert 코드로 런타임에 검사하도록 유지하는 것은 여전히 유용합니다.

assert(a !== null, 'a is null')
// 아래에 로직이 있더라도, a가 만약 null이라면,
// assert에 의해서 에러를 표시하고
// 프로세스가 종료될 것입니다.

타입스크립트에서의 assert

asserts 키워드와 함께 타입스크립트로 assert 함수를 구현하는 것은 타입을 좁힐 수 있는 좋은 힌트가 됩니다.

function assert(assertion: unknown, error: string | Error): asserts assertion {
if (!assertion) {
if (error instanceof Error) {
throw error
} else {
throw Error(error)
}
}
}