본문 바로가기
기타

[기타] csv 파일이란?

by 코딩히어로 2022. 9. 22.
728x90

1

 

기본개념


오늘은 엑셀 작업을 하다 보면 심심치 않게 만나게 되는 csv 확장자에 대해 알아보도록 하겠습니다

CSV는 comma-separated values의 약자로 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터입니다

오래전부터 스프래드시트나 데이터베이스 소프트웨어에서 많이 사용하였으나 세부적인 구현 방법은

각각의 소프트웨어에 따라서 다릅니다

이러한 CSV 파일은 서로 다른 응용프로그램 간에 데이터를 교환하는 데 사용됩니다

즉 보내는 측에서 데이터를 CSV 파일로 만들고 전달하면 받는 측에서는 해당 CSV 파일을 변환해서 보여줍니다

 

 

구조


CSV 파일의 구조는 간단하게 구성되는데 쉼표로 구분된 데이터입니다

즉 사용자 정보가 입력되어 있고 해당 정보를 CSV 파일로 내보낸다고 하면 다음과 같은 데이터가 구성됩니다

이름, 나이, 성별, 연락처, 주소

구성된 데이터 항목에 따라서 CSV 파일은 수천 줄, 또는 각 줄에 더 많은 항목의 텍스트 문자열을 포함합니다

CSV 파일의 상단에 헤더가 없을 수 있으며 일부는 따옴표를 사용하여 데이터의 각 비트를 묶을 수도 있지만

쉼표로 구성되는 것이 기본 원칙입니다

 

일반적으로 CSV 파일의 무결성을 검증할 때에는 한 줄다 콤마 수를 카운트합니다

모든 줄의 콤마 수는 다 같아야 하며 더 적거나 더 많은 줄이 카운트되면 오류로 판단해

제외하는 등의 적절한 처리 알고리즘이 필요합니다

오류의 내용으로는 다음과 같은 경우들이 있습니다

1. 내용에 콤마가 들어가서 한 줄의 콤마 수가 몇 개 늘어나는 경우
2. 줄 바꿈 문자가 누락돼서 한 줄의 콤마 수가 두배로 늘어나는 경우
3. 내용에 줄바꿈 문자가 들어가서 두 줄 이상의 콤마 수가 일반적인 수보다 적은 경우
4. 캐리지 리턴을 인지하지 못해 마지막 필드의 데이터가 깨지는 경우
5. 따옴표가 정상적으로 닫히지 않은 경우
마지막 줄의 라인피드 누락의 경우
첫 줄에 헤더 텍스트가 들어간 CSV를 사용할 때 첫 줄을 건너뛰지 않은 경우

 

 

형식


1. 레코드는 줄 바꿈으로 구분 가능

    => a, b, c, CRLF

    => e, f, g CRLF

2. 파일의 마지막 레코드 끝에 줄 바꿈이 존재 유/무 가능

    => a, b, c CRLF

    => a,b,c CRLF

3. 첫 번째 행에 일반 레코드와 동일한 형식을 가지는 헤더행 표시 가능

    헤더는 파일의 필드에 해당하는 이름을 포함하고 나머지 레코드와 동일한 수의 필드를 포함

    => f_name, f_name, f_name CRLF

    => a, b, c CRLF

4. 각 필드는 따옴표로 묶는 게 가능

    => "a", "b", "c" CRLF

    => e, f, g

5. 필드를 둘러싸는 데 큰 따옴표가 사용된 경우에는 다른 큰 따옴표를 사용해서 필드 안에 표시된 큰 따옴표를 먼저
    처리하고 해당 필드에서 벗어나야 함

    => "a", "b""bb", "c"


2

대표적으로 엑셀에서 문서를 저장할 때 확장자를 선택하는 칸에서 CSV 파일이 있는데

이 부분에 보면 CSV 파일은 쉼표로 분리된 파일이다라고 명시되어 있습니다

즉 CSV 파일은 모든 데이터를 쉼표로 구분해 놓은 다른 응용프로그램과의 데이터 전달을 위한 포맷이다

정도로 이해하면 쉬울 것 같습니다

728x90
반응형

댓글