🔷 브라우저 기반 CSV 데이터 처리 툴

TypeScript 예제

중급 난이도
예제 타입
10/15 등록일

브라우저 기반 CSV 데이터 처리 툴

중급
태그
예제 실습 프로젝트 file-processing csv 타입스크립트 데이터처리
## 프로젝트 개요
웹 브라우저에서 CSV 파일을 안전하게 읽고, 타입별 데이터 변환 후 JSON으로 내보내는 실용적인 예제입니다. 파일 처리 시스템 오류 및 형식 오류를 타입 시스템으로 방어합니다.

## 주요 기능
- CSV 파일 로드 및 검증
- 동적 컬럼 타입 추론
- 데이터 변환 파이프라인
- 사용자 친화적 오류 메시지
- JSON 내보내기 기능

## 사용 방법
1. 파일을 브라우저에서 선택합니다.
2. 자동으로 CSV 형식 검증 후 데이터 처리
3. 변환 결과를 JSON 파일로 다운로드 가능합니다.

## 확장 가능성
- 추가 컬럼 필터링 기능
- 데이터 가공 스테이지 확장
- 다른 포맷(예: XML) 지원
코드 예제
// CSV 처리 도구
interface CsvRow {
  [key: string]: string;
}

type ProcessedData = {
  id: number;
  name: string;
  value: number;
};

function parseCsv(data: File): Promise<ProcessedData[]> {
  return new Promise((resolve, reject) => {
    const fileReader = new FileReader();
    
    fileReader.onload = (event) => {
      if (!event.target) return reject(new Error('파일 읽기 실패'));
      
      try {
        const text = event.target.result as string;
        const rows = text.split('
').map(row => {
          const cols = row.split(',');
          return cols.reduce((acc, val, i) => {
            acc[i] = val.trim();
            return acc;
          }, {} as CsvRow);
        });

        // 타입 추론 및 데이터 변환
        const processed: ProcessedData[] = rows.slice(1).map(row => ({
          id: parseInt(row[0] || '0'),
          name: row[1] || '미지명',
          value: parseFloat(row[2] || '0')
        }));

        resolve(processed);
      } catch (err) {
        reject(new Error(`CSV 파싱 오류: ${(err as Error).message}`));
      }
    };

    fileReader.onerror = () => reject(new Error('파일 읽기 중 오류 발생'));
    fileReader.readAsText(data);
  });
}

// 사용 예시
document.getElementById('fileInput')?.addEventListener('change', async (e) => {
  const input = e.target as HTMLInputElement;
  if (!input.files || !input.files.length) return;

  try {
    const data = await parseCsv(input.files[0]);
    console.log('처리 완료:', data);
    // JSON 내보내기 로직 추가 가능
  } catch (err) {
    alert(`오류: ${(err as Error).message}`);
  }
});
등록일: 2025년 10월 15일 02:35
언어 정보
언어
TypeScript
카테고리
Web
인기도
#7
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요