

# 간편 계산기 Lambda 함수
<a name="simple-calc-nodejs-lambda-function"></a>

예를 들어 더하기, 빼기, 곱하기, 나누기의 이진 연산을 수행하는 Node.js Lambda 함수를 사용해 보겠습니다.

**Topics**
+ [간편 계산기 Lambda 함수 입력 형식](#simple-calc-lambda-function-input-format)
+ [간편 계산기 Lambda 함수 출력 형식](#simple-calc-lambda-function-output-format)
+ [간편 계산기 Lambda 함수 구현](#simple-calc-lambda-function-implementation)

## 간편 계산기 Lambda 함수 입력 형식
<a name="simple-calc-lambda-function-input-format"></a>

이 함수의 입력 형식은 다음과 같습니다.

```
{ "a": "Number", "b": "Number", "op": "string"}
```

여기서 `op`는 `(+, -, *, /, add, sub, mul, div)` 중 하나일 수 있습니다.

## 간편 계산기 Lambda 함수 출력 형식
<a name="simple-calc-lambda-function-output-format"></a>

작업이 성공할 경우 반환되는 결과 형식은 다음과 같습니다.

```
{ "a": "Number", "b": "Number", "op": "string", "c": "Number"}
```

여기서 `c`는 계산 결과를 유지합니다.

## 간편 계산기 Lambda 함수 구현
<a name="simple-calc-lambda-function-implementation"></a>

Lambda 함수의 구현은 다음과 같습니다.

```
export const handler = async function (event, context) {
  console.log("Received event:", JSON.stringify(event));

  if (
    event.a === undefined ||
    event.b === undefined ||
    event.op === undefined
  ) {
    return "400 Invalid Input";
  }

  const res = {};
  res.a = Number(event.a);
  res.b = Number(event.b);
  res.op = event.op;
  if (isNaN(event.a) || isNaN(event.b)) {
    return "400 Invalid Operand";
  }
  switch (event.op) {
    case "+":
    case "add":
      res.c = res.a + res.b;
      break;
    case "-":
    case "sub":
      res.c = res.a - res.b;
      break;
    case "*":
    case "mul":
      res.c = res.a * res.b;
      break;
    case "/":
    case "div":
      if (res.b == 0) {
        return "400 Divide by Zero";
      } else {
        res.c = res.a / res.b;
      }
      break;
    default:
      return "400 Invalid Operator";
  }

  return res;
};
```