해당 포스트는 'Korea R Conference 2021'에서 발표된 이영록 님의 '데이터 분석가의 R 패키지 개발 경험기' 영상을 보고 정리한 내용입니다.
INTRO
나름 R을 오랫동안 사용해 온 유저이다보니 가능하면 한국에서 진행되는 R 관련 컨퍼런스는 다 참여하려는 편이다. 매년 진행되었던 한국 R 유저 모임이 올해는 온라인으로 진행(스트리밍과 녹화 영상)되었고, 예전 R 패키지를 만들다 포기했던 아픈 기억을 자극하는 발표가 있어 관심을 가지고 시청하게 되었다.
아래는 이영록님이 말씀하신 내용 중, 개인적으로 나중에 필요할 것으로 판단되는 내용들을 남겨놓았다.
다른 발표 내용은 아래 링크에서 확인할 수 있습니다.
R 패키지 개발 시 고려 사항
1. 패키지 로드 순서에 따라 함수 버전이 달라질 수 있다
패키지 로드 순서에 따라 같은 패키지라도 버전이 다를 수 있고, 그로 인해 함수 사용에 문제가 발생할 수 있다. 참고로, 함수의 버전은 가장 마지막에 로드된 패키지 버전을 따르게 된다.
2. 패키지 버전이 바뀌면서 출력이 바뀔 수 있다
외부 패키지를 사용하는 경우, 패키지 버전이 올라가면서 출력 결과의 변화가 생길 수 있다. 예를 들어, tidyr의 버전이 변경되면서 출력 결과의 정렬 순서가 바뀌는 경우가 있었다.
R 패키지 작성 시 유용한 패키지
- 함수 도움말 문서 작성 : roxygen2 패키지
- 코드 테스트 작성 : testthat 패키지
- 패키지 웹사이트 생성 : pkgdown 패키지
데이터 분석가가 배우면 유용한 개발자 관점
1. 체계적인 프로젝트 폴더 구조
분석 작업의 효율화를 위해 일관된 프로젝트 폴더 구조를 가져라. 자신만의 분석 파이프라인을 구축하고 반복되는 부분들을 정형화 한다면 업무 효율을 높일 수 있다. 그 중 프로젝트 폴더의 정형화(템플릿화)는 코드 재사용성과 직관성을 높일 수 있다.
2. 리팩토링
함수 사용 시, 네임 스페이스를 명시하는 것이 좋다. 네임 스페이스의 우선 순위를 고려하고, 함수 사용에 오류를 줄일 수 있다. 또한 코드 가독성을 높여준다. (e.g. correlate()
→ corrr::correlate()
)
메타 프로그래밍을 이용하는 것이 좋다. 하드 코딩을 줄이고 보다 유연한 R함수를 작성할 수 있다. rlang 패키지가 메타 프로그래밍 구현상의 어려움을 많이 해소해 주고 R코드 재사용성 향상에 도움을 준다.
관련링크
[1] Korea R Conference 2021
[2] [Korea R Conference 2021] 이영록, 데이터 분석가의 R 패키지 개발 경험기
[3] 데이터마이닝 with R