기존 CSV 파서는 데이터 내 쉼표를 구분자로 오인해 TSV 파일을 정확히 처리하지 못하는 문제가 있었습니다. 이에 발표자는 루비의 ‘최소 놀람의 원칙’에 따라 CSV
라이브러리에 CSV.read
와 유사한 TSV.read
메서드 추가를 제안했습니다. 초기 풀 리퀘스트(PR)는 기능 중복과 광범위한 변경으로 거부되었고, 이는 핵심 라이브러리 기여 시 반복적인 개선과 변경 사항 분할의 중요성을 깨닫게 했습니다.
성공적으로 병합된 PR은 루비의 객체 지향 특성인 상속을 활용했습니다. CSV
클래스를 상속받는 CSV::TSV
클래스를 생성하여, 단 세 줄의 코드로 기존 CSV
메서드를 재사용하며 기본 구분자를 탭으로 재정의했습니다. 이는 코드 재사용성을 극대화하고 중복을 최소화하는 객체 지향 설계의 강점을 입증했습니다. 네임스페이스 결정도 중요했는데, 전역 TSV
클래스는 표준 라이브러리 오염 위험 때문에 CSV
아래에 CSV::TSV
로 중첩시키는 것이 안전하다고 결정되었습니다. 기능의 정확성을 위한 철저한 테스트도 강조되었습니다.