데이터 생활화 프로젝트, ‘내 문제’부터 시작해보자 – Samsung Newsroom Korea
데이터 생활화 프로젝트, ‘내 문제’부터 시작해보자
지난 칼럼에선 데이터 지능을 키우는 방법으로서의 데이터 생활화와 그에 유용한 접근 방식을 다양하게 살펴봤다. 그중 하나가 자신의 일상(과 업무) 관련 문제를 데이터로 해결하는 것이었다. 오늘은 그간 내가 수행해온 일명 ‘개인 데이터 과학 프로젝트’ 얘길 좀 해볼까 한다.
개인 데이터 분석 작업의 핵심은 자신의 경험을 최대한 생생하게 전달하는 데 있다. 사실 특정 개인이 자신과 연관된 데이터를 모아 분석한다, 는 게 생소하게 느껴질 수도 있다. 기억력이 별로 좋지 않았던 난 다행히 정리하는 습관이 어릴 때부터 몸에 배어 학창 시절부터 오답 노트를 만들어 썼고, 이후에도 늘 주변 현상을 관찰해 기록으로 남기곤 했다. 일정 관리나 생산성, 행복과 건강, 최근엔 육아에 이르기까지 관심사는 전부 데이터 프로젝트의 대상이 됐다. 그런 열정 덕에 미국 유학을 떠날 수 있었고 지금껏 ‘검색∙추천 분야 데이터 과학자’의 길을 걷고 있다.
데이터 공부를 시작할 때 가장 좋은 방법은 자기 주변 문제와 관련 데이터에 집중하는 것이다. 여기엔 몇 가지 이유가 있다. 우선 자신의 문제를 해결하는 것만큼 동기 부여가 확실한 작업은 없다. 이슈 정의와 데이터 수집∙분석, 결과 공유 등 데이터 문제 해결의 전 과정을 경험할 수도 있다. 타인 데이터 연구를 주로 하는 데이터 과학자에게 개인 데이터 과학 프로젝트는 문제 해결을 원하는 고객 입장을 간접적으로나마 체험할 수 있는 기회이기도 하다.
#프로젝트 01_행복 정도 측정
배부르고 덜 일하면 더 행복할까?
사실 난 데이터 과학자로 일하기 훨씬 전부터 삶과 업무의 정성적(定性的) 측면을 데이터화하려 노력해왔다. 그래서 2002년부터 나 자신의 행복 정도나 생산성을 지표화하기 위해 다양한 프로젝트를 수행했고, 그 과정에서 많은 걸 배우고 느꼈다. 내 경험상 눈에 보이지 않는 현상을 데이터로 만드는 게 결코 쉬운 일은 아니다. 하지만 전혀 불가능한 일도 아니었다. 좀 더 쉽게 설명하기 위해 가장 오랫동안 진행해온 행복 정도 측정 프로젝트를 예로 들어보겠다.
사실 개인의 행복은 워낙 복잡하고 미묘한 가치여서 지표화하려면 다양한 데이터 수집∙처리∙분석 작업이 필수다. 이와 관련, 최근 내가 사용한 도구는 ‘리포터(Reporter)’란 애플리케이션(이하 ‘앱’)이었다. 스스로 설문조사를 수행, 데이터를 수집하는 이 앱에 데이터를 입력하면 앱 자체적으로 제공하는 기본 시각화 정보도 활용할 수 있다.
▲데이터 수집 전문 앱 ‘리포터’의 주요 인터페이스
좀 더 고급 분석이나 시각화 작업을 원한다면 앱 내 데이터를 CSV(Comma Separated Value)[1]나 JSON(JavaScript Object Notation)[2] 형식으로 내려 받은 후 엑셀이나 아르(R)[3] 프로그램을 써서 분석하면 된다. 2015년 초엔 건강∙행복∙생산성 간 상관관계를 분석하기 위해 자바스크립트 대시보드를 만들어 활용했다. 아래 도표는 △포만감(fullness) △행복(happiness) △업무 시간(time) 간 관계를 보여준다. 그 과정에서 D3.js[4]처럼 다양한 시각화 도구를 익힐 수 있었던 건 덤이다.
▲내 건강과 행복 정도, 생산성 간 상관관계를 보여주는 도표
#프로젝트 02_육아 데이터 수집
‘10시간 통잠’ 기적, 비결은 이것!
지난해 6월 예쁜 딸을 얻은 후 ‘초보 부모’로서 갖가지 경험과 도전을 소화하고 있다. 나름 ‘데이터 마니아’인 만큼 (육아라는) 새 과제에 맞서는 방법으로도 데이터를 활용했다. 아직 첫돌도 지나지 않은 아이와 대화를 나누는 건 무리지만 언제, 얼마나 먹고 자고 용변 보는지 파악할 수 있다면(그리고 그 결과 어떻게 성장하는지 가늠할 수 있다면) 아이의 건강과 성장 상태를 이해하고 적절한 의사 결정을 내릴 수 있겠단 생각이었다.
다행히 꽤 다양한 육아 데이터 기록∙분석 앱이 시중에 나와있었다. 그중 내가 고른 건 ‘스프라우트(Sprout)’였다. 아이의 식사와 수면, 활동 내역은 물론이고 성장∙발달 상황까지 기록할 수 있어 특히 맘에 들었다. ‘아기추적기(Baby Tracker)’도 평이 좋았지만 개인적으론 데이터 입∙출력 용이성(CSV 형태로 다운로드) 측면에서 스프라우트만 한 앱이 없다고 생각했다. 기록해둔 데이터를 추출할 수 있어야 추가 분석도 가능해지기 때문이다.
아래는 스프라우트의 데이터 입력 인터페이스다. 아이를 먹이고 입히며 재우다 보면 매 시점에 정확히 데이터를 입력하는 게 거의 불가능하단 사실을 알 수 있다. (아이가 울어대는데 데이터를 기록할 정신이 어디 있겠는가!) 나 역시 하루에도 수십 번씩 데이터를 기록하고 수정하길 반복했다. 스프라우트는 데이터를 즉각적으로 입력하기 어려운 육아 특성에 맞춰 지나간 데이터 입력과 입력한 내용 수정 둘 다 용이하다. 데이터 기록 작업이 하루에도 수십 차례 이뤄지는 게 다반사인 만큼 이 같은 ‘디테일(detail)’은 무척 중요하다.
▲육아 트래킹 앱 ‘스프라우트’의 데이터 입력 인터페이스
아래 이미지는 지난해 9월 기록한 딸아이의 주간 수면·수유·배변 패턴과 최근 이틀간의 수유, 그리고 수유 상세 데이터<왼쪽부터 차례로>다. 왼쪽 도표를 좀 더 자세히 보면 아이는 매일 주로 오전 8시에 일어나 여섯 번 150㎖의 분유를 먹고 2회 용변을 본다. 그러곤 서너 차례 낮잠을 잔다. 이처럼 앱에서 기본적으로 제공하는 기능만 활용해도 아이의 일상 유형을 한눈에 파악할 수 있다.
▲스프라우트에서 출력한 딸아이의 일상 유형
육아 데이터는 자녀의 성장 과정에서 미시적 의사 결정과 거시적 습관 형성에 모두 도움이 된다. 부모 입장에선 매 순간 아이가 보내는 다양한 신호(주로 울음)에 적절히 대응해야 하는데 수유(수면) 데이터를 잘 분석하면 배가 고픈지, 졸린지 혹은 다른 문제가 있는지 판단할 수 있다. 나도 이 과정을 거쳐 “수유 후 한 시간쯤 지나면 아이를 재우고 서너 시간이 지나면 다시 수유하는” 걸 규칙으로 정했다.
물론 아이가 늘 이 규칙대로 먹고 자는 건 아니지만 데이터를 활용하면 보다 큰 틀에서 상황을 파악, 아이의 일정을 관리할 수 있다. 내 경우를 예로 들면 1일 수유 횟수와 양을 관리해 매일 오후 8시부터 이튿날 오전 7시까진 되도록 아이를 재우려고 노력했다. 그 결과, 아이는 비교적 규칙적인 식사·수면 습관을 갖게 됐고, 생후 100일 전후부턴 밤에 10시간 이상 자는 착한(!) 아이가 됐다.
생후 100일 전후 나타나는 아이의 변화는 하루 중 수유 시각∙간격 간 관계를 시각화하면 보다 확실히 알 수 있다. 난 수유 시각을 정확히 맞추기보다 정해진 수유 간격을 유지하는 데 중점을 뒀다. 하지만 아래 그래픽을 보면 평균 수유 간격이 점점 벌어지는 걸 알 수 있다. 딸아이는 생후 100일 전에도 밤에 한 번 이상 깨지 않는 게 보통이었지만, 그 이후부턴 오후 일고여덟 시에 수유한 후 10시간 전후로 한 번도 깨지 않고 잠들어줘 부모를 기쁘게 했다(우리 부부는 이를 가리켜 ‘100일의 기적’이라고 불렀다).
▲딸아이를 키우며 기록한 수유 시각(X)과 수유 간격(Y) 간 관계 분포 그래프
이제 당신 차례… 중요한 건 ‘일단 시도하기’
위 두 프로젝트 사례는 대단한 기술을 필요로 하지 않았다. 하지만 다양한 데이터와 문제를 접하고 분석 경험을 쌓는 덴 큰 도움을 줬다. 제일 뜻 깊었던 건 연습을 거듭하며 데이터 과학에 대한 관심과 열정을 키워나갈 수 있었단 사실이다. 내가 데이터 과학자라서 가능했던 건 아니다. 누구든 데이터 분야에 조금만 관심을 갖고 주변을 둘러보면 흥미로운 사례는 얼마든지 찾아낼 수 있다. 만약 아무리 둘러봐도 적절한 문제가 발견되지 않는다면 다양한 공개 데이터를 활용하면 된다.
다음 회차에선 공개 데이터를 데이터 학습에 활용하려면 어떻게 해야 하는지 알아보겠다. 아울러 이해를 돕기 위한 사례도 다양하게 들여다볼 생각이다.
[1] 쉼표를 기준으로 항목을 구분, 저장한 데이터. 데이터베이스나 표 계산 소프트웨어 데이터를 보존할 때 사용한다
[2] 가벼운 데이터 교환 형식. 사람이 읽고 쓰기 쉬운 건 물론, 기계 분석 작업 시에도 용이하다
[3] 오픈소스(Open Source) 프로그래밍 언어 중 하나. 다량의 데이터를 통계적 방법으로 분석할 때 쓰인다
[4] 데이터 시각화를 구현하는 자바스크립트 라이브러리
TAGS개인 데이터데이터 분석데이터 생활화데이터 측정