친근한 Ruby 라이브러리 작성을 위한 주요 가이드라인
강연자는 라이브러리 개발 시 다음 원칙들을 강조합니다.
1. 표준 및 구조
- 
    컨벤션 준수: Ruby의 명명 규칙(언더스코어, 대시), bin/lib파일 구조,test_접두사 테스트 파일 등 표준 컨벤션을 따릅니다.
- 
    버전 관리: Semantic Versioning으로 API 호환성, 기능, 버그 수정 내역을 명확히 전달합니다.
2. 사용자 경험 개선 (Usability)
- 
    예측 가능한 동작: Ruby 관례를 따르고 IO같은 표준 인터페이스를 모방하여 사용자 기대를 충족시킵니다.
- 
    디버깅 및 객체 기능: to_s,inspect로 디버깅 정보를 제공하며,Comparable,Enumerable,hash,eql?구현으로 객체 비교, 컬렉션, 해시 사용을 지원합니다.
- 
    예외 처리: 공통 서브클래스를 사용하고, 문제 원인과 관련 데이터를 예외에 포함하여 디버깅을 돕습니다. 
- 
    Marshalling: 데이터에 버전을 포함하여 Marshal사용 시 호환성을 확보합니다.
3. 유지보수성 확보
- 
    단일 책임: 라이브러리는 하나의 기능을 잘 수행하도록 설계하여 이해와 재사용을 용이하게 합니다. 
- 
    문서/테스트: NEWS형식의 릴리스 노트로 변경 사항을 요약하고, 철저한 테스트 및 추상 테스트 케이스 제공으로 유지보수를 돕습니다.
- 
    C 확장: C 코드를 최소화하고 대부분을 Ruby로 구현하여 유지보수성을 높입니다. 
4. 확장성 고려
- 확장 메커니즘: 콜백(훅), 서브클래싱, 플러그인 시스템을 통해 라이브러리 동작을 유연하게 확장할 수 있는 지점을 제공합니다.
5. 안정적인 릴리스
- 
    정보 제공: README에 라이브러리 설명, 버그 트래커, 예제를 포함하고, 릴리스 노트로 변경 사항을 명확히 전달합니다.
- 
    자동화: HoGem 같은 자동화 도구를 사용하여 테스트, Gem 생성/업로드, 태그 지정 등 모든 릴리스 단계를 처리하여 오류를 줄이고 일관성을 유지합니다.