더북(TheBook)

3.4 패키지 라이브러리 관리하기

R을 이용한 데이터 분석과 시각화에서 패키지 역할은 빼놓을 수 없다. 실제로 R 자체는 아주 작은 핵심 부분과 여러 기본 패키지를 기반으로 구성되어 있기 때문이다. 패키지는 미리 정의된 함수들을 담은 컨테이너이며, 특정 범위의 문제를 해결하고자 충분히 일반화되도록 설계한다.2 잘 만든 패키지를 활용하면 매번 사용하는 코드를 다시 만들 필요가 없으므로 정말 해결하고 싶은 문제에 더 집중할 수 있다.

R의 강력함은 풍부한 패키지 소스뿐만 아니라 Comprehensive R Archive Network(CRAN) (http://cran.r-project.org)라는 잘 관리된 패키지 아카이브 시스템에서 비롯된다. R의 소스 코드와 패키지 수천 개가 이 보관소에 있다. 이 글을 쓰는 시점에 CRAN에는 전 세계 8832명이 넘는 패키지 관리자가 활성 패키지 1만 5523개를 관리한다(2020년 3월 30일 기준). 매주 패키지가 400개 정도 업데이트되며, 2000만 번 이상 내려받는다. 현재 사용 가능한 모든 패키지를 나열한 패키지 표를 https://cran.rstudio.com/web/packages/에서 확인할 수 있다.

CRAN에 있는 패키지 개수를 듣고 너무 놀라지 말자. 너무 많고 적용 범위가 넓지만 그중 일부만 배워도 충분하다. 특정 분야에 초점을 두고 보면 수행할 작업과 관련이 있는 패키지는 10개를 넘지 않을 것이다. 따라서 모든 패키지를 알 필요는 없고(알 수도 없고 그럴 필요도 없다) 가장 유용하고 분야와 관련이 깊은 패키지만 알아도 된다.

앞서 소개한 표에서 패키지를 찾는 것은 전혀 도움이 되지 않는다. 그 대신 CRAN Task Views (https://cran.rstudio.com/web/views/)나 METACRAN(http://www.r-pkg.org)을 방문하면 좋다. 그리고 가장 일반적으로 사용하는 패키지나 자신의 분야와 밀접하게 관련한 패키지를 먼저 배우는 것이 좋다. 특정 패키지 사용법을 배우기 전에 패키지를 어떻게 설치하고 기본적으로 이것이 어떻게 동작하는지 이해해야 한다.

 

 


2 역주 ‘일반화’ 표현은 객체 지향 프로그래밍에서 많이 사용하는 전문 용어로, 서로 비슷한 요소가 있는 것을 하나로 묶는 것을 의미한다. 예를 들어 기능이 비슷한 함수를 여러 개 만드는 대신 공통점을 모아 한 함수가 여러 함수가 하던 일을 모두 처리할 수 있도록 설계하는 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.