본문 바로가기

안녕하세요!

프로그래밍 언어/CAP

[ CAP ] What is the 'CSV'?

CSV(Comma Separated Values)


 

CSV 개념


 

CSV란, 표 형태의 데이터를 저장하는 파일 형식이다.

하나의 CSV 파일은 하나의 독립된 2차원 데이터를 나타낸다.
각 줄은 하나의 행(row)에 해당하고, 각 열(column) 사이에는 쉼표(,)를 넣어 구분하며,
이때 모든 행은 같은 개수의 열을가져야 한다.

줄 바꿈 문자라는 라인 피드(Lf) 또는 캐리지 리턴-라인 피드(CRLF)를 사용한다.  

 

CSV 예시


 

이름 생년 국어 점수 영어점수  수학 점수
Java 2001 2 1 99 88 77
Node 2003 8 17 100 90 80

 

이름,생년,월,일,국어 점수,영어 점수,수학 점수
Java,2001,2,1,99,88,77
Node,2003,8,17,100,90,80

 

표에 나와 있는 정보는 위의 CSV 형식으로 나타낼 수 있다.

 

CSV 특징


 

CSV라는 포맷은 표준적으로 정의된 스키마나 데이터 타입이 있는 것이 아니라,
주로 콤마로 구분자를 많이 쓰는 것이지 
구분자를 뭘로 쓰든 데이터를 주고받는 사이에 약속만 지키면 된다. 

 

CSV 장점


 

CSV는 표의 형태를 직관적으로 나타내는 간단한 형식이라 누구나 이해하기 쉽고,
다른 복잡한 포맷에 비해 별다른 Parser/Incoder가 불필요
기초적인 문자열 조립만으로 읽거나 쓸 수 있기 때문에 소프트웨어로 처리하는 것도 용이하다. 

또한 텍스트 기반 형식이라 사람이 직접 읽고 수정하는 것도 가능하다.

XML과 같은 다른 텍스트 기반형식에 비해 거의 최소에 가까울 만큼 간결하여 차지하는 용략도 적다.  

 

CSV 단점


 

반면에, 데이터에 쉼표가 포함된 내용을 취급하기 어렵다.

만약 천 단위마다 쉼표를 찍어 놓은 데이터를 예를 들어,
100,000을 CSV에 직접 넣으면 추후에 해석할 때 서로 다른 열로 취급되는 문제가 생긴다.

 

CSV 단점 해결법


 

이 경우에는 쉼표가 포함된 문자열을 따옴표로 감싸면 된다.

쉼표 대신 다른 특수문자를 구분자로 쓰는 방법도 있다.
주로 탭 문자(\t)를 구분자로 사용하며, Tab-Separated Values(TSV)라고 부른다.

문자열을 URL escape code로 인코딩하여 콤마를 제거할 수 있으나,
데이터 수신자가 해석에 어려움을 겪을 수 있다.  

 

728x90
반응형

'프로그래밍 언어 > CAP' 카테고리의 다른 글

[ CAP ] Views and Projections  (2) 2023.04.12
[ CAP ] Temporal Database  (0) 2023.04.10
[ CAP ] What is the '@sap/cds/common'?  (4) 2023.03.31
[ CAP ] What is the 'Associations'?  (0) 2023.03.31

loading