한 번 정의하고, 어디서든 신뢰하세요: CtroEnv 딥 다이브

CtroEnv 코어 API는 네 가지 validator factory를 사용합니다. 이를 통해 환경 변수를 간편하게 보호할 수 있습니다.

작동 방식은 다음과 같습니다:

• string() — 텍스트에 사용합니다. URL, 이메일, 포트 또는 특정 길이에 대한 규칙을 추가할 수 있습니다. 사용자 정의 패턴을 위한 regex를 지원합니다.

• number() — 숫자 값에 사용합니다. "3000"과 같은 문자열을 실제 숫자로 변환합니다. 정수, 양수 또는 특정 범위를 강제할 수 있습니다.

• boolean() — true/false 값에 사용합니다. "true"와 같은 문자열이나 "1"과 같은 숫자를 자동으로 처리합니다. 피처 플래그(feature flags)에 사용하기 완벽합니다.

• pick() — 값을 특정 목록으로 제한할 때 사용합니다. 리터럴 타입(literal types)을 생성하여 코드에서 허용되는 문자열이 무엇인지 정확히 알 수 있게 합니다. 오타가 발생하면 수정 사항을 제안하기도 합니다.

모든 validator를 위한 유용한 메서드:

CtroEnv는 다양한 환경에서 작동합니다:

검증에 실패했을 때, CtroEnv는 단순히 멈추지 않습니다. 모든 에러를 수집하여 한꺼번에 보여줍니다. 키(key), 메시지, 그리고 수정 방법 제안까지 포함된 명확한 보고서를 받을 수 있습니다.

최종 출력물은 frozen object입니다. 즉, 구성(configuration)이 읽기 전용이며 런타임 중에 실수로 변경되는 것을 방지할 수 있습니다.

출처: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl