[typescript] 타입 가드를 사용한 API 응답 유효성 검사

웹 애플리케이션을 개발할 때 API로부터 받은 데이터의 유효성을 검사해야 하는 경우가 많습니다. 특히 타입스크립트를 사용할 때는 API 응답의 형태를 미리 정의해 놓은 인터페이스를 활용하여 응답 데이터의 형태를 검사할 수 있습니다. 하지만 가끔 API가 예상과 다른 형태의 데이터를 반환하는 경우가 있습니다. 이러한 경우를 처리하기 위해 타입 가드를 사용할 수 있습니다.

타입 가드란?

타입 가드(Type Guard)는 특정 타입을 구체적으로 확인하여 해당 타입에 따라 다른 동작을 할 수 있도록 도와주는 TypeScript의 기능입니다. 주로 유니언 타입이나 타입 스위치와 함께 사용됩니다.

예시

아래 예시에서는 서버로부터 받은 응답 데이터가 예상한 형태와 다를 경우 에러를 던지거나 대체 데이터를 사용하는 방법을 보여줍니다.

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

function handleApiResponse(response: any): User {
  if (isUser(response)) {
    return response;
  } else {
    // 예상한 형태와 다른 경우 에러 처리 또는 대체 데이터 리턴
    throw new Error('Invalid user data');
  }
}

function isUser(response: any): response is User {
  return (
    typeof response.id === 'number' &&
    typeof response.name === 'string'
  );
}

위 예시에서 isUser 함수는 responseUser 타입인지를 검사하는 타입 가드 함수입니다. handleApiResponse 함수에서 해당 타입 가드 함수를 사용하여 서버 응답 데이터의 유효성을 검사하고, 유효한 경우에만 해당 데이터를 반환하도록 처리하고 있습니다.

타입 가드를 이용하면 API 응답 데이터의 유효성을 보다 효율적으로 검사할 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다.

마무리

타입 가드를 사용하여 API 응답의 유효성을 검사하는 것은 안정적인 웹 애플리케이션을 개발하는 데 중요한 요소입니다. TypeScript의 강력한 타입 시스템과 타입 가드를 적절히 활용하여 응답 데이터의 유효성을 검사하고 처리하는 방법을 익혀두면 개발 중에 발생할 수 있는 오류를 사전에 방지할 수 있습니다.

참고문헌: