[typescript] 객체 분해 할당과 프로퍼티 셋터/게터를 사용한 API 설계 방법

서론

TypeScript는 정적 타입을 지원하는 JavaScript의 상위 집합 언어로, 객체 분해 할당(destructuring assignment)과 프로퍼티 셋터/게터(property setter/getter)와 같은 강력한 기능들을 제공합니다. 이러한 기능들을 활용하여 효율적이고 유연한 API를 설계할 수 있습니다. 이번 블로그 포스트에서는 TypeScript의 객체 분해 할당과 프로퍼티 셋터/게터를 사용하여 API를 설계하는 방법에 대해 살펴보겠습니다.

객체 분해 할당을 사용한 API 설계

객체 분해 할당은 객체나 배열을 해체하여 그 값을 개별 변수에 할당하는 것을 말합니다. 이를 통해 API에서 전달되는 객체를 원하는 형태로 분해하고 활용할 수 있습니다. 예를 들어, 다음과 같이 객체 분해 할당을 사용하여 API의 입력 파라미터를 처리할 수 있습니다.

function processUserData({ id, name, age }: { id: number, name: string, age: number }) {
  // 사용자 데이터 처리 로직
  console.log(`사용자 ID: ${id}, 이름: ${name}, 나이: ${age}`);
}

// API를 통해 전달된 데이터
const userData = { id: 1, name: 'John Doe', age: 30 };
processUserData(userData);

위 예제에서는 processUserData 함수의 파라미터로 사용자 데이터 객체를 전달받고 있습니다. 객체 분해 할당을 사용하여 입력 객체의 프로퍼티를 개별 변수에 할당하여 사용할 수 있습니다. 이를 통해 API의 입력 형태를 명확히 정의하고 활용할 수 있습니다.

프로퍼티 셋터/게터를 사용한 API 설계

프로퍼티 셋터/게터를 사용하여 객체의 프로퍼티에 접근하는 방식을 정의할 수 있습니다. 이를 통해 API에서의 데이터 접근을 더욱 유연하게 제어할 수 있습니다. 아래 예시를 참고하여 프로퍼티 셋터/게터를 사용한 API 설계 방법을 살펴봅시다.

class Temperature {
  private _celsius: number = 0;

  get fahrenheit(): number {
    return this._celsius * 1.8 + 32;
  }

  set fahrenheit(value: number) {
    this._celsius = (value - 32) / 1.8;
  }
}

const temp = new Temperature();
temp.fahrenheit = 68; // 프로퍼티 셋터를 통해 온도 설정
console.log(`섭씨 온도: ${temp.fahrenheit}`); // 프로퍼티 게터를 통해 온도 조회

위 예제에서는 Temperature 클래스를 정의하고, fahrenheit 프로퍼티의 프로퍼티 셋터와 게터를 활용하여 화씨 온도와 섭씨 온도를 서로 변환할 수 있습니다.

결론

이번 블로그 포스트에서는 TypeScript의 객체 분해 할당과 프로퍼티 셋터/게터를 사용하여 API를 설계하는 방법에 대해 알아보았습니다. 이러한 기능들을 활용하여 API를 설계할 때, 코드의 가독성과 유연성을 향상시킬 수 있습니다. TypeScript를 활용하여 객체 분해 할당과 프로퍼티 셋터/게터를 적절히 활용하여 효율적이고 강력한 API를 설계해보세요.

참고 자료