프로그래밍/Typescript

TypeScript의 유니온 타입: 코드의 유연성과 가독성을 높이는 방법

shimdh 2025. 3. 31. 09:11
728x90

TypeScript는 JavaScript의 상위 집합으로, 정적 타입을 지원하여 개발자들이 더 안전하고 유지보수하기 쉬운 코드를 작성할 수 있도록 돕습니다. 그 중에서도 유니온 타입은 여러 데이터 유형을 하나로 결합할 수 있는 강력한 기능으로, 코드의 유연성과 가독성을 크게 향상시킵니다. 이번 포스트에서는 유니온 타입의 기본 개념부터 활용 방법까지 자세히 살펴보겠습니다.

유니온 타입의 기본 개념

유니온 타입은 변수나 함수 매개변수에 대해 두 개 이상의 서로 다른 타입을 지정할 수 있게 해줍니다. 예를 들어, 어떤 변수가 숫자이거나 문자열일 수 있다면 다음과 같이 정의할 수 있습니다:

let value: number | string;

value = 42;       // 숫자 할당
value = "Hello";  // 문자열 할당

위 코드는 value라는 변수가 number 또는 string 둘 중 하나의 값을 가질 수 있음을 명확하게 보여줍니다. 이처럼 유니온 타입을 사용하면 코드의 유연성을 높이고, 다양한 상황에 맞춰 변수를 쉽게 조정할 수 있습니다.

유니온 타입 활용하기

유니온 타입은 특히 다양한 입력값을 처리해야 하는 함수에서 매우 유용합니다. 예를 들어, 사용자에게 이름이나 나이를 입력받는 함수를 작성한다고 가정해 보겠습니다:

function printInfo(info: string | number): void {
    console.log("입력된 정보:", info);
}

printInfo("Alice"); // 출력: 입력된 정보: Alice
printInfo(30);      // 출력: 입력된 정보: 30

위의 printInfo 함수는 문자열 또는 숫자를 인자로 받을 수 있으며, 각각의 경우에 적절하게 동작합니다. 이처럼 유니온 타입을 활용하면 함수의 재사용성을 높이고, 다양한 데이터 타입을 유연하게 처리할 수 있습니다.

배열과 함께 사용하는 유니온 타입

유니온 타입은 배열에서도 사용할 수 있습니다. 다음 예제에서는 숫자와 문자열이 혼합된 배열을 생성하고 이를 순회하여 각 요소를 출력하는 방법을 보여줍니다:

let mixedArray: (number | string)[] = [1, "two", 3, "four"];

mixedArray.forEach(item => {
    console.log(item);
});

이렇게 하면 배열 내 모든 요소가 올바르게 처리되고 출력됩니다. 유니온 타입을 사용한 배열은 다양한 데이터 유형을 포함할 수 있어, 복잡한 데이터 구조를 다룰 때 매우 유용합니다.

객체와 함께 사용하는 유니온 타입

객체 속성에도 유니온 타입을 적용할 수 있습니다. 아래 예제에서는 객체의 프로퍼티가 서로 다른 데이터 유형으로 설정되는 것을 보여줍니다:

interface User {
    id: number;
    name: string;
    age?: number | string; // 나이는 선택적이며 숫자 또는 문자열 가능
}

const user1: User = { id: 1, name: "John", age: 25 };
const user2: User = { id: 2, name: "Jane", age: "Unknown" };

console.log(user1.age); // 출력 : 25
console.log(user2.age); // 출력 : Unknown

여기서 age 속성은 필수 사항이 아니며(? 기호), 그 값으로는 숫자 혹은 문자열 모두 허용됩니다. 이러한 유연성 덕분에 객체를 정의할 때 다양한 상황에 맞춰 속성을 설정할 수 있습니다.

유니온 타입의 장점

  1. 유연성: 유니온 타입을 사용하면 변수나 매개변수에 여러 타입을 지정할 수 있어, 다양한 상황에 맞춰 코드를 쉽게 조정할 수 있습니다.
  2. 가독성: 코드의 의도를 명확하게 표현할 수 있어, 다른 개발자들이 코드를 이해하기 쉬워집니다.
  3. 안전성: TypeScript의 정적 타입 검사 덕분에, 런타임 오류를 줄이고 코드의 안정성을 높일 수 있습니다.

요약

유니온 타입은 TypeScript에서 매우 중요한 개념으로, 코드 작성 시 더 많은 유연성과 안전성을 제공합니다. 다양한 데이터 유형을 다루어야 하는 상황에서 효과적으로 활용될 수 있으며, 실제 개발 환경에서도 자주 사용됩니다. 이러한 능력을 통해 여러분은 더욱 견고하고 유지보수하기 쉬운 코드를 작성할 수 있을 것입니다. 유니온 타입을 잘 활용하면, 복잡한 데이터 구조를 간결하게 표현하고, 코드의 가독성을 높이는 데 큰 도움이 될 것입니다.

728x90