고석범 의사 “통계용 언어 R, 오피스처럼 써볼까요?”

가 +
가 -

R는 통계에 특화된 프로그래밍 언어이자 오픈소스 소프트웨어다. 과거에는 SPSS같은 유료 통계 프로그램이 많이 사용됐지만, 최근엔 R같은 통계 언어로 자신의 입맛에 맞는 분석 결과물 만드는 경우가 늘고 있다. R는 꼭 전문가만 쓸 수 있는 기술은 아니다. 프로그래밍 언어를 모르는 사람들도 R에 입문해 데이터를 다루는 경우가 종종 있다. 고석범 의사도 그런 경우에 속한다. 고석범 의사는 컴퓨터 관련 교육을 체계적으로 받아본 적은 없다. 하지만 R를 접한 이후 컨퍼런스나 책을 통해 R의 장점을 적극적으로 알리는 ‘R 전도사’가 됐다.

Doctor_Go_03

▲통계 프로그래밍 언어 ‘R’

“가치판단 위해 공부하게 된 기술”

고석범 의사는 신경과 전문의를 수료하고 현재 보바스기념병원에서 근무하고 있다. 주로 뇌신경 재활치료, 치매, 뇌전증 등을 치료하고 있다. 그는 병원 중앙 관리자로 일하면서 R를 처음 접했다고 한다. 의료분야는 전통적으로 많은 데이터를 처리하는 곳이고 그만큼 통계프로그램도 많이 쓰고 있다. 고석범 의사는 “처음에는 무료로 이용할 수 있는 통계 프로그램을 살펴보다가 우연히 R를 찾았다”라며 “R에서 제공하는 패키지나 확장성 같은 장점을 인식하고 더 공부하게 됐다”라고 설명했다.

고석범 의사는 처음에는 R를 업무시간에만 활용했다. 그러다 2012년 니콜라스 카의 ‘생각하지 않는 사람들’을 읽고 난 뒤 다양한 기술들을 공부하기 시작했다. ‘생각하지 않는 사람들’이란 책은 사람들이 점점 기술에 의존하게 되고 그 결과 인간의 사고방식이 얕고 가벼워진다는 내용을 담고 있다. 니콜라스 카는 실제로 기술에 대해 염세적인 시각을 가진 대표 미래학자이자 비평가로 꼽힌다.

Doctor_Go_02

▲니콜라스 카의 생각하지 않는 사람들

“생각하지 않는 사람들이란 책을 읽고 나니 여러 질문이 떠올랐어요. ‘기술을 덜 사용해야 하는 걸까?’, ‘앞으로 내 아이에게 기술을 가르쳐야 하는 걸까?’, ‘기술로 돈을 버는 사람들을 어떻게 봐야 할까?’같은 생각이요. 그런 질문에 곧바로 답을 내리기 힘들더라고요. 그동안 저는 기술을 이용하기만 했고, 그 원리나 구조에 대해 전혀 알지 못했으니까요. 그래서 제가 궁금했던 질문에 답을 찾고 가치판단을 하고자 기술을 공부했죠.”

평소 MS 오피스 프로그램이나 윈도우 정도만 쓰던 고석범 의사는 R를 깊이 공부하면서 관심 분야를 넓혀갔다. 마침 니콜라스 카 책을 읽은 시기 즈음에 R는 이전보다 관심을 더 많이 받았다. 빅데이터 열풍이 불고 데이터가 가진 가치에 관심이 쏠렸기 때문이다. 이전보다 참고할 수 있는 자료도 많았고 커뮤니티도 활발하게 운영됐다. 고석범 의사는 출판사에 먼저 연락해 R와 관련된 책을 저술하고, R 관련 도서를 번역하기도 했다.

“위 질문에 답을 내린 상태예요. 기술을 어느 정도 이해하고 배워야 한다는 쪽으로 결론을 냈죠. 우리가 살고 있는 세상에는 기술이 너무 많이 관여되고 있어요. 기술을 알면 꼭 프로그래머가 되지 않아도 자신의 분야에서 융합할 수 있는 아이디어를 얻을 수 있어요. 더 많은 일을 할 수 있는 기반이 마련될 거라고 생각해요.”

Doctor_Go_01

▲고석범 보바스기념병원 과장

R로 시도하는 오픈사이언스 운동

R를 꼭 데이터분석에만 사용할 수 있는 것은 아니다. 실제로 고석범 의사는 R를 보다 실용적으로 활용하는 방법을 많이 알리고 있다. 특히 문서작업이나 발표자료 제작, 표를 만들 때 R를 사용할 수 있다고 설명한다. 이때 ‘니터‘라는 패키지와 ‘R 스튜디오‘를 함께 이용한다. 패키지란 다양한 함수와 기능을 사용하게 돕는 일종의 R 보조 소프트웨어다. R 스튜디오는 그래픽 환경에서 R를 좀 더 쉽게 다룰 수 있게 도와주는 통합개발환경(IDE)이다. 실제 그는 600쪽가량의 책을 저술할 때 MS 워드나 ‘아래아한글’을 사용하지 않고, R와 니터를 이용해 문서를 제작했다. 외부에 발표를 나갈때도 R로 웹 발표자료를 만드는 편이다.

더 읽어보세요!

고석범 의사는 “앞으로 더 사람들이 R를 마치 MS 오피스처럼 사용했으면 좋겠다”라며 “무료 소프트웨어를 합법적으로 이용하고 오픈소스의 장점도 많은 사람이 알면 좋을 것 같다”라고 설명했다. 또한 그는 “보고서나 논문을 쓸 때도 R를 활용할 수 있다”라며 “무엇보다 ‘재현가능한 연구(Reproducible Research)’ 방식을 추구할 수 있다”라고 덧붙였다. 재현 가능한 연구란 무엇을 의미할까? 다음의 예로 그 의미를 찾을 수 있다.

만약 누군가가 실험 결과 100개를 기반으로 보고서를 작성한다고 치자. 연구원은 데이터 100개를 표로 정리하고 이를 그래프로 그릴 것이다. 그리고 그래프를 캡처해서 논문 보고서를 붙인다. 그런데 같은 실험을 200개 데이터, 1천여개 데이터로 확대한다면 어떻게 될까? 다시 표를 정리하고, 그래프를 그리고 캡쳐해서 논문에 인용해야 한다. 데이터가 바뀔 때마다 연구원이 계속 같은 작업을 반복해야 한다.

R를 이용하면 이러한 반복 작업이 줄어든다. R에는 글, 코드, 데이터, 그래프 등을 통합해 문서를 만들 수 있다. 문서 서식도 원하는 대로 지정할 수 있다. 그 결과 데이터 혹은 코드가 변경될 때, 수정사항이 보고서에 실시간으로 반영된다. 결과물은 웹페이지, PDF, MS 워드 문서 형식 중 골라 출력할 수 있다. 만약 웹 페이지로 보고서를 만든다면 이전보다 접근성이 올라가는 장점이 생긴다. 또한 클릭을 하거나 마우스 포인트를 올리면 그래프가 변하게 만들 수 있다. 결과값을 보다 인터랙티브하게 보여줄 수 있는 셈이다.

Doctor_Go_04_example_echo_true-RE

▲R 출력 예. 왼쪽이 코드이고, 오른쪽이 결과값이다. ECHO값에 TRUE를 넣으면 코드자체를 문서에 바로 출력할 수 있다.

Doctor_Go_04_example_echo-RE

▲R 출력 예. 왼쪽이 코드이고, 오른쪽이 결과값이다. ECHO값에 FALSE를 넣으면 코드를 문서에서 숨길 수 있다

논문 작성자 뿐만 아니라 논문을 참고하는 사람이나 검증하는 사람에게도 R는 유용하다. R로 작성된 문서는 클릭 몇 번만으로 보고서에 사용된 데이터 혹은 코드를 추출할 수 있다. 결과적으로 제3자는 따로 추출된 데이터나 코드로 논문에서 실행한 실험을 쉽게 재현할 수 있다.

Doctor_Go_04_example_2_code

▲R 출력 예. 코드를 입력한 결과

Doctor_Go_04_example_2_result

▲R 출력 예. 위 코드값을 출력한 보고서다. 문단, 그래프에 대한 서식도 코드를 수정해 변경할 수 있다.

“R로 문서를 작업하면서 오픈사이언스 운동에 더 쉽게 다가갈 수 있어요. 보통 논문을 공유하는 운동을 오픈 사이언스로 보는데요. R로 보고서를 만들면 연구작업에서 활용된 코드와 데이터가 공개되죠. 결과적으로 논문 결과물 뿐만 아니라 내부 데이터, 분석 과정도 외부에 공유될 수 있습니다. 이런 경우 더 투명한 연구를 할 수 있고요. 또 누구나 연구 과정을 깊이 들여다볼 수 있기 때문에 외부에서 피드백을 주기도 더 쉽습니다. 같은 주제로 다른 아이디어가 더 많이 나올 수 있고요. 국민 세금으로 이뤄지는 연구, 인류에 도움이 되는 연구들은 R로 작성하면 더 좋을 것 같습니다.”

“웹·바이오인포매틱스 기술에 관심이 생겼어요”

고석범 의사는 최근 안식년을 보내면서 R 외에 다른 기술도 공부 중이다. 레이택, , 리눅스, 도커, 클라우드 같은 기술을 직접 사용해보고 있다고 한다. 고석범 의사는 “어렵긴 하지만 최근 주목받고 있는 기술이 있으면 최대한 써보려 한다”라며 “개발자 컨퍼런스 영상들도 챙겨보고 최근에는 자바스크립트 기술인 미티어에 큰 관심이 생겼다”라고 말했다.

Doctor_Go_05_Meteor

▲자바스트립트 기술인 ‘미티어’

“R는 마크다운, 레이텍 기술과 같이 융합해 많이 쓰여요. 마크다운을 공부하다보니 자연스레 HTML 같은 웹 언어에 관심이 생겼어요. 웹 기술은 저같은 비전공자가 배우기 상대적으로 쉽거든요. 기술을 배우다보니 하고 싶은 일도 더 많아졌어요. 앞으로 의료와 데이터 기술을 결합한 바이오인포매틱스 사업을 진행할 예정이에요. 아직 확실한 건 아니지만, 계속 기술을 공부하면서 아이디어를 구체화할 생각입니다.”

네티즌의견(총 6개)