중급 TypeScript - 오류 처리: null 및 undefined 다루기

오류 처리: null 및 undefined 다루기

타입스크립트에서 오류 처리는 코드의 안정성과 신뢰성을 높이는 중요한 요소입니다. 특히 nullundefined는 자주 발생하는 문제로, 이를 적절히 관리하지 않으면 예기치 않은 런타임 오류가 발생할 수 있습니다. 이 섹션에서는 타입스크립트에서 오류를 처리하고 nullundefined를 안전하게 다루는 방법에 대해 알아보겠습니다.

1. 기본 개념

  • 오류 처리: 프로그램 실행 중 발생할 수 있는 다양한 오류를 관리하는 과정입니다. 일반적으로 try-catch 문을 사용하여 예외 상황을 포착하고 적절한 조치를 취합니다.

  • null과 undefined:

    • null: 의도적으로 값이 없음을 나타내는 데이터 타입입니다.
    • undefined: 변수가 선언되었지만 초기화되지 않았거나 존재하지 않는 속성에 접근할 때 반환되는 값입니다.

2. null과 undefined의 차이점

  • 정의
    • null: 개발자가 명시적으로 "여기에 아무것도 없다"라고 설정한 상태
    • undefined: 변수나 속성이 아직 정의되지 않았거나 값이 할당되지 않은 상태

예를 들어:

let a: number | null = null; // 명시적으로 '없음'으로 설정
let b: number | undefined; // 초기화 되지 않아 '정의되지 않음'

3. 오류 처리 방법

타입스크립트에서 오류 처리를 위해 주로 사용하는 구조는 다음과 같습니다:

  1. try-catch 문

    function divide(a: number, b: number): number {
        try {
            if (b === 0) throw new Error("0으로 나눌 수 없습니다.");
            return a / b;
        } catch (error) {
            console.error(error.message);
            return NaN; // 실패 시 NaN 반환
        }
    }
    
    console.log(divide(10, 0)); // "0으로 나눌 수 없습니다."
    
  2. Optional Chaining (?.)

    Optional chaining은 객체의 깊은 속성에 접근할 때, 해당 속성이 존재하지 않을 경우 에러 없이 undefined를 반환하도록 도와줍니다.

    interface User {
        name?: string;
        age?: number;
    }
    
    const user: User = { name: "Alice" };
    
    console.log(user.age?.toString()); // undefined (age가 없으므로)
    
  3. Nullish Coalescing Operator (??)

    이 연산자는 좌측 피연산자가 null 또는 undefined일 때만 우측 피연산자를 반환합니다.

    let username = null;
    let defaultName = "Guest";
    
    let displayName = username ?? defaultName; 
    
    console.log(displayName); // "Guest"
    

4. 사용자 정의 타입 가드

사용자 정의 타입 가드는 특정 조건을 통해 변수가 어떤 타입인지 확인하는 기능을 제공합니다.

function isNonNull<T>(value: T | null): value is T {
    return value !== null;
}

const data: string | null = getData(); 

if (isNonNull(data)) {
    console.log(data.toUpperCase()); // data가 non-null일 경우 호출 가능 
} else {
    console.warn("데이터가 없습니다."); 
}

결론

타입스크립트에서 올바른 오류 처리와 함께 null, undefined 값을 안전하게 다루는 것은 매우 중요합니다. 이러한 기술들을 활용하면 코드를 더 견고하고 유지 보수하기 쉬운 형태로 만들 수 있습니다. 위에서 소개한 기법들을 바탕으로 실제 프로젝트에서도 적극 활용해 보세요!

Subscribe to shimdh.log

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe