For the complete documentation index, see llms.txt. This page is also available as Markdown.

어댑터

어댑터는 다음을 처리하는 책임을 지는 구성 요소입니다 I/O 프로세스 및 외부 통합을 처리합니다. 이들은 비즈니스 로직과 데이터베이스, API, 파일 시스템, 캐시 저장소와 같은 외부 시스템 사이의 다리 역할을 합니다.

목적

어댑터는 외부 의존성의 구현 세부 사항을 추상화하여 다음을 가능하게 합니다:

  • 호환성 - 구현을 쉽게 교체할 수 있음(예: PostgreSQL → MongoDB)

  • 테스트 용이성 - 테스트에서 외부 의존성을 목 처리

  • 격리 - 비즈니스 로직을 인프라 관련 사항과 독립적으로 유지

위치

모든 어댑터 구성 요소는 반드시 프로젝트의 src/adapters 디렉터리 아래에 배치해야 합니다.

src/
└── adapters/
    ├── database/
    ├── storage/
    ├── cache/
    └── external-api/

공유 인터페이스

어댑터는 호환성을 염두에 두고 설계해야 합니다. 다음에 공유 인터페이스를 정의하세요 src/types.ts 그래야 여러 어댑터가 동일한 계약을 구현할 수 있습니다.

예시: 스토리지 인터페이스

메모리 스토리지 어댑터

다음은 테스트나 개발에 유용한 간단한 인메모리 스토리지 어댑터 구현입니다.

디렉터리 구조

구현: component.ts

Redis 스토리지 어댑터

다음은 라이프사이클 관리를 보여주는 프로덕션용 Redis 어댑터입니다.

구현: component.ts

오류 처리: errors.ts

데이터베이스 어댑터 예시

다음은 PostgreSQL 데이터베이스 어댑터 예시입니다.

라이프사이클 메서드

WKC는 자동으로 호출되는 특별한 라이프사이클 메서드를 제공합니다:

  • [Lifecycle.ComponentStarted] 또는 [START_COMPONENT] - 서비스가 시작될 때 호출됨

  • [Lifecycle.ComponentStopped] 또는 [STOP_COMPONENT] - 서비스가 종료될 때 호출됨

라이프사이클 메서드를 사용해야 할 때

어댑터가 다음을 수행해야 할 때 라이프사이클 메서드를 사용하세요:

  • 연결 설정(데이터베이스, 캐시, 메시지 큐)

  • 풀 또는 클라이언트 초기화

  • 상태 확인 수행

  • 종료 시 리소스 정리

  • 연결을 우아하게 종료

모범 사례

1. 오류 처리

항상 연결 오류를 처리하고 의미 있는 사용자 정의 오류를 발생시키세요:

2. 구성

어댑터 설정을 관리하려면 config 컴포넌트를 사용하세요:

3. 로깅

디버깅과 모니터링을 위해 중요한 작업을 로그로 남기세요:

4. 타입 안전성

반환값에 항상 올바른 타입을 지정하세요:

5. 리소스 관리

stop 라이프사이클 메서드에서 항상 리소스를 정리하세요:

어댑터 테스트

다음을 참조하세요 서비스 테스트(WKC) 어댑터 테스트에 대한 자세한 안내는 문서를 참고하세요.

빠른 예시

마지막 업데이트