2015.07.07

“왜 R인가?” R 언어의 장점과 단점

Paul Krill | InfoWorld
R 프로그래밍 언어는 수치 분석, 기계 학습 분야 개발에서 중요한 도구다. 데이터 생성기로서 기계의 중요성이 커질수록 R 언어의 인기도 함께 높아질 수밖에 없다. 그러나 R에는 개발자가 알아야 할 장점과 단점이 있다.

Tlobe, PyPL, 레드몽크(Redmonk)와 같은 언어 인기 지수에서 볼 수 있듯이 R에 대한 관심이 증가하고 있다. R은 1990년대에 처음 등장했으며 S 통계 프로그래밍 언어의 구현 중 하나로 사용됐다. 18년 동안 R로 프로그래밍을 해왔고 대학과 코세라(Coursera) 온라인 플랫폼에서 R을 가르치기도 하는 베테랑 프로그래머 로저 펭은 “R은 통계 분야에서 가장 인기 있는 언어”라고 말했다.

펭은 “R의 좋은 점은 컴퓨터 과학 수준에서 프로그램하기가 무척 쉽다는 것”이라며 “속도가 그 동안 개선되었으며 다양한 데이터 집합, 도구, 소프트웨어 패키지를 포괄하는 일종의 접착 언어 역할을 한다”고 말했다.

온라인 프로그래밍 교육 업체 코드 스쿨(Code School)의 데이터 과학자 맷 애덤스는 “R은 재현 가능한 고품질 분석을 생성하기 위한 최선의 수단이다. 데이터를 다룰 때 필요한 모든 유연성과 기능을 갖추고 있다. R로 만든 대부분의 프로그램은 사실상 프로젝트로 구성된 스크립트 모음일 뿐”이라고 말했다.

R의 강력한 패키지 생태계와 도표 작성의 이점
패키지 생태계도 R의 장점 중 하나다. 애덤스는 “패키지 생태계의 광활함은 단연 R의 가장 큰 장점 중 하나다. 어떤 통계 기법을 사용하든 그에 맞는 R 패키지가 이미 나와 있다고 보면 된다”고 말했다.

펭은 “통계학자를 위해 내장된 기능이 아주 많다”면서, “R은 확장 가능하고 개발자에게 데이터 분석을 위한 자체 도구와 방법을 만들 수 있는 풍부한 기능을 제공한다. 시간이 지나면서 생명과학이나 인문학 등 다른 분야에서 R 언어로 유입된 사람도 많아졌다”고 말했다.

펭은 허락을 구할 필요 없이 원하는 대로 확장할 수 있다는 점도 강조했다. 실제로 펭은 몇 년 전 R의 사용 조건이 큰 도움이 됐다고 회상하며 “처음 R이 나왔을 때 가장 큰 장점은 자유 소프트웨어라는 점이었다. 소스 코드를 비롯한 모든 요소를 볼 수 있었다”고 말했다.

애덤스는 R의 모든 그래픽 및 도표 기능에 대해 “타의 추종을 불허한다”면서 “데이터 조작과 플롯을 위한 dplyr, ggplot2 패키지 덕분에 작업이 더 편해졌다”고 말했다.
애덤스는 기계 학습 분야에서 R의 가장 큰 장점은 학계와의 강력한 연계에 있다면서 “이 분야의 연구를 새로 시작한다면 처음부터 R 패키지를 사용하는 경우가 대부분이다. 이 부분에 있어 R이 가장 앞서 있다. 캐럿(caret) 패키지는 통합 API를 통해 R로 기계 학습을 실행할 수 있는 매우 실용적인 방법을 제공한다”고 말했다. 펭 역시 인기 있는 여러 기계 학습 알고리즘이 R로 구현된다고 말했다.

R의 단점은 보안과 메모리 관리
R에는 장점이 많지만 단점도 있다. 애덤스는 “현재 R의 가장 큰 숙제는 메모리 관리, 속도, 효율성”이라며 “각 분야에서 많은 발전이 이루어졌고 지금도 진행 중이다. 또한 다른 언어를 사용하다 R을 접한 사람들은 R이 까다롭다고 느낄 수 있다”고 말했다.

펭은 R의 기본적인 특성은 1960년대에 만들어진 프로그래밍 언어를 연상시킨다면서 “최초 설계된 시점을 감안하면 R은 오래된 언어”라고 말했다. R 언어는 그 설계 특성상 매우 큰 데이터 집합을 사용한 작업을 수행할 때 문제가 발생할 수 있다. 데이터를 물리적 메모리에 저장해야 하기 때문이다. 다만 펭은 컴퓨터에 장착되는 메모리 용량이 증가함에 따라 이 문제도 과거만큼 심각하진 않다고 덧붙였다.

펭은 R 언어에는 보안과 같은 기능이 내장되어 있지 않다고 지적했다. 또한 R은 웹 브라우저에 내장할 수 없으므로 웹 또는 인터넷 앱에는 사용할 수 없다. 과거에는 웹 보안의 부재로 인해 R을 백엔드 서버로 사용하여 계산을 수행하는 것도 기본적으로는 불가능했다. 다만 아마존 웹 서비스 클라우드 플랫폼에서 가상 컨테이너를 사용하는 등의 기술이 개발되면서 보안 문제는 어느 정도 개선됐다.

펭은 오랫동안 R에는 양방향 참가 활동이 많지 않았다면서 여전히 자바스크립트와 같은 언어를 사용해 이 간극을 메워야 한다고 말했다. 분석 작업은 R로 수행하더라도 분석 결과의 프레젠테이션은 자바스크립트와 같은 다른 언어로 해야 한다는 뜻이다.

R은 고급 프로그래머 전용이 아니다
애덤스와 펭, 두 사람 모두 R을 접근하기 쉬운 언어로 평가한다. 애덤스는 “나는 컴퓨터 과학을 전공하지 않았고 프로그래머가 될 생각도 없었다. 프로그래밍 기초에 대한 지식이 있으면 R을 처음 이용하는데 도움이 되겠지만 필수 요건은 아니다”라고 말했다.

애덤스는 “더 극단적으로 말하면 R이 프로그래머용이라는 말도 정확하지 않다. R은 프로그래밍에 대한 적성에 관계없이 데이터 지향적인 문제를 해결하려는 사람에게 적합한 언어”라고 말했다. editor@itworld.co.kr


2015.07.07

“왜 R인가?” R 언어의 장점과 단점

Paul Krill | InfoWorld
R 프로그래밍 언어는 수치 분석, 기계 학습 분야 개발에서 중요한 도구다. 데이터 생성기로서 기계의 중요성이 커질수록 R 언어의 인기도 함께 높아질 수밖에 없다. 그러나 R에는 개발자가 알아야 할 장점과 단점이 있다.

Tlobe, PyPL, 레드몽크(Redmonk)와 같은 언어 인기 지수에서 볼 수 있듯이 R에 대한 관심이 증가하고 있다. R은 1990년대에 처음 등장했으며 S 통계 프로그래밍 언어의 구현 중 하나로 사용됐다. 18년 동안 R로 프로그래밍을 해왔고 대학과 코세라(Coursera) 온라인 플랫폼에서 R을 가르치기도 하는 베테랑 프로그래머 로저 펭은 “R은 통계 분야에서 가장 인기 있는 언어”라고 말했다.

펭은 “R의 좋은 점은 컴퓨터 과학 수준에서 프로그램하기가 무척 쉽다는 것”이라며 “속도가 그 동안 개선되었으며 다양한 데이터 집합, 도구, 소프트웨어 패키지를 포괄하는 일종의 접착 언어 역할을 한다”고 말했다.

온라인 프로그래밍 교육 업체 코드 스쿨(Code School)의 데이터 과학자 맷 애덤스는 “R은 재현 가능한 고품질 분석을 생성하기 위한 최선의 수단이다. 데이터를 다룰 때 필요한 모든 유연성과 기능을 갖추고 있다. R로 만든 대부분의 프로그램은 사실상 프로젝트로 구성된 스크립트 모음일 뿐”이라고 말했다.

R의 강력한 패키지 생태계와 도표 작성의 이점
패키지 생태계도 R의 장점 중 하나다. 애덤스는 “패키지 생태계의 광활함은 단연 R의 가장 큰 장점 중 하나다. 어떤 통계 기법을 사용하든 그에 맞는 R 패키지가 이미 나와 있다고 보면 된다”고 말했다.

펭은 “통계학자를 위해 내장된 기능이 아주 많다”면서, “R은 확장 가능하고 개발자에게 데이터 분석을 위한 자체 도구와 방법을 만들 수 있는 풍부한 기능을 제공한다. 시간이 지나면서 생명과학이나 인문학 등 다른 분야에서 R 언어로 유입된 사람도 많아졌다”고 말했다.

펭은 허락을 구할 필요 없이 원하는 대로 확장할 수 있다는 점도 강조했다. 실제로 펭은 몇 년 전 R의 사용 조건이 큰 도움이 됐다고 회상하며 “처음 R이 나왔을 때 가장 큰 장점은 자유 소프트웨어라는 점이었다. 소스 코드를 비롯한 모든 요소를 볼 수 있었다”고 말했다.

애덤스는 R의 모든 그래픽 및 도표 기능에 대해 “타의 추종을 불허한다”면서 “데이터 조작과 플롯을 위한 dplyr, ggplot2 패키지 덕분에 작업이 더 편해졌다”고 말했다.
애덤스는 기계 학습 분야에서 R의 가장 큰 장점은 학계와의 강력한 연계에 있다면서 “이 분야의 연구를 새로 시작한다면 처음부터 R 패키지를 사용하는 경우가 대부분이다. 이 부분에 있어 R이 가장 앞서 있다. 캐럿(caret) 패키지는 통합 API를 통해 R로 기계 학습을 실행할 수 있는 매우 실용적인 방법을 제공한다”고 말했다. 펭 역시 인기 있는 여러 기계 학습 알고리즘이 R로 구현된다고 말했다.

R의 단점은 보안과 메모리 관리
R에는 장점이 많지만 단점도 있다. 애덤스는 “현재 R의 가장 큰 숙제는 메모리 관리, 속도, 효율성”이라며 “각 분야에서 많은 발전이 이루어졌고 지금도 진행 중이다. 또한 다른 언어를 사용하다 R을 접한 사람들은 R이 까다롭다고 느낄 수 있다”고 말했다.

펭은 R의 기본적인 특성은 1960년대에 만들어진 프로그래밍 언어를 연상시킨다면서 “최초 설계된 시점을 감안하면 R은 오래된 언어”라고 말했다. R 언어는 그 설계 특성상 매우 큰 데이터 집합을 사용한 작업을 수행할 때 문제가 발생할 수 있다. 데이터를 물리적 메모리에 저장해야 하기 때문이다. 다만 펭은 컴퓨터에 장착되는 메모리 용량이 증가함에 따라 이 문제도 과거만큼 심각하진 않다고 덧붙였다.

펭은 R 언어에는 보안과 같은 기능이 내장되어 있지 않다고 지적했다. 또한 R은 웹 브라우저에 내장할 수 없으므로 웹 또는 인터넷 앱에는 사용할 수 없다. 과거에는 웹 보안의 부재로 인해 R을 백엔드 서버로 사용하여 계산을 수행하는 것도 기본적으로는 불가능했다. 다만 아마존 웹 서비스 클라우드 플랫폼에서 가상 컨테이너를 사용하는 등의 기술이 개발되면서 보안 문제는 어느 정도 개선됐다.

펭은 오랫동안 R에는 양방향 참가 활동이 많지 않았다면서 여전히 자바스크립트와 같은 언어를 사용해 이 간극을 메워야 한다고 말했다. 분석 작업은 R로 수행하더라도 분석 결과의 프레젠테이션은 자바스크립트와 같은 다른 언어로 해야 한다는 뜻이다.

R은 고급 프로그래머 전용이 아니다
애덤스와 펭, 두 사람 모두 R을 접근하기 쉬운 언어로 평가한다. 애덤스는 “나는 컴퓨터 과학을 전공하지 않았고 프로그래머가 될 생각도 없었다. 프로그래밍 기초에 대한 지식이 있으면 R을 처음 이용하는데 도움이 되겠지만 필수 요건은 아니다”라고 말했다.

애덤스는 “더 극단적으로 말하면 R이 프로그래머용이라는 말도 정확하지 않다. R은 프로그래밍에 대한 적성에 관계없이 데이터 지향적인 문제를 해결하려는 사람에게 적합한 언어”라고 말했다. editor@itworld.co.kr


X