[typescript] 타입스크립트로 작성하는 AWS Lambda 함수 개발 사례

서버리스 아키텍처는 클라우드 기반의 프로젝트에서 인기를 얻고 있으며, AWS Lambda는 이러한 아키텍처를 실현하기 위한 강력한 도구입니다. 이 프로젝트에서는 타입스크립트를 사용하여 AWS Lambda 함수를 개발하는 방법을 알아보겠습니다.

1. 타입스크립트로 AWS Lambda 함수 작성

먼저, 타입스크립트를 사용하여 AWS Lambda 함수를 작성하는 방법을 알아보겠습니다. 다음은 간단한 예제 코드입니다.

// index.ts

interface LambdaEvent {
  someData: string;
}

export async function handler(event: LambdaEvent): Promise<string> {
  return `Received data: ${event.someData}`;
}

이 예제에서는 LambdaEvent라는 타입을 정의하고, handler 함수를 작성하였습니다. handler 함수는 LambdaEvent 타입의 인자를 받고 Promise<string>을 반환합니다.

2. 타입스크립트로 AWS Lambda 배포

타입스크립트로 작성한 AWS Lambda 함수를 배포하려면 먼저 타입스크립트 코드를 JavaScript 코드로 컴파일해야 합니다. 이를 위해 tsc (TypeScript Compiler)를 사용합니다.

tsc index.ts

이 명령을 실행하면 index.ts 파일이 index.js로 컴파일됩니다. 그러면 AWS Lambda 콘솔이나 AWS CLI를 사용하여 이 코드를 AWS Lambda에 배포할 수 있습니다.

3. 타입스크립트로 AWS Lambda 함수 테스트

마지막으로, 타입스크립트로 작성한 AWS Lambda 함수를 테스트하는 방법을 살펴봅시다. 이를 위해 aws-lambda-test와 같은 라이브러리를 사용하여 로컬에서 AWS Lambda 함수를 시뮬레이션할 수 있습니다.

// test.ts

import { handler } from './index';

test('handler function works as expected', async () => {
  const event = {
    someData: 'test data'
  };
  const result = await handler(event);
  expect(result).toBe('Received data: test data');
});

위 코드는 index.ts에 작성한 AWS Lambda 함수를 테스트하는 예제입니다.

마무리

우리는 이제 타입스크립트로 AWS Lambda 함수를 작성, 배포, 그리고 테스트하는 과정을 알아보았습니다. 타입스크립트의 강력한 타입 시스템을 활용하여 AWS Lambda 함수를 개발하면 코드의 안정성을 높일 수 있습니다.

참고 자료