프로그래밍/Typescript

TypeScript의 유니온 타입: 유연한 데이터 처리의 힘

shimdh 2025. 4. 14. 21:02
728x90

TypeScript는 정적 타입 언어로, 개발자가 코드의 안정성을 높이고 오류를 줄일 수 있도록 돕습니다. 그 중에서도 유니온 타입은 여러 데이터 형식을 동시에 처리할 수 있는 강력한 기능으로, 개발자에게 큰 유연성을 제공합니다. 이번 포스트에서는 유니온 타입의 개념, 실용적인 예제, 그리고 이를 활용한 코드 작성 방법에 대해 자세히 알아보겠습니다.

유니온 타입의 개념 이해하기

유니온 타입은 TypeScript에서 변수나 함수가 여러 가지 형식의 값을 가질 수 있도록 하는 기능입니다. 기본적으로 파이프(|) 기호를 사용하여 서로 다른 타입들을 결합함으로써, 개발자가 원하는 다양한 형식을 명확하게 정의할 수 있습니다. 예를 들어, 어떤 변수는 숫자 또는 문자열일 수 있습니다. 다음과 같이 정의할 수 있습니다:

let value: number | string;
value = 42;       // 올바른 할당
value = "Hello";  // 올바른 할당

위 예제에서 value라는 변수는 numberstring 두 가지 형식을 가질 수 있습니다. 이러한 유연성 덕분에 개발자는 다양한 상황에서 변수를 보다 자유롭게 사용할 수 있습니다.

실용적인 예제

1. 함수 매개변수

유니온 타입을 사용하는 가장 일반적인 예는 함수의 매개변수입니다. 아래 예시는 매개변수가 유니온 타입인 함수를 보여줍니다. 이 함수는 숫자 또는 문자열을 받아들이며, 이를 통해 다양한 형식의 ID를 처리할 수 있습니다:

function printId(id: number | string) {
    console.log("Your ID is: " + id);
}

printId(101);         // 출력: Your ID is: 101
printId("202A");      // 출력: Your ID is: 202A

이처럼 유니온 타입을 사용하면 함수의 매개변수로 다양한 데이터 형식을 수용할 수 있어, 코드의 재사용성과 유연성을 높일 수 있습니다.

2. 객체 속성

유니온 타입은 객체 내에서도 유용하게 사용됩니다. 객체의 속성이 여러 형식을 가질 수 있도록 하여, 다양한 데이터 구조를 표현하는 데 도움을 줍니다:

interface User {
    id: number | string;
    name: string;
}

const user1: User = { id: 123, name: "Alice" };
const user2: User = { id: "ABC-456", name: "Bob" };

console.log(user1.id); // 출력 : 123
console.log(user2.id); // 출력 : ABC-456

이 예제에서 User 인터페이스는 id 속성이 숫자 또는 문자열일 수 있음을 명시하고 있습니다. 이를 통해 다양한 사용자 ID 형식을 지원할 수 있습니다.

3. 타입 좁히기

유니온 타입을 사용할 때 조건문을 통해 특정 형식으로 좁힐 수도 있습니다. 이는 코드의 가독성을 높이고, 각 데이터 형식에 맞는 처리를 가능하게 합니다:

function logValue(value: number | string) {
    if (typeof value === 'string') {
        console.log("String value:", value.toUpperCase());
    } else {
        console.log("Number value:", value);
    }
}

logValue(100);         // 출력 : Number value : 100 
logValue("hello");     // 출력 : String value : HELLO 

이 예제에서는 value가 문자열인지 숫자인지를 확인하여, 각각에 맞는 방식으로 값을 출력하고 있습니다. 이러한 타입 좁히기 기법은 코드의 안전성을 높이는 데 기여합니다.

요약 및 활용

유니온 타입은 TypeScript에서 매우 중요한 요소로, 복잡한 데이터 구조를 쉽게 다룰 수 있게 도와줍니다. 이를 통해 개발자는 더 안전하고 유지보수가 용이한 코드를 작성할 수 있으며, 다양한 상황에 맞게 데이터를 처리하는 데 큰 도움을 줍니다. 유니온 타입은 특히 API 응답이나 사용자 입력과 같은 불확실성이 있는 데이터에 적합하며, 이러한 특성을 활용하면 더욱 견고하고 신뢰할 수 있는 애플리케이션을 만들 수 있습니다. 유니온 타입을 적절히 활용함으로써, 개발자는 다양한 데이터 형식을 효과적으로 관리하고, 코드의 품질을 높일 수 있습니다.

728x90