[typescript] 파일 형식의 유효성 검사 방법

TypeScript는 정적 타입 검사를 통해 코드의 안정성을 높여주는 강력한 기능을 제공합니다. 그런데 때때로 파일의 형식을 유효성 검사해야 하는 경우도 있습니다. 특히, 파일의 확장자나 내용에 따라 올바른 유형의 파일인지 확인하는 것이 중요할 수 있습니다. 이 포스트에서는 TypeScript에서 파일 형식의 유효성을 검사하는 방법에 대해 알아보겠습니다.

파일 확장자 유효성 검사하기

일반적으로 TypeScript에서 파일 형식을 체크하는 방법 중 하나는 파일 확장자를 통해 유효성을 검사하는 것입니다. 아래의 예시 코드는 파일 확장자를 확인하는 간단한 함수를 보여줍니다.

function isValidFileExtension(fileName: string, validExtensions: string[]): boolean {
  const fileExtension = fileName.split('.').pop();
  if (!fileExtension) {
    return false;
  }
  return validExtensions.includes(fileExtension);
}

const fileName = 'example.txt';
const validExtensions = ['txt', 'csv', 'pdf'];
console.log(isValidFileExtension(fileName, validExtensions)); // true

위 코드에서 isValidFileExtension 함수는 주어진 파일 이름과 유효한 확장자 목록을 받아 파일 확장자의 유효성을 검사합니다.

파일 내용 유효성 검사하기

때로는 파일의 내용을 기반으로 유효성을 검사해야 할 수도 있습니다. JSON 파일인지, XML 파일인지 등을 판단해야 하는 경우가 그 예입니다. 아래의 예시 코드는 파일의 내용을 기반으로 유효성을 검사하는 방법을 보여줍니다.

type FileContent = { fileType: string, content: string };

function isValidFileContent(file: FileContent): boolean {
  if (file.fileType === 'json') {
    try {
      JSON.parse(file.content);
      return true;
    } catch (error) {
      return false;
    }
  } else if (file.fileType === 'xml') {
    // XML 유효성 검사 로직 구현
    return true;
  }
  // 다른 파일 형식에 대한 유효성 검사 로직 추가
  return false;
}

const jsonFile: FileContent = { fileType: 'json', content: '{"name": "Alice", "age": 30}' };
const xmlFile: FileContent = { fileType: 'xml', content: '<person><name>Alice</name><age>30</age></person>' };
console.log(isValidFileContent(jsonFile)); // true
console.log(isValidFileContent(xmlFile));  // true

위 코드에서는 isValidFileContent 함수를 사용하여 파일 내용에 기반하여 유효성을 검사합니다. JSON 파일인 경우 JSON.parse를 사용하여 파싱하고, XML 파일인 경우 XML 유효성을 검사하는 로직을 추가할 수 있습니다.

마치며

이 포스트에서는 TypeScript에서 파일 형식의 유효성을 검사하는 방법에 대해 알아보았습니다. 파일 확장자나 파일 내용을 기반으로 유효성을 검사하는 방법을 예시 코드와 함께 살펴보았습니다. 파일 유효성 검사는 실제 프로젝트에서 매우 중요한 부분이므로, 신중하게 다뤄져야 할 주제입니다.

TypeScript 공식 문서에서 더 많은 정보를 얻을 수 있습니다.