R은 통계 분석과 데이터 과학 분야에서 오랜 역사를 가진 강력한 도구이다. R은 데이터 분석을 배우는 데 널리 사용되는 도구로, 관련 기초 자료와 입문서를 서점이나 인터넷에서 쉽게 찾아볼 수 있다. 많은 사람들이 이러한 자료를 통해 R의 기초 문법과 기본적인 데이터 분석 방법을 익히며 첫걸음을 내딛는다. 하지만 R의 기초를 넘어 실제 문제를 해결하는 데 필요한 중급 수준의 프로그래밍 기술과 지식을 다룬 자료는 상대적으로 부족하다. 중급 사용자들을 위한 책이 부족한 데는 나름의 이유가 있다. 이 단계의 사용자들은 공식 문서, 논문, 원서 등 전문 자료에서 필요한 지식을 스스로 습득할 수 있으며, 인터넷에서 소스를 확보하고 약간의 연구를 통해 문제를 원하는 방향으로 해결할 수 있는 역량을 갖춘 경우가 많다. 그러나 모든 학습자에게 이 과정이 자연스럽게 이루어지는 것은 아니다. 방향을 상실하거나 흥미를 잃어 중급자의 함정을 극복하지 못하는 경우도 자주 볼 수 있다. 기초적인 수준을 넘어선 기술과 통찰을 획득하지 못하는 경우 실무에서 데이터분석 혹은 연구를 수행할 때 생산성을 높이는 데 한계에 부딪히게 된다. 기초 문법을 이해하면 다른 사람의 간단한 코드나 분석 결과는 이해할 수 있지만, 직접 무언가를 생산해 내는 연습이 되어 있지 않기 때문이다. 이는 R의 언어적 성격과도 관련이 있다. 프로그래밍 언어도 결국 언어이기 때문에 기초 문법을 넘어서 실제로 활용하는 과정을 거쳐야 비로소 익숙해질 수 있다. 이 책은 프로젝트 워크플로 관점에서 실전적 응용을 위한 중급 프로그래밍 지식을 다루고 있다. R의 기초를 이미 익힌 학생, 연구자, 실무자를 대상으로, 실제 프로젝트에서 바로 활용할 수 있는 기술과 응용 방법을 안내하고자 한다. 이를 통해 독자는 자신의 프로젝트에 필요한 기능을 직접 구현하거나, 다른 도구를 이해하고 변형하여 적용하는 데 도움을 받을 수 있을 것이다. 본문은 총 5개의 파트로 구성되어 있다. Part I에서는 작업 환경 설정과 프로젝트 관리의 기본을 학습한다. Part II부터 Part IV는 이 책의 핵심 내용이다. 그동안 대학원생, 학부 연구생, 개발자 그룹 등을 대상으로 한 R 강의를 바탕으로 책의 내용을 구성하였다. 많은 학습자들이 중급 단계로 나아가며 어려움을 겪는 지점은 R이 프로그래밍 언어로서 지닌 기능을 이해하고 활용하는 부분이다. R은 SPSS와 같은 통계 소프트웨어와 달리, 자체적으로 프로그래밍이 가능한 언어로 다양한 함수와 기능을 직접 구현하고 관리할 수 있다. 이러한 내용을 Part II와 Part III에서 집중적으로 다룬다. 이후 Part IV에서는 통계적 추론을 위한 패키지를 직접 코딩해 본다. Part V에서는 분석 및 프로그래밍 결과물의 커뮤니케이션과 배포에 대해 다룬다. Part VI에는 본문 이해에 도움이 될 수 있는 부록이 수록되어 있다. 실전적 지식을 공유하기 위해 이 책은 사전식 구성을 의도적으로 피하였다. R의 기초 문법과 주요 패키지를 나열하여 설명하는 방식은 두꺼운 사전식 매뉴얼을 만들 수 있으나, 이를 통해 프로그래밍을 학습하는 것은 마치 영어 회화를 영어 사전으로 공부하는 것과 같다. 이러한 접근을 피하기 위해 이 책은 기초 문법 설명을 최소화하고, 주요 개념 위주로 설명하며 필요한 경우 레퍼런스를 제공한다. 대신 전체 워크플로를 보여주는 예제를 수록하고, 핵심 파트 뒤에 프로젝트 챕터를 배치하여 해당 내용이 실제로 어떻게 활용되는지를 학습할 수 있도록 하였다. 책에 수록된 주요 예제 코드는 GitHub 저장소(https://github.com/kybak90/R_programming_workflow_book)를 통해 확인할 수 있으며, 실습이나 코드 흐름을 따라가며 학습하는 데 도움이 될 것이다. 출간 이후의 수정 사항 등은 자유아카데미 홈페이지(www.freeaca.com) 자료실에 게시할 예정이니 참고하기 바란다. 이 책을 통해 단순히 R을 사용하는 데서 그치지 않고, 현장에서 직면하는 다양한 과제를 R로 해결하며 데이터 과학자로서 한계를 확장하는 여정을 시작할 수 있기를 바란다.