안녕하세요, 김인범입니다. 

Cloud의 시대를 넘어 Hadoop을 위시한 BigData 열풍이 불고 있습니다초기 BigData 처리를 위한 기술들이 각광받으며 시작되었던 BigData 열풍은 이제 BigData 분석에 이르러 절정을 맞이하고 있습니다. 


많은 이들이 궁금해 합니다.

수 많은 데이터 속에서 우리가 얻을 수 있는 건 무엇인지?

그러한 데이터를 체계적으로 분석할 수 있는지? 분석할 수 있다면 우리는 그 속에서 무엇을 얻고자 하는지? 


BigData 분석은 단순히 이미 지난 사건의 통계 추출이라는 관점을 넘어 미래에 도래할 사건과 현상을 미리 살펴볼 수 있는 효과적인 방법이라는 점에서 많은 이들의 관심을 받고 있습니다. 

이번 시간에는 이러한 오픈소스 분석 분야에서 가장 널리 쓰이는 R에 대해 살펴보고자 합니다.


1. R 

R 공식 사이트에 정의된 R의 정의는 다음과 같습니다. 

“R은 통계 분석과 그래픽을 위한 환경이다.”

(R is a free software environment for statistical computing and graphics.) 

R에 대해서는 통계 분석을 위한 언어, 도구로 많이 알려져 있지만, R 공식 사이트에 정의된 R의 개념은 그 범위를 넘어선 환경이라는 점을 강조하였습니다. R 1990년대에 처음 등장했으며 S 통계 프로그래밍 언어의 구현 중 하나로 사용되었습니다. 1997 R Core Group이 형성되어 R에 대한 소스 코드를 관리하기 시작하였고, 현재 3.4.2 버전까지 공개되었습니다(2017 10월 기준).


2. R의 특징 

앞서 말씀 드린 것처럼 R S 통계 언어의 구현 중 하나로 사용되었고, 전문 통계학자들 사이에서는 사실상 표준 플랫폼처럼 사용되고 있습니다. 이처럼 높은 위상을 가진 R은 다음과 같은 특징을 가지고 있습니다. 

1) 오픈소스 소프트웨어이므로 자유로운 사용이 가능하고, 사용자들이 작성한 수 많은 함수 사용이 가능

2) 인터프리터 언어이며, 대소문자 구별

3) 통계 표준 플랫폼으로 다양한 기능과 더불어 우수한 그래픽 제공

4) 객체지향 언어와 함수형 언어의 특징을 모두 포함하고 있음

5) 각 세션 사이마다 시스템에 데이터 셋을 저장하기 때문에 매번 데이터를 로드할 필요 없음

6) 다양한 환경에서 사용 가능(Window, MacOS, Unix)

7) Active development 상태로 자주 개선된 버전이 공개됨



3. R의 장점 

그렇다면 많은 이들은 왜 R을 사용할까요?

다음과 같은 장점을 누릴 수 있기 때문입니다.

 

1) 자유로운 사용 조건
R
은 누구나 사용 가능한 자유 소프트웨어입니다. 이와 같은 조건은 누구나 쉽게 R을 접하는데 도움을 주며, 다양한 이유로 R을 사용하는 데 있어 사전 조건을 고려할 필요
없게 만듭니다. 

2) 컴퓨터 과학 수준에서 프로그래밍 하기 쉬운 편

R은 통계학자, 수학자, 의학자 등 다양한 분야의 사람들이 널리 사용하는 언어입니다. 이는 다른 무엇보다도 접하기 쉽고 조작하기 쉬운 특징을 가지고 있기 때문입니다R을 대하는 데 있어 프로그래밍이란 말보다 데이터 문제를 해결하기 위한 언어 정도로 말하는 것도 같은 이유에서입니다. 

3) 풍부한 패키지와 기능

R어떤 통계 기법을 사용하든 그에 맞는 R 패키지가 이미 나와 있으며, 이는 강력한 패키지 생태계에 기인합니다. 통계학자를 위해 내장된 기능이 매우 많은 편이고, 확장 가능하며, 개발자에게 데이터 분석을 위한 자체 도구와 방법을 만들 수 있는 풍부한 기능을 제공합니다.


4. R의 단점 

이처럼 훌륭한 기능을 가진 R도 자체적인 단점이 존재하며, 대표적으로 다음과 같은 점을 생각해 볼 수 있습니다. 

1) 메모리 관리, 속도 문제
이전부터 지적된 R의 단점은 메모리 관리의 문제였습니다. 데이터를 물리적 메모리에 저장해야 하기 때문에, 매우 큰 데이터 집합을 활용한 작업을 수행할 때 문제가 발생할 수도 있습니다.

다만 이 문제는 새로운 R 버전이 나올 때마다 지속적으로 개선되고 있으며, 요즘 사용하는 물리 장비 역시 높은 사양의 메모리를 제공하는 경우가 많아 어느 정도 보안이 가능한 문제입니다.

2) 보안성

R 자체적으로 보안 관련 기능이 없다는 점이 또 다른 단점으로 지적 받고 있습니다.

이는 다른 오픈소스 소프트웨어도 공통적으로 가진 문제이며, AWS와 같은 플랫폼 상에서 활용하여 보안 문제를 보완하는 식으로 발생할 수 있는 문제를 예방하고 있습니다.


5. R은 왜 필요할까?

R은 다른 오픈소스에 비해 훨씬 강력한 커뮤니티 파워를 느낄 수 있습니다.

우리가 일반적인 오픈소스 소프트웨어 사용시 필요한 기능이나 개선이 필요한 점은 직접 구현하거나 아니면 다른 이가 개발해줄 때까지 기다려야 하는 경우가 많습니다. 하지만 R은 워낙 다양하고 수많은 사용자가 생태계를 이루고 있어서 검증된 패키지를 빠르게 찾아 적용할 수 있습니다.

(2015년 기준 4천여 개 이상의 패키지 존재) 

데이터 분석의 중요성이 높아지면서 더불어 중요해진 것은 이에 대한 시각화 기능입니다

R은 강력한 그래픽 기능으로 이와 같은 요건을 해결해 줄 수 있으며, 단순히 엑셀에서 제공해주는 그래픽 기능 그 이상의 효과를 누릴 수 있습니다인터넷에서 검색할 수 있는 R의 다양한 그래픽 예제들을 살펴보면, 그래픽 기능 하나만으로도 R을 쓸 가치는 충분하다고 할 수 있을 것입니다. 

마지막으로 데이터를 대하는 관점을 접해 볼 수 있다는 점입니다.

이미 구현된 수많은 R 패키지들은 그 패키지를 만든 이들의 데이터에 대한 관점과 접근법이 녹아 있습니다. 이렇게 구현된 패키지를 접해보고 공부해보면 다양한 케이스에서 발생할 수 있는 문제점과 이를 해결하는 위한 접근 방식 등을 배울 수 있다는 장점이 있습니다. 

그리고 이러한 방식의 학습은 곧 여러분들이 향후 마주할 문제를 해결하는 데 있어 중요한 단서로 작용할 것입니다.


6. R 관련 행사 소개 

이번에 간략히 소개한 R을 직접적인 예제를 통해 느껴볼 수 있는 기회가 생겼습니다오는 10 28일에 R User Conference in Korea 2017(이하 RUCK 2017)이 개최될 예정이며아래 사이트를 통해 관련 내용을 확인해 볼 수 있습니다.

http://ruck2017.r-kor.org/ 

RUCK 2017은 매년 R과 데이터 과학을 주제로 한 다양한 분야의 사례들이 발표된 바 있으며, 날로 중요성을 더해가는 데이터 과학 분야의 발전 방향과 트렌드를 엿볼 수 있는 좋은 기회의 장으로 널리 이름을 알려왔습니다. 

데이터 과학 입문자에게는 첫 걸음을 위한 강력한 동기부여를, 실무자에게는 각 사별로 적용할 수 있는 노하우를 간접적으로 전수 받을 수 있는 기회를, 그리고 데이터 과학을 잘 몰랐던 분들에게는 사례를 통해 친숙하게 다가갈 수 있는 기회를 제공할 것입니다.