프로젝트 소개
@rapidrest/core 패키지는 RapidREST 생태계에서 RESTful 애플리케이션을 구축하기 위한 공통 유틸리티 및 핵심 기능의 모음입니다. 이 패키지는 의존성 주입, 캐싱, 인증, 메시징, 관측성 및 범용 헬퍼를 포함하여 다른 RapidREST 라이브러리와 서비스에서 사용하는 기초 빌딩 블록을 제공합니다.
**객체 수명 주기 및 의존성 주입**
이 라이브러리에는 폴더 기반 네임스페이스 컨벤션을 사용하여 런타임에 클래스를 동적으로 검색하는 ClassLoader와 경량 DI 컨테이너인 ObjectFactory가 포함되어 있습니다. 의존성은 데코레이터(@Inject, @Config, @Logger)를 통해 주입될 수 있으며, 객체 수명 주기는 @Init 및 @Destroy를 통해 관리됩니다.
**캐싱 및 세션 저장소**
공통 SimpleStore 인터페이스는 TTL 기반 레코드 저장을 지원하며, 프로세스 내 저장소를 위한 MemoryStore와 여러 애플리케이션 인스턴스 간 상태 공유를 위해 Redis 기반으로 작동하는 RedisStore의 두 가지 구현을 제공합니다. loadMany, saveMany, loadSet, saveSet와 같은 벌크 작업이 가능합니다.
**인증 및 유효성 검사**
JWTUtils는 JSON Web Token의 생성, 서명, 검증 및 디코딩을 제공하며, 선택적으로 비밀번호 또는 키 기반의 페이로드 암호화 및 압축을 지원합니다. UserUtils는 역할, 범위 및 조직 멤버십 확인 기능을 제공합니다. ValidationUtils는 이메일, URL, 전화번호, UUID, 시맨틱 버전, IP, 날짜, JSON 등을 위한 검증기 라이브러리를 제공하며 @Validator 데코레이터와 함께 사용할 수 있습니다.
**메시징 및 알림**
MessagingUtils는 공유 템플릿 저장소에서 Handlebars 템플릿 메시지를 이메일, SMS 또는 Slack을 통해 전송합니다. AlertUtils는 파일 첨부와 함께 우선순위 기반 인시던트 알림(P1–P5)을 외부 알림 서비스로 전송합니다. NotificationUtils는 Redis pub/sub를 통해 개별 사용자 채널 또는 모든 구독자에게 실시간 푸시 알림을 게시합니다.
**관측성**
사전 구성된 Winston Logger는 로그 라인에 호출 클래스와 메서드 이름을 자동으로 태그합니다. TelemetryUtils는 애플리케이션 텔레메트리 이벤트를 기록하고 이를 구성된 수집 서비스로 전달합니다.
**일반 유틸리티**
StringUtils, ObjectUtils, FileUtils, OASUtils(OpenAPI 사양 로드, 캐싱 및 쿼리용), CacheUtils(경계 기반 제거 캐시) 및 ApiError 클래스(상태 코드와 템플릿 메시지를 포함한 HTTP 인식 클래스)가 포함되어 있습니다.
**동시성**
ThreadPool은 CPU 개수에 따라 자동으로 크기가 조정되는 Node.js 워커 스레드 풀을 관리하며, 타입 지정 메시지 전달 및 워커 충돌 시 자동 재시작 기능을 제공합니다.
이 패키지는 ESM 전용이며 Node.js >=24.0.0을 대상으로 합니다. 필수 피어 의존성으로는 axios, redis(RedisStore용), reflect-metadata, winston, winston-transport가 있습니다. 메시징 채널은 필요에 따라 선택적 패키지(nodemailer, twilio, @slack/bolt)를 동적으로 로드합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.