brunch

You can make anything
by writing

C.S.Lewis

by 이승환 Oct 29. 2019

RUCK 2019 참관기

R User Conference Korea 2019

지난 금요일 한국 R 유저 컨퍼런스 2019에 다녀왔습니다. RUCK에 처음 참석했던건 2014년도로, 당시 저는 1년차 데이터 분석가였습니다. 매해 이런 컨퍼런스를 참관하면 업계 흐름이 어떻게 변해가고 있는지 체감이 되는 것 같습니다. 올해 RUCK를 참관하며 생각하고 느낀 점을 정리하며 글을 적어봅니다.


일자: 2019.10.25(금)

장소: 한국마이크로소프트

공식 홈페이지 링크: http://ruck2019.r-kor.org/


오전 키노트는 개회사, 분석 기술과 제품 동향, R 커뮤니티와 에코 시스템에 대한 내용으로 이뤄졌습니다. 사실 개회사가 대개 그렇지만, 실무자 입장에서 실속있는 내용은 없었던 것 같습니다. 요즘 커뮤니티의 발전 현황, 업계 동향에 대해 얘기하는 시간이었던 것 같습니다. 저는 Ricker 님의 발표를 듣다가 조금 먼저 나와 점심을 먹으러 갔습니다.



오후 키노트는 '데이터 분석 및 이슈', '시각화와 활용'의 투 트랙으로 이뤄졌습니다. 2014년도에는 4개 트랙이 있었고, 2018년도에는 3개 트랙이 있었던 것을 기억해보면 규모가 점차 줄어들고 있는 것 같아 아쉽습니다. 저는 '스마트하게 젖소 키우기 with shiny', '재무제표 시각화', 'R을 이용한 금융 데이터 수집 및 포트폴리오 만들기', 'From ShinyApps to CRAN'을 들었습니다.




1. 스마트하게 젖소 키우기 with Shiny


건국대학교 동물자원학과의 나영준 박사님께서 발표해주셨습니다. 발표자님은 젖소의 생육과 능력을 측정하고 분석하는 연구를 수행하십니다. 연구실 밖을 나와 현장 사육 농가를 방문해 데이터을 수집하고 농장주분들과 의견을 나누는 일도 많다고 합니다. 젖소 데이터 분석이라는 주제로 반복적인 분석 업무를 수행하시다가 분석 기능들을 묶어 r package로 개발하시고(패키지 이름이 기억이 나지 않네요), shiny app으로 개발해 자동화하신 경험을 공유해주셨습니다.


발표자께서 공유해주신 대시보드 고도화 작업을 제 나름으로 요약하면 1) 예쁘게 2) 확장성 3) 드릴다운 입니다.


1) 예쁘게

스스로 시각적인 미려함을 중요시한다고 소개해주신 바와 같이, 나영준님의 shiny app은 제가 본 것 중 가장 예뻤던 것 같습니다. ggplot2와 ggplotly를 그냥 사용할 경우 생기는 투박함을 shinycustom loader, highcharter 로 핸들링한 경험을 공유해주셨습니다. 디테일 하나하나에 다 섬세하게 신경쓰신 티가 났는데, 이를테면 팔레트 하나하나도 다 세세하게 선택하신 것 같이 색감이 아주 고왔습니다.


2) 확장성

분석 데이터의 기간을 변경할 수 있는 탭을 추가했습니다. 기능적으로는 스프레드 시트를 몇 개나 읽을지, 기간을 얼마나 필터링할지를 구현하는 간단한 내용입니다.


3) 드릴다운

소 수백마리에 대한 군집 분석에서 소 한 마리의 데이터를 확인하는 것을 바로바로 드래그로 수행할 수 있게 대시보드를 구현했습니다.


대시보드에는 이외에도 여러 가지 시각화 도구들이 오밀조밀하게 배치되어 있었습니다. 공을 정말 많이 들인 결과물이라는 생각을 할 수밖에 없었습니다.


발표를 들으면서 '이 분이 왜 이런 형태의 결과물을 만드셨을까'는 생각을 하다가, 본인의 업무 환경과 요구사항에 맞게 최적화한 결과물이라는 생각을 하게 되었습니다. 발표자님의 업무는 같은 형태의 통계 분석 업무를 반복적으로 수행해야 하고, 그 결과를 들고 현장 농가를 방문해 통계 지식이 없는 분들과 토론하고 설득하는 일입니다. 연구자와 세일즈맨의 성격을 모두 가지고 있는 일이라 할 수 있습니다. 이 분의 요구사항에 맞춘 최적의 산출물은 자동화, 시각적 설득력, 편의성을 모두 충족하는 DIY 대시보드였습니다. R-Shiny는 이런 일을 수행하기에는 최적의 도구가 아닐까 싶습니다.



2. 재무제표 시각화


한국 기업데이터의 강동훈 님이 발표해주셨습니다. 재무상태표, 손익계산서, 현금흐름표를 보기 쉽게 시각화한 내용을 공유해주셨습니다. 정보의 속성과 자료 구조에 맞춰 효과적으로 시각화하기 위한 방법을 고민하고, 그에 맞는 답을 찾으셨다는 점이 인상적이었습니다.


복식부기 발명 이래 재무제표는 오래 사용되어온 도구이지만, 세월이 오래된 만큼 친절하지는 않습니다. 회계 비전문가에게 재무제표는 암호처럼 난해하고 도저히 알아먹기가 어렵습니다. 발표 내용은 이에 대한 대안을 제시하는 내용이었습니다.


1) 재무상태표

대변(좌)와 차변(우)에 각각의 회계 항목이 값을 가지고 있고, 이의 총합은 같습니다. 사용자는 각각의 항목이 전체 자산에서 차지하는 비중을 한 눈에 파악해야 합니다. 자료 구조는 Tree structure입니다. 발표자님은 트리맵으로 이를 표현해서 이를 해결하고자 했고, 제 느낌으로는 꽤 설득력있게 다가왔습니다.


2) 손익계산서

매출, 비용, 영업이익, 세금, 순이익이 누적으로 더해지고 빼지면서 최종적으로 당기순이익을 산출하는 누적합 자료구조입니다. 발표자께서는 이를 List 구조와 유사하다고 생각하셨습니다(R의 List인지는 불분명). 표현한 방식은 가로로 누운 막대 그래프였습니다 (Stacked Dodge Bar Chart).


3) 현금흐름표

현금이 들어오고 나가는 '흐름'을 계정 별로 표현해야 합니다. Sanky Chart로 이를 표현했습니다.


발표자께서는 이 결과물들의 소비자를 '회계지식이 없는 일반인이지만 재무제표를 봐야 하는 사람들'로 생각하신다고 말씀하셨습니다. 의미있는 시도라고 생각합니다. 다만 아쉬운 점이 있었다면 시각적으로 더 미려하게 꾸미면 좋겠다는 것입니다(위의 나영준 님처럼). 예쁘게 꾸미는건 저도 평소 잘 못하는 일이긴 합니다만, 상용솔루션이 되려면 미려함이 중요하다고 생각합니다. 지금 Tableau가 BI 시장에서 성공한 이유 중 하나라고 봅니다.



3. R을 이용한 이용한 금융데이터 수집 및 포트폴리오 만들기


전직 증권사 퀀트였고 현재 메리츠 화재에서 데이터 분석을 하고 계신 이현열 님이 발표해주셨습니다. 현재 재무금융 박사 과정 재학 중이시며, '스마트베타'(2017), 'R을 이용한 퀀트 투자 포트폴리오 만들기'(2019)의 저자이시기도 합니다.


내용을 한 마디로 요약하면 세션의 제목이 되겠습니다. 일반 투자자를 위해 금융 데이터를 수집하는 방법(크롤링)과 자동화 하는 방법(Shiniy, AWS), 퀀트 전략을 구현하고 백테스트 하는 방법을 친절하고 자세하게 소개해주셨습니다. 깃험과 블로그도 운영 중이시고 최근 발매한 책에서도 관련 내용을 접하실 수 있다고 합니다. 개인적으로도 요즘 공부 중인 분야인데, 유용하게 참고할 수 있는 실전 팁이 많았던 강의였습니다. 발표 내용을 항목 별로 요약해보면 다음과 같습니다.


1) 크롤링

주가(네이버금융), 재무제표(fnguide), 밸류(fnguide) 수집 방법 공유


2) 모델링

GPA – PBR 모형 계산, 마법공식(그린블라츠)으로 종목 고르는 방법 시연


3) 백테스트

PerformanceAnalytics – Returnportfolio

수익률과 리밸런싱의 기간이 달라도 계산해줌


4) 자동화

AWS, cron, Shiny 등 (cronR ASIS)



사실 저도 업무에서 위와 같은 작업들을 계속 해오고 있지만, 퇴근 후 집에 가서 코드를 작성하는 일은 상당한 열정과 에너지를 추가적으로 필요로 하는 탓에 저의 개인 퀀트 프로젝트는 진도가 매우 더디게 나가고 있습니다. 발표자님 덕분에 학습과 시행착오 비용을 많이 줄일 수 있게 되어 매우 감사하게 생각합니다.



4. From shinyapp to CRAN


(주)차라투의 김진섭 님이 발표해주셨습니다. 의학 연구자 분들께 맞춤화된 연구 지원 서비스를 제공한 경험을 공유해주셨습니다. 발표 내용을 조금 듣다가 어느 순간 '아, 이걸 이렇게 하신거구나'하는 생각에 머리를 탁 치게 되었는데요, 개인적으로 심리학 석사 과정 중에 비슷한 경험을 해봤기 때문입니다.


논문 통계 분석 컨설팅 시장은 과거부터 있어 왔습니다. 알음알음이나 전문 에이전시를 통해 교육학과나 의과대학 같은 곳에서 고객을 주선받고, 논문 주제와 데이터에 맞춰 소정의 알바비를 받고 분석을 대행해주던 일입니다. 약 10여년 전에는 SPSS / SAS  같은 툴을 주로 썼습니다. 제 친구 중에는 아르바이트로 하다가 아예 에이전시를 직접 차린 경우도 있습니다.


통계 분석 대행 시장은 일종의 틈새 시장이라고 생각합니다. 통계 분석을 해야 하지만 통계 공부를 하기 싫거나 시간이 없거나 경험이 부족한 사람은 항상 있어왔고, 앞으로도 있을 것입니다. 달리 말하면 이건 시간과 돈을 바꾸는 전형적인 시장이라 할 수 있습니다. 과거에 SPSS 같은 툴이 지향했던게 '좀 더 쉽게 통계 분석을 할 수 있게 해주기 위해' GUI 를 편하게 만들어주는 전략인데, 그럼에도 불구하고 모든 연구의 가설이 다르고 데이터가 다르고 써야 되는 방법론이 다 다른건 해결을 못합니다. 결국 논문을 써야 되지만 시간이 부족한 사람은 돈을 받고 노가다를 대신해 줄 누군가를 찾게 되어 있습니다.


제가 이해하기로 발표자 님은 이런 류의 업무를 R-Shiny로 구현하신 것 같습니다. 매우 효과적인 방법이라고 생각합니다. 과거에는 클라이언트를 만나서 컨설팅을 해주고, 분석을 하고, 몇 번의 메일이 오고 가며 부족한 점을 보완하는 식으로 일을 했습니다. Shiny로 하면 컨설팅과 몇 번의 메일이 오고가는건 동일하겠지만, 클라이언트에게 좀 더 높은 자유도를 주는 효과를 볼 수 있을 것 같습니다. 이렇게 저렇게 조건을 다르게 잡고 다른 분석을 해보고 싶은 경우 마우스 클릭과 드래그로 해결이 되는 환경이고, 무엇보다 해당 분석에 특화된 기능들로 대시보드가 구성되었을테니 SPSS 같은 툴에 비할 바가 못 됩니다. 시각적 미려함은 말할 나위도 없습니다(몇 년 전까지만 해도 SAS / SPSS의 시각화 기능은 매우 조악한 수준이었습니다).


조금 먼저 나와야 해서 발표를 끝까지 듣지는 못했습니다. 제가 이해한 내용만 가지고 소감을 적어보면, 변화하는 시대의 흐름에 맞춰 좋은 도구로 문제를 해결한 사례가 아닐까 싶습니다.


전반적인 소감


해가 지나면서 계속 발표 세션이 줄어들고 있는 것은 아쉽지만 받아들여야 하는 현실인 것 같습니다. 대용량 데이터를 다루는 기업들의 데이터 파이프라인에 녹아들어갈 수 있는 언어로서, R은 최근 각광받는 Python에 비해 경쟁 우위가 떨어진다는게 부분적인 이유라고 개인적으로 생각합니다(그냥 제 업무 환경이 그런 것 같습니다).


그럼에도 불구하고 R은 통계 분석과 시각화에서 강점을 보유한 도구이고, 특히 Shiny의 경우 많은 가능성을 보여주는 것 같습니다. 특히 소규모 기업이나 1인 플레이어의 경우, 적은 자원으로 자신에게 최적화된 DIY 대시보드 앱을 개발해야 하는 상황에서, Shiny보다 뛰어난 대안을 찾기 어려운 것 같습니다(만약 조직 규모가 커지고 데이터 파이프라인이 복잡해지고, 제품 유지보수를 한 사람이 아닌 팀이 같이 해야 하는 상황이라면 이야기가 달라지겠지만요).


업계의 현황과 시대의 흐름을 경험할 수 있는 좋은 자리였습니다. 행사를 주최해주신 분들과 발표를 맡아주신 분들께 진심으로 감사드립니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari