반디앤루니스 인터넷서점

네비게이션 실시간 인기 책

    해들리 위컴의 R 패키지 코드를 작성하고, 테스트하고, 문서화하고, 공유하라

    원제 : R Packages: Organize, Test, Document, and Share Your Code

    • 해들리 위컴 저
    • 정우준 역
    • 제이펍
    • 2019년 05월 30일
    • 정가
      20,000원
    • 판매가
      20,000원 [0% 할인]
    • 결제 혜택
      무이자
    • 적립금
      600원 적립 [3%P]

      NAVER Pay 결제 시 네이버페이 포인트 5% 적립 ?

    • 배송구분
      업체배송(반디북)
    • 배송료
      무료배송
    • 출고예정일

      출고예정일 안내

      ※ 출고예정일은 도서 재고상황에 따라 변동될 수 있습니다.

      close

      2026년 10월 07일(WED)

      ※ 출고예정일은 도서 재고상황에 따라 변동될 수 있습니다.

    수량
    바로 구매 쇼핑카트 담기 위시리스트
    회원리뷰
    - [0]
    ISBN: 9791188621613 232쪽 188 x 245 (㎜)

    지금 이책은

    이 분야의 베스트셀러

    출판사 리뷰

    자신의 R 패키지를 작성하려는 사람을 위한 최적의 안내서!

    자신의 R 코드를 다른 사람들이 쉽게 다운로드하고 사용할 수 있는 패키지로 전환하라. 이 책은 해들리 위컴의 실용적인 패키지 개발 철학에 따라 재사용 가능한 R 함수, 예제 데이터, 그리고 문서를 함께 묶는 방법을 보여준다. 이 과정에서 devtools, roxygen, 그리고 공통적인 개발 업무를 자동화하는 패키지 집합인 testthat을 배우게 된다. devtools는 해들리가 이 프로그래밍 언어로 작업하면서 얻은 수년간의 경험에서 체득한 모범 사례를 집대성한 것이다.

    다양한 배경을 가진 개발자, 데이터 과학자, 그리고 프로그래머에게 이상적인 이 책은 기초부터 시작하여 순차적으로 패키지 작성 역량을 개선할 수 있도록 도와준다. 따라서 여러분은 패키지 구조에 대한 고민 없이 패키지로 하고자 하는 것에만 집중할 수 있을 것이다.

    이 책의 주요 내용
    ? 비그넷과 단위 테스트를 포함하여 R 패키지에서 가장 유용한 구성 요소
    ? 가능한 모든 것을 자동화하기 위한 devtools 활용 방법
    ? 함수를 파일로 구성하는 것처럼 좋은 스타일에 대한 팁
    ? devtools로 개발 프로세스를 능률화하는 방법
    ? 포괄적 R 아카이브 네트워크(CRAN)에 자신의 패키지를 제출하는 최선의 방법
    ? ggplot2, dplyr, 그리고 tidyr을 포함한 30개의 R 패키지를 개발한, R 커뮤니티 핵심 인물의
    수준 높은 경험

    추천글

    이 책은 실용적이며, R을 이용하여 고품질 소프트웨어를 구축하기 위한 실질적인 안내서이다. ‘다음 레벨에 도달하기’ 위해 노력하는 R 프로그래머라면 누구나 이 책을 읽기 바란다.
    _ 웨스 맥키니(Wes McKinny), pandas 창시자

    저자 소개

    해들리 위컴

    저자 : 해들리 위컴
    tudio의 수석 과학자로서 30개가 넘는 R 패키지를 작성하였으며, 데이터 변형과 시각화에 관련된 도구를 개발하여 ‘John Chambers Award for Statistical Computing’을 수상하기도 하였다. 또한, 데이터 과학 분야에서 R 사용을 장려하는 작가이자 교육자인 동시에 영향력 높은 R 커뮤니티의 핵심 인물이기도 하다. 지은 책으로는 《해들리 위컴의 Advanced R》, 《R을 활용한 데이터 과학》, 《ggplot2》 등이 있다.

    역자 : 정우준
    대학에서 경영학 박사 과정을 수료하였다. 회계학에 빅데이터와 데이터 과학을 접목하기 위한 노력하고 있으며, R 사용자의 저변 확대를 위해 한국R사용자커뮤니티(R Korea)를 운영하고 있다. 또한, R 시스템 메시지와 R 재단의 공식 문서를 번역하는 R 한글화 팀(R-ihelp)과 자유 소프트웨어 운동을 위한 GNU Korea의 멤버로도 활동하고 있다. 최근에는 오픈 사이언스에 관심을 갖고 W3 재단의 Open Science Community를 개설하여 의장으로서 커뮤니티 활성화를 모색하고 있다.

    역자 소개

    정우준

    대학에서 경영학 박사 과정을 수료하였다. 회계학에 빅데이터와 데이터 과학을 접목하기 위한 연구를 하고 있으며, R 사용자의 저변 확대를 위해 한국 R 사용자 커뮤니티(R Korea)를 운영하고 있다. 또한, R 시스템 메시지와 R 재단의 공식 문서를 번역하는 R 한글화 팀(R-ihelp)과 자유 소프트웨어 운동을 위한 GNU Korea의 멤버이다. 은퇴 후에는 여행 작가를 꿈꾸고 있다.

    책 속에서

    이 책은 자동화할 수 있는 것은 자동화해야 한다는 패키지 개발에 대한 필자의 철학을 담고 있다. 손으로 하는 작업은 가급적 줄이고 함수로 대체하라. 목표는 패키지 구조에 대한 세세한 사항에 대해 고심하는 것이 아니라 패키지에 필요한 기능이 무엇인지 생각하는 데 더 많은 시간을 할애하는 것이다. _4p

    비네트(vignette)는 길이가 긴 패키지 설명서이다. 함수 문서는 필요한 함수의 이름을 알고 있는 경우에는 매우 유용하지만, 그렇지 않으면 쓸모가 없다. 비네트는 책의 장(chapter)이나 학술 논문 같은 것으로, 패키지가 해결하도록 설계된 문제를 설명하고 독자에게 그 해결 방법을 보여준다. 비네트는 유용한 범주로 함수를 구분하고 문제를 해결하기 위해 여러 함수를 조절하는 방법을 보여준다. 비네트는 패키지의 세부 사항을 설명하려는 경우에도 유용하다. 예를 들어, 복잡한 통계 알고리즘을 구현한 경우, 패키지의 사용자가 상황을 이해하고 알고리즘을 올바르게 구현했는지 확인할 수 있도록 모든 세부 정보를 비네트에 기술할 수 있다. _71p

    때로는 테스트를 수행하는 것이 불가능하다. 왜냐하면 인터넷에 연결되어 있지 않거나 중요한 파일이 누락되었을 수 있기 때문이다. 불행히도 다른 가능성 있는 이유는 간단한데, 즉, 코드를 작성하는 데 사용하는 머신이 많을수록 모든 테스트를 실행하지 않을 가능성이 커진다는 것이다. 간단히 말해서, 테스트에 실패를 경험하기보다 건너뛰고 싶을 때가 있다. 이를 위해 skip() 함수를 사용할 수 있다. 이 함수는 오류를 내기보다는 단순히 출력에 S를 인쇄한다. _93p

    이 보고서는 EXC_BAD_ACCESS 때문에 충돌이 발생했다는 것을 알려준다. 이와 같은 충돌은 C/C++ 코드에서 가장 일반적인 유형 중 하나이다. lldb는 문제를 일으킨 C++ 코드 줄을 정확히 보여준다. 즉, vw-distance.cpp:54를 말한다. 흔히 문제가 발생한 곳을 아는 것만으로 문제를 해결할 수 있다. 그러나 현재 대화식 프롬프트에 있기도 하다. 이 프롬프트에서 진행 내용을 알아보기 위해 실행할 수 있는 명령이 많이 있다. 가장 유용한 것들은 다음과 같다. _129p

    이제 Git을 설치하고 구성했으므로 사용할 수 있다! 패키지로 GitHub를 사용하려면 로컬 레포지토리(짧게 레포(repo)라고 함)를 초기화해야 한다. 이렇게 하면 구성 파일을 저장하는 .git 디렉터리와 코드의 변경 사항을 기록하는 데이터베이스가 만들어진다. 새로운 저장소는 컴퓨터에만 존재하는 것인데, 곧 다른 사람들과 공유하는 법을 배울 것이다. _147p

    자신의 패키지가 R 커뮤니티에서 관심을 끌고자 한다면 CRAN에 패키지를 제출해야 한다. CRAN에 제출하는 것은 GitHub에 제공하는 것보다 훨씬 큰 작업이지만, CRAN은 검색 가능성, 설치 용이성, 그리고 신뢰성 증명을 제공하므로 대부분의 R 사용자는 GitHub에서 패키지를 설치하지 않는다. CRAN 제출 과정은 실망스러울 수 있지만 가치 있으며, 이 장은 가능한 한 그 어려움을 덜어줄 것이다. _189p

    목차

    1부 시작하기_1
    1장 서론_3
    철학 4
    시작하기 5
    편집 규칙 6
    출간 방법 7

    2장 패키지 구조_8
    패키지 이름 짓기 8
    패키지 만들기 10
    RStudio 프로젝트 12
    패키지란 무엇인가? 15
    라이브러리란 무엇인가? 20

    2부 패키지 구성요소_23
    3장 R 코드_25
    R 코드 워크플로 25
    사용자 함수 구성하기 26
    코드 스타일 27
    고수준 코드 32
    CRAN 노트 37

    4장 패키지 메타데이터_39
    의존성: 패키지가 필요로 하는 것은 무엇인가? 40
    Title과 Description: 자신이 만든 패키지가 하는 역할은 무엇인가? 44
    Author: 저자는 누구인가? 45
    라이선스: 패키지를 사용할 수 있는 사람은 누구인가? 47
    버전 49
    다른 구성요소 50

    5장 객체 문서화_52
    문서화 워크플로 53
    대안적 문서화 워크플로 55
    roxygen 주석 56
    함수 문서화 59
    데이터 세트 문서화 60
    패키지 문서화 61
    클래스, 제너릭, 그리고 메서드 문서화 61
    특수문자 65
    반복 작업 65
    텍스트 포맷 참조 시트 68

    6장 비네트: 길이가 긴 문서_71
    비네트 워크플로 72
    메타데이터 73
    Markdown 74
    knitr 78
    개발 사이클 81
    비네트 작성을 위한 조언 82
    CRAN 노트 83
    다음에 할 것 84

    7장 테스트하기_85
    테스트 워크플로 87
    테스트 구조 88
    익스펙테이션 89
    테스트 작성 91
    테스트 파일 96
    CRAN 노트 96

    8장 네임스페이스_97
    동기 97
    검색 경로 99
    네임스페이스 101
    워크플로 103
    Exports 103
    Imports 106
    컴파일된 함수 108

    9장 외부 데이터_109
    내보내진 데이터 110
    내부 데이터 112
    원시 데이터 112
    다른 데이터 113
    CRAN 노트 114

    10장 컴파일된 코드_115
    C++ 116
    C 120
    컴파일된 코드의 디버깅 128
    makefiles 130
    다른 언어 131
    라이선싱 131
    개발 워크플로 132
    CRAN과 관련된 문제 132

    11장 설치된 파일_134
    패키지 인용 135
    다른 언어 137

    12장 다른 구성요소_138
    데모 139

    3부 모범 사례_141
    13장 Git과 GitHub_143
    RStudio, Git, 그리고 GitHub 145
    초기 설정 146
    로컬 Git 레포지토리 생성 147
    변경 사항 확인 149
    변경 사항 기록 150
    커밋 모범 사례 153
    파일 무시 154
    실수 되돌리기 155
    GitHub와 동기화 157
    GitHub 사용의 이점 158
    다른 사람과 작업하기 160
    이슈 162
    브랜치 162
    풀 리퀘스트 만들기 164
    다른 레포에 풀 리퀘스트 제출하기 166
    풀 리퀘스트의 검토와 수락 168
    더 알아보기 169

    14장 자동화된 검사_171
    워크플로 171
    검사 173
    Travis로 모든 커밋 이후 검사하기 186

    15장 패키지 릴리스_189
    버전 번호 190
    이전 버전과의 호환성 190
    제출 과정 193
    CRAN 정책 197
    중요한 파일 198
    릴리스 201
    실패한 경우 202
    패키지 게시 204
    축하한다! 204

    찾아보기 206

    배송 시 유의사항

    - 반디앤루니스에서 구매하신 도서는 물류 대행 위탁업체 웅진 북센을 통해 배송됩니다.
     (배송 포장에 "웅진 북센"으로 표기될 수 있습니다.)

    - 구매한 상품의 품질과 배송 관련 문의는 반디앤루니스로 문의 바랍니다.

    - 천재지변 및 택배사의 사정에 따라 배송이 지연될 수 있습니다.

    - 결제(입금) 완료 후 출판사 및 유통사의 사정으로 품절 또는 절판 되어 상품 구입이 어려울 수 있습니다. (별도 안내 예정)

    - 도서산간지역의 경우 추가 배송비가 발생될 수 있습니다.

    반품/교환

    상품 설명에 반품/ 교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다)

    반품/교환

    반품/교환
    반품/교환 방법 홈 > 고객센터 > 자주찾는질문 “반품/교환/환불” 안내 참고 또는 1:1상담게시판
    반품/교환 가능 기간 반품,교환은 배송완료 후 7일 이내, 상품의 결함 및 계약내용과 다를 경우 문제발견 후 30일 이내에 신청가능
    반품/교환 비용 변심 혹은 구매착오의 경우에만 반송료 고객 부담(별도 지정 택배사 없음)
    반품/교환 불가 사유
    • 소비자의 책임 사유로 상품 등이 손실 또는 훼손된 경우
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    • 복제가 가능한 상품 등의 포장을 훼손한 경우 : 예)만화책, 잡지, 화보집 등
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    • 해외주문 상품(해외 원서)의 경우(파본/훼손/오발송 상품을 제외)
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
      소비자 분쟁해결 기준(공정거래위원회고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
      소비자 보호에 관한 법률에 따라 처리함
    반품/교환 주소 경기도 파주시 문발로 77, 웅진북센(반디앤루니스)
    • 회사명 : (주)서울문고
    • 대표이사 : 김홍구
    • 개인정보 보호책임자 : 김홍구
    • E-mail : bandi_cs@bnl.co.kr
    • 소재지 : (06168) 서울 강남구 삼성로 96길 6
    • 사업자 등록번호 : 120-81-02543
    • 통신판매업 신고번호 : 제2023-서울강남-03728호
    • 물류센터 : (10881) 경기도 파주시 문발로 77 반디앤루니스
    copyright (c) 2016 BANDI&LUNI'S All Rights Reserved