최근 'xprsn'이라는 새로운 자바스크립트 라이브러리가 개발자 커뮤니티에 공개되었습니다. 이 라이브러리는 웹 애플리케이션에서 'user.age > 18'과 같은 비즈니스 로직 표현식을 런타임에 안전하고 효율적으로 평가할 수 있도록 설계되었습니다. 특히, 기존의 유사한 패키지들이 오래되거나 수학 연산에만 특화되어 있던 단점을 보완하며, 1.2KB(gzip 압축 시)의 매우 작은 크기와 제로 의존성을 자랑합니다.
xprsn의 핵심은 표현식을 자바스크립트 코드로 직접 실행하지 않고, 일련의 클로저(closure) 체인으로 컴파일하여 평가하는 방식입니다. 이는 'eval'이나 'new Function'과 같은 위험한 함수를 사용하지 않음을 의미하며, 엄격한 CSP(콘텐츠 보안 정책) 환경에서도 안전하게 동작할 수 있게 합니다. 개발자는 'compile' 함수로 표현식을 한 번 컴파일한 뒤, 'evaluate' 함수를 통해 여러 번 데이터를 바꿔가며 평가할 수 있으며, 필요에 따라 'lower(name)'와 같은 사용자 정의 함수를 쉽게 추가하여 기능을 확장할 수 있습니다.
이 라이브러리는 비즈니스 규칙 엔진, 동적 템플릿 엔진, 사용자 정의 가능한 필터링 로직 등 다양한 시나리오에서 활용될 수 있습니다. 특히, 표현식을 데이터베이스나 설정 파일에 저장하여 사용자가 직접 계산 로직을 편집할 수 있도록 하는 유연성을 제공합니다. 또한, '__proto__', 'constructor', 'prototype'과 같은 민감한 속성 접근을 차단하고 할당 연산자를 지원하지 않아, 전달된 데이터의 무단 변경이나 보안 취약점 발생 위험을 최소화합니다. xprsn은 웹 애플리케이션의 보안과 성능을 동시에 고려하는 현대적인 개발 환경에 적합한 솔루션으로 평가됩니다.