신재현 bio photo

신재현

저는 ...더보기

Email Github Stackoverflow LinkedIn

진정 데이터 드리븐하게 일하는 문화를 만들어보고 싶어서 시작했다.

회사의 비전을 실천하기 위해, 각 팀과 개인들은 목표를 설정해 함께 일하고 있을 것이다. 그 세부 목표와 목표 설정 배경, 진행사항 등이 동료들과 잘 공유되어야한다. 그리고 그것을 바탕으로 서로 도움을 주고 받는데 어려움이 없다면 비로소 회사 잘 돌아간다는 소리를 들을수 있는거다.

게다가 위의 모든 과정이 객관적인 데이터를 바탕으로 결정되고 공유된다면 “우리 회사는 데이터 드리븐하게 일하고 있어!” 라고 당당히 말할 수 있을텐데 이게 참 쉬운일이 아니다. 데이터를 바라보는 서도 다른 관점은 차치하고서라도, 모두가 동일한 데이터를 같은 방법으로 접근하는 것 조차 쉽지 않다.

먼저, 서비스가 성장하고 팀원이 늘어나고 해야할 업무들이 많이지면서 생긴 문제점은

  • 엑셀, Google Sheet, CSV, SQL 등 여러 다른 포멧의 파일들이 번잡하게 공유되고 관리가 어렵다.
  • 분석용으로 생산한 위의 데이터가 어떤 query를 통해 추출된건지 추적하기 쉽지 않다.
  • 정규화된 DB 테이블들은 비 개발자 관점에서 이해하기 쉽지 않다. SQL을 조금 배운다고 해결될 일이 아니다.
  • SQL로 질의할 수 없는 데이터 스토어가 생긴다.

위에 나열된 문제를 풀기 위해, R이 설치되어 있고 권한만 있으면 누구든 쉽게 로컬에서 사용할 수 있는 사내용 R package를 만들어 배포하면 좋겠다고 생각했다. Airbnb 데이터팀의 케이스에서도 아이디어를 얻었다.1

개발을 하면서 가장 중요하게 생각했던 것은

  • 비 개발자의 관점에서도 쉽게 이해할 수 있는 모델링이어야한다.
  • 최대한 사용하기 쉬운 인터페이스를 제공한다.
  • 통계 분석용 데이터를 생산하는데 일관성을 가지고 있어야한다.
  • 도큐먼트를 예제와 함께 꼼꼼하게 써준다.

덧붙여, 뭐라도 하나 두드리면 “오~, 나 이게 배워보고 싶어요!” 라는 탄성이 나올만한 통계/분석용 함수도 몇 개 만들어 놓는 것이다.

대략적인 모델
원대한 그림이었다. 현재까진 Postgres와 Mongodb에 대한 모델만 구현되어있다.

이 패키지는 두가지 핵심 모듈을 제공한다.

첫번째는 Postgres와 Mongodb 등 여러 인프라에 저장된 다양한 형식의 데이터를 일관된 인터페이스의 R 함수를 통해 불러오는 것이다. R의 S4 클래스로 개발되었다. 정규화된 스키마가 아닌 도메인의 관점에서 데이터 획득할 수 있게 하였으며, raw한 데이터를 transforming/cleaning 하는 작업도 함께 처리되도록 하였다. 대략 이런식이다.

product  <- Product(status = "onsale")
getData(product)

user <- User(begin = "2016-01-01", end = "2016-02-05")
getData(profit)

두번째 모듈은 Reshaping 함수들의 집합이다. 시계열 분석을 위한 컬럼을 추가해주는 함수, 각 데이터의 속성에 따라 그룹핑을 도와주는 함수 등 우리 서비스의 도메인에 맞게 통계 분석에 유용한 기능들을 추가했다. 앞으로도 지속적으로 추가해나갈 생각이다.

마지막으로 이 패키지는 Github의 Private Repository를 통해 권한만 있으면 누구든 쉽게 다운받아 사용할 수 있도록 했다.

이렇게 첫번째 릴리즈를 하고 몇개월이 지났다.
“우리 회사의 직원들은 모두가 R을 사용하고 각자의 분석을 공유하며 일하고 있어요!” 라고 말할 수준은 당연히 아니다. 어떤 회사는 직원 모두가 SQL을 사용하도록 권유하고 시험도 본다는 얘기를 들은거 같은데, 이것도 참 쉬운일이 아니다. 이렇게 강제한다고 해서 될 일도 아니다. 패키지 하나 만들어 놓고 하루이틀 알린다고 될 일도 아니다.

처음 릴리즈하고는 R/RStudio 설치법 부터, 패키지 메뉴얼과 실제 사례를 기반으로 한 예제들을 위키에 작성했다. 결론적으로 모두는 아니지만 몇몇 동료들은 아주 유용하게 사용하고 있다. 보람차게도 R을 사용해 리포트를 만들어 공유하기 시작했고, 각자의 분석에 대한 R 스크립트들도 아카이빙되기 시작했다. 주간으로 월간으로 스크립트를 돌려 자동화 하면서 보는 동료들도 생겼다.

사실 하둡이나 스파크와 같은 멋진 기술로 빅데이터에서 진주같은 인사이트를 얻어냈다는 성공한 기업들의 사례들이 많이 등장한다. 그런 기술을 사용하지 않는다는 사실에 조바심이 들 정도이나, 사실 데이터 드리븐하게 일하기 위한 필수 요소는 아니라고 생각한다.2

회사에서 일하는 동료 모두가 쉽게 데이터에 접근할 수 있고, 저마다의 분석을 공유하며 크고 작은 결정을 함께 만들어나가는 문화를 먼저 만들어보고 싶었다. 갈 길이 멀다. 이제 첫 삽 하나 떴다고 생각한다.