[typescript] 타입스크립트의 타입 어노테이션을 사용하여 AWS Lambda 함수의 입력 및 출력 유형 정의

서버리스 아키텍처는 AWS Lambda와 같은 서비스를 통해 효율적으로 구축할 수 있습니다. 타입스크립트의 강력한 타입 시스템을 활용하여 Lambda 함수의 입력 및 출력 유형을 명확하게 정의할 수 있습니다.

1. 입력 유형 정의

Lambda 함수의 입력은 이벤트 객체를 통해 전달됩니다. 이벤트 객체의 구조를 인터페이스로 정의하여 타입스크립트의 타입 어노테이션을 사용할 수 있습니다.

interface LambdaEvent {
  key1: string;
  key2: number;
}

위 코드는 LambdaEvent라는 인터페이스를 정의하고, 이벤트 객체의 예상 형태를 설명합니다.

2. 출력 유형 정의

Lambda 함수의 출력도 명확하게 정의할 수 있습니다. 예를 들어, HTTP 응답 형식을 사용하여 출력 유형을 정의할 수 있습니다.

interface LambdaResponse {
  statusCode: number;
  body: string;
}

위 코드는 LambdaResponse라는 인터페이스를 정의하고, Lambda 함수의 응답 형식을 설명합니다.

3. 함수에 타입 어노테이션 적용

이제 이벤트 및 응답 유형을 사용하여 Lambda 함수에 타입 어노테이션을 적용할 수 있습니다.

exports.handler = async (event: LambdaEvent): Promise<LambdaResponse> => {
  // Lambda 함수의 본문
  return {
    statusCode: 200,
    body: "Hello from Lambda!"
  };
};

위 코드에서 event: LambdaEvent는 입력 이벤트의 유형을 지정하고, Promise<LambdaResponse>는 함수의 반환 유형을 나타냅니다.

이와 같이 타입스크립트의 타입 어노테이션을 사용하여 Lambda 함수의 입력 및 출력 유형을 명확하게 정의할 수 있습니다. 이를 통해 코드의 가독성을 높이고 개발자 간의 협업을 용이하게 할 수 있습니다.

참고 문헌: