R 개발 후기

R 2015. 8. 25. 20:20


R과 일래스틱서치를 이용하여 데이터의 검색 랭킹 시스템을 구현해보았다.

R 공부를 책으로 하지 않고, 그냥 부딪히면서 (HEAD FIRST R Language) 개발 후기 경험담을 적는다.


처음에는 Python의 Pandas를 하다가 1일 만에 포기한 것은 개발환경과 부족한 API였다. 노트라는 개발 IDE가 있지만, Python 만의 버전 이슈와 노트라는 개발 IDE는 웹 기반이라 데이터가 커지만 메모리 이슈에 잘 부딪혔다. 그러나 data frame같은 타입은 훌륭했다.


그래서, IDE의 편리성이 좋으면서 괜찮게 잘 개발할 만 무엇인가를 찾아보았는데, 회사 동료가 추천한 R 언어를 실제 써보니 황홀했다. 


써보니 장점은 다음과 같았다.


첫 번째, R 언어는 엑셀 관점으로 접근하는 방법론(function 단위의 개발)이 좋았다. 즉, 객체가 아닌 function 단위로 접근하는 구조이기 때문에 function 이 타입을 지원(또는 Any())하면 개발하기 편했다. 


두 번째, 타입에 matrix(table, frame) 타입 덕에 2차원 데이터를 관리하기 좋았다. 기존 언어에서는 객체라는 구조안에 메소드(또는 함수)에 갇혀 있었다면, 2차원 배열의 값을 2차원 배열을 다루는 function을 써서 for문을 최대한 줄일 수 있었다.


세 번째, RStudio라는 IDE툴과 리눅스에서 잘 동작되는 언어라서 훌륭했다.


네 번째, 모르는 것은 구글에 검색하면 대부분 다 존재했다. (특히 스택 오버 플로우)


단점은..


1. 개념없이 접근하기 쉽지만, 결국 개념때문에 헤맸다. 객체 지향 개념이 R언어에서는 그렇게 좋지 않을 수도 있다는 느낌이 있다.


2. API 찾기가 힘들었다. 쓰고 싶은 API가 단순하면 좋겠지만, 찾는데 좀 오래 걸릴 수 있다. 


3. 전역 변수라, 모듈-모듈, 모듈-로직 간 변수간 충돌이 일어날 수 있다. 큰 프로젝트에는 안 맞을 수도 있을 것 같았다.







'R' 카테고리의 다른 글

[R] matrix에서 column, row 이름 변경하기  (0) 2015.09.01
[R]에서 불린(boolean) 값  (0) 2015.09.01
[R] 텍스트 파일 읽기  (0) 2015.08.21
[R] data frame을 excel, xml, json으로 export하기  (0) 2015.08.21
[R] string trim 함수  (0) 2015.08.21
Posted by '김용환'
,