[디블로터] ① “출발, 데이터 저널리즘 스터디”

가 +
가 -

데이터 저널리즘이 언론이 추구해야 할 방향이라고 합니다. 사실 ‘데이터’가 중요하지 않은 적은 없었습니다. 아마도 데이터 저널리즘은 사람이 혼자서는 처리할 수 없는 많은 데이터를 다루는 기술과 분석하는 기술, 그리고 이해하기 좋게 시각화하는 기술 등이 필요하다는 의미로 이해할 수 있겠습니다.

물론 <뉴욕타임스> 같은 거대 언론사의 콘텐츠는 전문적인 인력이 투입돼서 나오는 결과지만, 그만큼의 자원이 없다고 해서 지레 포기할 수는 없는 노릇입니다. 국내에서도 많은 정보가 웹에 돌아다니고 있고, 정부기관에서도 공공데이터 형식으로 자료를 제공하고 있습니다. 잘 활용한다면 이용해서 충분히 좋은 기사를 만들어낼 수 있지 않을까 싶었습니다. 취재해서 기사를 작성하는 것도 중요하지만, 확실한 데이터를 이용해서 유의미한 분석을 통해 기사를 제공하는 것도 못지 않게 필요합니다. 특히 데이터를 모아서 의미 있는 분석을 꺼낼 수 있다면 어떤 코멘트나 사례보다도 강력하게 기사를 뒷받침 할 수 있습니다.

시작은 식당입니다. 제육볶음과 계란찜, 우렁된장찌개가 차려진 밥상 앞에서 일단 서너 달 정도, 일주일에 하루의 시간을 비워달라고 요청했습니다. 사실 이게 쉬운 일은 아닙니다. 들어온 지 한 달, 인턴 기간을 포함해도 고작 석 달 된 기자라 아직 ‘생산성’도 많이 떨어지는데, 생산성이 더 떨어지는 걸 허락하기란 쉽지 않은 일입니다. ‘석 달 이후부터 슬슬 결과물을 만들어 보겠다’고 호기롭게 뱉었으니 일단 시작입니다. 블로터 미디어랩 소속 개발자와 기자, 그리고 지난 여름에 같이 인턴활동을 했던 황유덕씨와 함께 데이터 저널리즘 스터디 ‘디블로터’를 시작합니다. 시작은 ‘R’입니다.

데이터로 콘텐츠를 만들어내려면

cabbage

flickr, netstrolling, CC BY-SA

데이터로 결과물을 만들어내려면 몇 가지 단계를 거쳐야 합니다. 우선 ‘수집’입니다. 웹에 돌아다니는 정보들을 가지고 와야 합니다. 다음은 ‘정제’ 단계입니다. 데이터를 가져온다고 해서 바로 쓸 수 있지는 않습니다. 필요 없는 값도 빼야 하고, 헝태도 맞춰야 합니다. 일종의 재료를 다듬는 과정입니다. 밭에서 배추를 뽑아왔다고 바로 양념 치고 썰어서 먹을 수는 없으니까요. 배추를 씻고 소금에 절이는 그런 과정과 비슷하다고 보시면 될 것 같습니다.

이제 깨끗해진 데이터를 가지고 분석하고 시각화를 합니다. 분석한 것만으로도 결과물이 될 수 있고, 분석하기 위해서 시각화를 사용할 수도 있습니다. 또 분석한 결과물의 전달력을 높이기 위해 시각화를 할 수도 있겠죠. 이렇게 결과물이 만들어집니다.

이 일련의 과정을 수행하기 위해서는 약간의 개발지식이 필요합니다. 도구에 대한 지식 없이 복사 붙여넣기의 방식으로 데이터를 만들어내고, 또 일일이 수정하는 식으로 활용하기는 쉽지 않습니다. 거의 불가능에 가까운 수준입니다. 분석이나 시각화도 마찬가지입니다.

데이터 분석을 위해 저희가 선택한 도구는 ‘R’라는 프로그래밍 언어입니다. 데이터를 만지고 시각화할 수 있는 도구입니다. 특히 디플라이알, 지지맵, 지지플롯 등 활용성이 높은 패키지를 사용할 수 있습니다. ‘R스튜디오’를 사용하면 훨씬 편리하게 사용할 수 있다는 점도 매력적입니다. 파이프라인 연산자 등 파이썬에 비해서 좀 더 도구에 가까운 느낌을 주기 때문에 더 쉽게 느끼기도 했습니다. 무엇보다 제가 꿈꾸는 데이터 디자이너 과정을 통해서 R의 입문 수준 정도는 접해뒀기 때문에 심리적 장벽이 낮았다는 것도 한몫했습니다.

앞으로는 어떻게 공부했는지 기록으로 남겨두고자 합니다. 많은 조언과 응원 부탁합니다. 1주차에 공부한 내용을 간략히 소개합니다.

팀커뮤니케이션 도구 사용하기 : ‘슬랙’

dbloter5

디블로터 슬랙 화면 갈무리

팀커뮤니케이션 도구로는 널리 쓰이는 슬랙을 사용했습니다. 채널을 자유롭게 생성할 수 있고 하나의 대화창에서 채널을 자유롭게 이동하면서 쓰기도 좋습니다. 메시지를 ‘핀’으로 고정할 수도 있고요. 아무래도 채팅이 목적인 ‘카카오톡’보다는 협업할 때 유용합니다.

R 설치 및 실행

dbloter4

R스튜디오 구동 화면

구글에 검색해서 R와 R스튜디오를 설치하면 됩니다. R스튜디오는 일종의 통합 개발환경인데요. R를 더 편리하게 사용할 수 있게 돕습니다. 스크립트 관리에도 좋고, 함수에 대해 궁금한 점이 생긴다면 바로 찾아볼 수도 있습니다. 생성 후에는 프로젝트를 만들고 폴더를 지정해서 사용하면 편리합니다.

dbloter2

데이터캠프 화면 갈무리

dbloter1

R는 여러 방법으로 배울 수 있습니다. 데이터캠프에서 튜토리얼 및 강의를 들어도 되고, 책을 사도 됩니다. 블로그를 찾아보는 것도 좋은 방법입니다. 공식 문서들을 참고해도 좋습니다. 하단에 서술하는 내용은 ‘꿈꾸는 데이터 디자이너’ 2기에서 R를 강의하는 이민호 님 깃허브를 허락하에 참고했습니다.

R 베이직

dbloter3

이하 내용은 이민호님의 블로그를 참고헀습니다.

R의 데이터 타입은 크게 3가지입니다(숫자형, 문자형, 논리형). 이 데이터를 몇 가지 형태로 묶어내서 다룰 수 있습니다. 데이터가 묶이는 형태는 집합과 유사한 벡터, 행렬인 매트릭스, 표의 형태를 가진 데이터 프레임, 이런 형태를 한데 묶을 수 있는 리스트가 있습니다.

벡터는 동일한 타입의 데이터를 한 개 이상 저장해둔 형태를 말합니다. 하나의 벡터에는 하나의 타입만 들어갈 수 있습니다. 벡터는 c()라는 함수를 이용해 만들 수 있습니다. 이런 식입니다.

new_vector = c(1,2,3,4,5)

벡터에서 원하는 항목을 선택하려면 순서를 부르거나, 범위를 지정하거나, 벡터를 이용하면 됩니다.

더 읽어보세요!

매트릭스는 행과 열을 가지는 백터입니다. 백터와 마찬가지로 같은 유형의 타입만 적용할 수 있습니다. matrix(data = data, nrow = nrow, ncol = ncol, byrow = TRUE) 로 만들 수 있습니다. 행렬의 데이터에는 [행 번호, 열 번호]의 형태로 접근합니다. 연산도 수행할 수 있습니다.

데이터 프레임은 흔히 접할 수 있는 자료와 유사한 형태입니다. 마치 엑셀에 그리는 표처럼 생겼습니다. 행렬처럼 행과 열의 길이가 일정하지만, 열마다 다른 형태의 자료를 담을 수 있습니다. 예컨대 <이름 : 채반석, 나이 : 26, 참석여부 : T> 의 데이터를 한 형태에서 사용할 수 있죠. 데이터 프레임에서 데이터에 접근할 때는 $를 사용할 수 있습니다(Ex. iris$Species).

리스트는 위에 설명한 각종 형태의 데이터를 한 데 묶을 수 있습니다. 데이터의 구조를 확인할 때는 str() 함수를 사용하면 됩니다. 앞으로는 이런 형태의 데이터에 접근해서 정제 및 가공하는 과정을 학습할 예정입니다.

R에서도 반복문(for)과 조건문(if/else)을 사용할 수 있습니다. 연산자도 같습니다.(+, – , % , * , 같다 ==, 다르다 !=, 등) 다른 언어와 비슷하기 때문에 따로 설명은 하지 않겠습니다. 다음 시간에는 패키지를 활용해서 데이터를 긁어오는 과정부터 이야기해 보겠습니다.

디블로터 1주차 학습 내용

  • 스터디 이름짓기!!
  • 목표설정
  • 팀 커뮤니케이션 툴 선정
  • R / R Studio 설치
  • R의 기본적인 데이터 구조 공부
  • 연산자와 조건문, 반복문
  • rvest를 이용한 데이터 수집

디블로터 2주차 학습 내용(예정)

  • dplyr