[typescript] 객체 분해 할당과 프로퍼티 셋터/게터를 사용한 타입스크립트 코드의 모듈화와 재사용성

타입스크립트(TypeScript)는 객체 분해 할당(object destructuring)과 프로퍼티 셋터/게터(property setter/getter)를 활용하여 모듈화와 재사용성을 높일 수 있는 강력한 기능을 제공합니다. 이러한 기능을 적절히 활용하여 코드를 깔끔하고 유지보수하기 쉽게 구성할 수 있습니다.

객체 분해 할당(Object Destructuring)을 사용한 모듈화와 재사용성

객체 분해 할당은 객체에서 필요한 속성만 추출하여 사용할 수 있도록 해주는 기능입니다. 이를 활용하면 모듈화된 코드에서 필요한 속성들만을 쉽게 가져와 활용할 수 있습니다.

아래는 객체 분해 할당을 사용하여 모듈화된 코드의 예시입니다.

// 모듈화된 코드
export interface UserProfile {
  name: string;
  age: number;
  email: string;
}

export function getUserProfile(): UserProfile {
  // 사용자 정보를 어딘가에서 받아온다고 가정
  const user = { name: 'John', age: 30, email: 'john@example.com' };
  return user;
}

// 다른 파일에서 모듈화된 코드 사용
import { getUserProfile } from './userProfile';
const { name, age, email } = getUserProfile();
console.log(`Name: ${name}, Age: ${age}, Email: ${email}`);

위 예시에서, getUserProfile 함수가 유저 프로필 객체를 반환하고, 이를 객체 분해 할당을 통해 필요한 속성들만을 가져와 사용할 수 있습니다.

프로퍼티 셋터/게터(Property Setter/Getter)를 사용한 모듈화와 재사용성

프로퍼티 셋터/게터는 클래스의 속성에 대한 접근을 제어하고, 유효성을 검사하거나 추가적인 로직을 수행할 수 있도록 해줍니다. 이를 활용하여 모듈화된 코드에서 속성에 접근을 보다 안전하고 편리하게 제어할 수 있습니다.

아래는 프로퍼티 셋터/게터를 사용한 모듈화된 코드의 예시입니다.

// 모듈화된 코드
export class Product {
  private _price: number;

  get price(): number {
    return this._price;
  }

  set price(value: number) {
    if (value < 0) {
      throw new Error('가격은 음수가 될 수 없습니다');
    }
    this._price = value;
  }
}

// 다른 파일에서 모듈화된 코드 사용
import { Product } from './product';
const product = new Product();
product.price = 100; // setter 호출
console.log(product.price); // getter 호출

위 예시에서, Product 클래스의 price 속성에 대한 접근을 프로퍼티 셋터/게터를 통해 제어하고 있습니다.

결론

타입스크립트의 객체 분해 할당과 프로퍼티 셋터/게터를 적절히 활용하여 모듈화와 재사용성을 높이는 방법을 알아보았습니다. 이러한 기능들을 활용하여 코드를 더욱 깔끔하고 유연하게 구성할 수 있으며, 유지보수성을 향상시킬 수 있습니다.

참고 자료: