Appsilon State of Shiny 2023 훑어보기
다 똑같구만
7 min readSep 4, 2023
최애하는 Appsilon에서 Shiny 사용자(R-bloggers, Shiny Weekly 사용자 158명)를 대상으로 설문조사를 진행했고, 그 결과를 8월 말에 얼리 억세스로 공유했다.
리포트에는 Appsilon, Shiny conf, Rhinoverse 에 대한 소개 가 있긴 한데 안궁금할테니 생략하게슴
설문내용
설문 내용은 총 26개 인데, 결과를 보기 전에 본인의 상황 그리고 행복회로를 돌려보는 것도 좋음. 추가로 리포트에 모든 설문 결과가 들어 있지는 않다.
- Shiny 개발에 어떤
프로그래밍 언어
를 사용하는지 - 그 외에 사용하는
프레임워크
는 어떤 것이 있는지 Shiny 개발
에 어떤 상용툴을 사용하는지데이터 시각화
를 위해 어떤 상용툴을 사용하는지- 속한 조직의
클라우드
활용도는 어떤지 - 클라우드를 사용한다면 어디 것을 사용하는지
- 속한 조직에서
AI
를 어떻게 사용하는지 - Shiny 개발에 어떤
OS
를 사용하는지 - 사용중인
AI 툴
이 있는지 - Shiny app이
도움 되는 의사결정권자
는 누구인지 - Shiny 개발에서
선호되는 패키지
는 어떤것인지 - 속한 조직에서 Shiny를 활용하는
주 목적
은 무엇인지 - 조직이 속한 산업
도메인
은 - Shiny 개발을 할때 팀에서 가장
도전적인 문제
는 - Shiny app의
테스팅과 피드백
을 위해 어떤 것을 사용하는지 - Shiny app으로 이뤄낸
가장 큰 성공
은 무엇인지 - R Shiny의
가장 큰 가치
는 무엇이라 생각하는지 - R Shiny를 조직 단위에서 사용할때 가장 큰 어려움은
- What would be your dream Shiny project, and its impact on your organization? (의미를 모르겠어서 원어로 둠)
- 사는
지역
- 조직의
크기
- 조직에서 하는
직무
- 조직에서 R Shiny를 사용하는 지
- 팀의 크기
- 조직에 DS가 몇명있는지
- 현재 팀에서 개발/유지 중인 Shiny app의 개수는
리포트 내용
- 산업 도메인: 29개 그 중
Tech
,Healthcare
,Finance
,Education
,Government
가 가장 많은 비율을 차지함. - 조직의 크기 + 어려움: 주요 문제는 배포, 스케일, 전문가 부족 (개공감)
- 팀의 크기: 데이터팀 / 개발팀이고 95%가 20명 이하
- 직무명: Researcher / Scientist (17%), DS / MLE (15%), R & Shiny Developer (10%) 등. (undefined 가 12%)
- 상위 매니징 직무로 갈 수록, 상용툴 (posit connect, workbench등) 많이 사용함 -> 비용에 대한 권한이 있어서가 아닐까
- Shiny 효과: 의사결정 / 커뮤니케이션 등
- 개발에서 어려움: 기술, 자료, 협업, 보안 등 (Python에 비하면 자료가 적긴하다)
- Shiny와 같이 쓰는 패키지: shiny 프레임워크 + 대시보드 스타일 + 시각화 + 데이터 연결 패키지 (아래 패키지 중 많은 부분이 dean attali 형님의 작품!)
- Shiny 개발에 쓰는 언어: R >> Python >>> 그외. SQL 개고수…
- Shiny의 대체재:
없음!!!
>> Dash > Streamlit > Shiny for python…
- Shiny랑 연결하는 DB: SQL >>
안씀
> noSQL >> sas
- 클라우드 벤더: AWS > Azure =
안씀
> GCP > 기타
- OS: 윈도우 > 리눅스 > 맥: 중복허용을 감안해도 윈도우가 너무 쎄다 ㅋㅋ
- AI 사용:
안씀
> 조금 씀 >> 많이 씀 > 예전에 썼음
정리
- Shiny는 시각화, 대시보드, 웹페이지를 주요 목적으로 사용됨
- 배포와 스케일링, 퍼포먼스 튜닝이 제일 어려운 문제
- 이외에도 Shiny 개발에는 협업, 지식공유, 지속적인 학습 같은 소프트한 면들도 중요함 (Appsilon이 Shiny community를 운영하는 이유)
리포트에 대한 (개인적인) 첨언
- 종종 얘기했던 것처럼 나한테 Shiny의 배포와 스케일링, 서버단의 작업은 수년간 크립토나이트였음. 그나마 배포는 요즘 열심히 짱구를 굴리고 있긴 하다. (wasm!)
- 이렇게 된 맥락을 아는 것이 중요한데,
R은 Python과 다르게 통계 배경을 가진 연구 도메인
에서 주로 쓴다. (회사보단 학교 연구실) 그러다보니 연구자들이 개인적인 사비를 태우기가 어려운 상황이 많아, 최대한 비용이 안드는 방법을 찾게 된다. (Government
가 있는 이유) - 그렇기 때문에 적더라도 클라우드에 비용을 태우는 것이 부담되기 때문에 서버없이 혼자 공부해가며 로컬에서 작업하는 습관이 들여진 것이 아닐까 (내 이야기임ㅋㅋ)
- 많은 설문에서
없음
,안씀
등이 자주 등장하는 맥락도 동일. 개발이 주목적이 아닌,통계가 메인이고 이를 웹으로 뿌리기 위한, 그리고 이를 위한 학습 리소스가 제일 최소한으로 드는 방법으로 Shiny
를 고른 것이기 때문에 만약 (비용이 있거나 수요가 있어서) 다른 상용 툴이나 클라우드까지 섞어서 써야할 정도의 스케일이면 애초에 Shiny가 선택지에 생길 수가 없다. (태블로 써라) - Shiny는 대시보드의 목적으로도 많이 쓰이지만, 처음 설계된 목적은
R에서 웹페이지를
만들어 낼 수 있는 목적이었음. 즉, R의 기능을 활용하는 것이 1 목적이었고 기능 중 하나로 데이터 시각화(대시보드)가 있는 것 - JS 기반의 웹을 활용하는 기술이 Shiny에서 많이 쓰이는 이유 역시 초기 목적이 웹과의 연동이었기 때문에, 반대로
Python 계열 (Dash / Plotly / Streamlit) 은 ML이 주목적
인만큼 JS보다는 TF같은 AI 라이브러리 연동이 더 많음 - Shiny의 체감되는 단점 중 하나는
디자인이 단조롭다
는 것. (트위터가 버린) Bootstrap을 주로 활용하기 때문에 최근의 웹 프론트에서 등장하는 디자인 메타와는 수년의 트렌드 차이가 있는 것 같다.
- 그치만 늘 그렇듯 제한된 상태에서 극한을 뽑아내는 고인물들이 있다. 아래는 vue를 섞어서 만든 shiny 앱
- Shiny for python이 streamlit에는 아직 밀리지만 16%라는 지표를 나타낸 다. posit 입장에서는 (성에 안 차긴 하겠지만 그래도) 만족스러울 이야기.
번외
- R (Shiny) 외길인생 애옹킴은 MS가 손절했고, Posit은 휘청거린다지만 Appsilon 형님들만 믿고 간다. (차라투를 K-Appsilon으로…!)
- 리포트 PDF 파일 링크
- 나를 포함하여 굇수들이 참여한 shinykorea 커뮤니티가 운영 중이다. R / Shiny에 대해 배우고 싶거나 지식 / 경험 공유 하고 싶다면 자유롭게 참여 가능
- 리포트 테마, 차트 색깔 깔쌈하다.