타겟

파이프라인(pipeline)은 통계, 분석, 데이터 과학을 수행하는 연산 작업흐름으로 고객 행동 예측, 임상 시험 모의시험, 유전체 데이터에서 차등 발현 감지 등이 다양한 사례를 찾을 수 있다. 파이프라인에 데이터셋을 준비하고, 모형을 실행하며, 비즈니스 결과물이나 연구 논문을 위해 결과를 요약하는 작업이 포함된다. 이를 위해서 사용자 정의 R 함수로, 이상적으로는 프로젝트 "R/" 폴더에 있는 R 스크립트에 존재한다. 작업 자체를 “targets”이라고 하며, 함수를 실행하고 R 객체를 반환한다. targets 패키지는 목표(targets)을 조정하고 출력 객체를 저장하여 파이프라인을 효율적이고 쉽고 재현 가능하게 할 수 있다.

파이프라인 도구는 계산적으로 까다로운 분석 프로젝트의 각 부분을 조정한다. targets 패키지는 R에서 통계 및 데이터 과학을 위한 Make와 유사한 파이프라인 도구다. targets 패키지는 이미 최신 상태인 작업에 대해 비용이 많이 드는 런타임(Runtime)1을 건너뛰고, 암시적 병렬 컴퓨팅으로 필요한 계산을 조정하며, 파일을 R 객체로 추상화한다. 모든 현재 출력이 현재 상위 코드 및 데이터와 일치하면 전체 파이프라인이 최신 상태이며, 그렇지 않은 경우보다 결과를 더 신뢰할 수 있다.

전제 조건
  • R for Data Science에서 다루는 R 프로그래밍 언어에 대한 친숙도.
  • Workflow: 데이터 과학 작업흐름 관리 기법.
  • How to write functions: 데이터 분석 프로젝트에서 데이터를 준비하고, 데이터를 분석하며, 결과를 요약하는 함수를 작성하는 방법.

정의

targets는 Will Landau가 개발하고 유지 관리하는 R 프로그래밍 언어용 작업흐름(Workflow) 관리 패키지다.

targets의 주요 기능은 다음과 같다.

  • 작업흐름 자동화
  • 작업흐름 단계 캐싱
  • 작업흐름 단계 일괄 생성
  • 작업흐름 수준에서 병렬화

이를 통해 다음과 같은 작업을 할 수 있다.

  • 다른 일을 하다가 프로젝트로 돌아왔을 때, 혼란 없이 그리고 무엇을 하고 있었는지 기억하려 노력하지 않고도 바로 중단했던 부분부터 다시 시작할 수 있다.
  • 작업흐름를 변경한 다음, 변경의 영향을 받는 부분만 다시 실행한다.
  • 개별 함수를 변경하지 않고도 작업흐름를 대규모로 확장한다.

… 그리고 물론, 이는 다른 사람들이 여러분의 분석을 재현하는 데 도움을 줄 것이다.

누가 targets를 사용해야 하는가?

targets는 결코 유일한 작업흐름 관리 소프트웨어가 아니다. 다양한 기능과 사용 사례를 가진 유사한 도구들이 많이 있다. 예를 들어, snakemake는 파이썬에서 인기 있는 작업흐름 도구이고, make는 bash 스크립트를 자동화하기 위해 오랫동안 사용되어 온 도구이다. targets는 특별히 R과 함께 작동하도록 설계되었기 때문에, 주로 R을 사용하거나 사용하려는 경우에 가장 적합하다. 대부분 다른 도구로 코딩한다면, 다른 대안을 고려해 보는 것이 좋다.

재현 가능성이란 무엇인가?

재현 가능성은 다른 사람들(미래의 자신 포함)이 여러분의 분석을 재현할 수 있는 능력이다. 과학적 분석 결과에 대해 확신을 가질 수 있는 유일한 방법은 그 결과를 재현할 수 있을 때뿐이다. 그러나 재현 가능성은 이분법적 개념(재현 불가능 vs. 재현 가능)이 아니다. 오히려 재현 가능한 것에서 재현 가능한 것까지 스펙트럼이 존재한다.

targets는 여러분의 분석을 더 재현 가능하게 만드는 데 큰 도움을 준다.

Docker, conda, renv와 같은 도구로 컴퓨팅 환경을 제어하는 것도 재현 가능성을 더욱 높이는 데 사용할 수 있다.

각주

  1. 런타임(runtime)은 프로그램이 실제로 실행되는 시간을 의미한다. 코드를 작성하고 컴파일하는 시간은 런타임에 포함되지 않고, 프로그램이 실행을 시작하는 순간부터 종료되는 순간까지의 시간이 런타임이다. 즉, 런타임 동안에는 프로그램이 메모리를 할당받고, 변수들이 값을 가지게 되며, 함수가 호출되고 실행된다.↩︎