[typescript] 객체 분해 할당과 프로퍼티 셋터/게터를 활용한 코드의 가독성 높이기

서론

TypeScript를 사용하다 보면 때로는 코드를 더 가독성 있게 만들고 싶을 때가 있습니다. 이를 위해 객체 분해 할당(destructuring assignment)과 프로퍼티 셋터/게터(property setters/getters)를 활용할 수 있습니다. 이번 포스트에서는 어떻게 객체 분해 할당과 프로퍼티 셋터/게터를 사용하여 TypeScript 코드의 가독성을 향상시킬 수 있는지 살펴보겠습니다.

객체 분해 할당(Object Destructuring)

객체 분해 할당은 객체에서 여러 개의 프로퍼티를 추출하여 변수로 할당하는 것을 말합니다.

예를 들어, 아래와 같은 코드가 있다고 가정해봅시다.

const employee = {
  name: 'John Doe',
  age: 30,
  role: 'Developer'
};

const name = employee.name;
const age = employee.age;
const role = employee.role;

console.log(name, age, role);

위 코드는 employee 객체의 각 프로퍼티를 개별 변수에 할당하는데, 이를 객체 분해 할당을 통해 간결하게 표현할 수 있습니다.

const { name, age, role } = employee;

console.log(name, age, role);

이렇게 하면 프로퍼티를 개별 변수에 할당하는 과정이 생략되어 가독성이 향상됩니다.

프로퍼티 셋터/게터(Property Setters/Getters)

프로퍼티 셋터/게터를 사용하면 프로퍼티에 값을 설정하거나 가져올 때 추가 로직을 수행할 수 있습니다. 이를 통해 코드의 가독성을 높일 수 있습니다.

예를 들어, 다음과 같이 클래스가 있다고 가정해봅시다.

class Circle {
  private _radius: number;

  constructor(radius: number) {
    this._radius = radius;
  }

  get radius(): number {
    return this._radius;
  }

  set radius(value: number) {
    if (value < 0) {
      throw new Error('Radius cannot be negative');
    }
    this._radius = value;
  }
}

위 코드에서 Circle 클래스는 _radius 프로퍼티에 대해 셋터와 게터를 정의하고 있습니다. 이를 통해 반지름 값에 음수가 들어오지 않도록 하는 등의 추가 로직을 수행할 수 있습니다.

이러한 방식으로 프로퍼티 셋터/게터를 활용하면 코드의 의도를 명확히 전달할 수 있고, 코드의 안정성을 높일 수 있습니다.

결론

이번 포스트에서는 TypeScript에서 객체 분해 할당과 프로퍼티 셋터/게터를 활용하여 코드의 가독성을 높이는 방법에 대해 알아보았습니다. 이러한 기법을 사용하면 더욱 명확하고 유지보수가 쉬운 코드를 작성할 수 있습니다.

더 많은 정보를 원하시거나 심층적인 내용을 공부하고 싶으시다면 TypeScript 공식 문서를 참고하시기 바랍니다.