CSV 다루기
csv 라이브러리를 알아봅니다
CSV 다루기은(는) CoddyKit의 무료 Ruby Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ruby Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
CSV란 무엇입니까
CSV(쉼표로 구분된 값)는 표 형식의 데이터를 일반 텍스트로 저장하며, 한 줄에 한 행을 기록하고 필드는 쉼표로 구분합니다. 루비의 표준 csv 라이브러리는 이를 읽고 씁니다.
require 'csv'
row = CSV.parse_line('Alice,30,Engineer')
p rowCSV 문자열 분석하기
CSV.parse는 여러 줄의 CSV 문자열을 행 배열로 이루어진 배열로 변환합니다.
require 'csv'
data = "name,age\nAlice,30\nBob,25"
rows = CSV.parse(data)
p rows머리글 사용하기
headers: true를 전달하면 첫 번째 행이 필드 이름이 되고 각 행을 해시처럼 사용할 수 있습니다.
require 'csv'
data = "name,age\nAlice,30"
CSV.parse(data, headers: true).each do |row|
puts(row['name'])
puts(row['age'])
end행 반복하기
분석된 행을 다른 배열처럼 반복하면서 인덱스로 필드에 접근할 수 있습니다.
require 'csv'
rows = CSV.parse("1,a\n2,b\n3,c")
rows.each { |r| puts "#{r[0]} -> #{r[1]}" }형식 변환하기
converters: :numeric을 사용하면 숫자 필드가 자동으로 정수 또는 실수로 변환됩니다.
require 'csv'
rows = CSV.parse("10,20\n30,40", converters: :numeric)
puts(rows[0][0] + rows[1][1])CSV 생성하기
CSV.generate는 CSV 문자열을 만듭니다. 블록 안에 배열을 추가하면 행이 추가됩니다.
require 'csv'
out = CSV.generate do |csv|
csv << ['name', 'age']
csv << ['Alice', 30]
end
puts out인용 부호와 특수 문자
CSV는 쉼표, 인용 부호 또는 줄 바꿈이 포함된 필드를 자동으로 인용 부호로 감싸 구조를 유지합니다.
require 'csv'
out = CSV.generate do |csv|
csv << ['note', 'Hello, world']
end
puts out사용자 지정 구분자
탭 또는 세미콜론으로 구분된 파일에는 col_sep를 설정합니다. 이렇게 하면 TSV 및 유럽식 CSV 변형을 처리할 수 있습니다.
require 'csv'
rows = CSV.parse("a;b;c", col_sep: ';')
p rows파일에 쓰기
CSV.open에 모드 'w'를 사용하면 행을 파일로 직접 스트리밍합니다.
require 'csv'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'people.csv')
CSV.open(path, 'w') do |csv|
csv << ['name', 'age']
csv << ['Carol', 28]
end
puts(File.read(path))파일에서 읽기
CSV.read는 전체 파일을 행 배열로 불러오며 parse와 동일한 옵션을 받습니다.
require 'csv'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'nums.csv')
File.write(path, "x,y\n1,2\n3,4")
rows = CSV.read(path, headers: true)
puts(rows.first['y'])열 합계 구하기
흔히 필요한 작업은 열을 읽고 집계하는 것입니다. 머리글, 숫자 변환, 매핑을 함께 사용합니다.
require 'csv'
data = "item,price\npen,3\nbook,12"
total = CSV.parse(data, headers: true, converters: :numeric).sum { |r| r['price'] }
puts(total)빠른 확인
row['age']처럼 열 이름으로 CSV 필드에 접근할 수 있게 하는 옵션은 무엇입니까?
복습: CSV 사용하기
표 형식의 데이터를 처리할 수 있습니다:
- 읽기 위한
CSV.parse/CSV.read - 이름이 지정된 필드를 위한
headers: true - 형식이 지정된 값을 위한
converters: :numeric - 쓰기를 위한
CSV.generate/CSV.open - TSV 및 기타 구분자를 위한
col_sep
require 'csv'
p CSV.parse_line('a,b,c')자주 묻는 질문
“CSV 다루기” 강의는 무료인가요?
네 — “CSV 다루기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ruby Academy 강의 전체를 잠금 해제할 수 있습니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“CSV 다루기”에서 뭘 배우나요?
csv 라이브러리를 알아봅니다 브라우저에서 직접 실행하는 실습 코드로 Ruby Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ruby Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ruby Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“CSV 다루기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ruby Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ruby Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- JSON 읽기와 쓰기
- CSV 다루기
- YAML 구성
- 형식 선택