정보

빅데이터 수집하기

많이 모으는 것이 목적이 아닙니다.
무엇을 알고 싶은지부터 정해야 합니다.

학습 목표

  1. 빅데이터 수집의 다섯 단계를 순서대로 들고, 첫 단계를 건너뛰면 무엇이 어긋나는지 설명할 수 있다.
  2. 직접 모으는 방법과 이미 있는 것을 받아 오는 방법을 구분하고, 상황에 맞는 쪽을 고를 수 있다.
  3. 전처리가 무엇을 하는 일인지 설명하고, 수집한 표에서 고쳐야 할 자리를 찾아낼 수 있다.

다섯 단계

빅데이터는 누가 모으려고 애쓰지 않아도 저절로 쌓입니다. 그렇다면 그냥 가져다 쓰면 될까요? 그렇지 않습니다. 쌓여 있는 것과 내가 쓸 수 있는 것은 다릅니다. 쌓인 더미에서 내 물음에 답할 수 있는 부분만 꺼내고, 쓸 수 있는 모양으로 정리하는 일이 필요합니다. 이 과정이 빅데이터 수집이며 다섯 단계로 이루어집니다.

1

목표 이해하기

무엇을 알고 싶은지를 먼저 정합니다. 그리고 그것을 알려면 어떤 정보가 있어야 하는지를 적습니다. 아직 데이터를 건드리지 않습니다.

2

계획 세우기

그 정보를 어디에서 어떤 방법으로 얻을지 정합니다. 직접 측정할 것인지, 물어볼 것인지, 이미 있는 것을 받아 올 것인지가 여기서 정해집니다.

3

수집하기

계획대로 실제로 모읍니다. 이 단계는 계획이 제대로 서 있으면 가장 단순한 단계입니다.

4

전처리하기

모은 것을 쓸 수 있는 모양으로 정리합니다. 실제로 가장 손이 많이 가는 단계입니다. 「전처리」 절에서 따로 봅니다.

5

저장하기

정리한 데이터를 다음에 꺼내 쓸 수 있는 형식으로 저장합니다. 나중에 여러 사람이 함께 쓸 것이라면 형식을 잘 골라 두어야 합니다.

1단계를 건너뛰면 벌어지는 일

「일단 많이 모아 두고 나중에 생각하자」가 가장 흔한 실수입니다. 목표가 없으면 무엇을 모아야 할지 정할 수 없으니 손에 잡히는 대로 모으게 되고, 정작 알고 싶은 것을 알아낼 데이터는 빠져 있기 일쑤입니다.

목표가 무엇을 모을지 정하는 것이지, 모은 것이 목표를 정하는 것이 아닙니다. 게다가 필요 없는 것까지 모으면 그만큼 남의 정보를 쓸데없이 가져오게 됩니다.

「우리 학교 앞 버스 정류장이 언제 가장 붐비는가」를 알아보는 계획 (수업용 예)
단계 적은 내용
목표 이해하기 학교 앞 정류장이 붐비는 시간대를 찾아 등교 시간을 조정할지 판단한다
계획 세우기 공공 데이터 포털의 정류장별 · 시간대별 승하차 인원 자료를 받아 온다
수집하기 우리 학교 앞 정류장이 들어 있는 자료를 내려받는다
전처리하기 다른 정류장의 줄과 쓰지 않을 칸을 지우고, 시간대별로 승하차를 더한다
저장하기 표 형식으로 저장해 그래프를 그릴 수 있게 한다
스스로 확인

「정류장이 언제 가장 붐비는가」 계획 표의 목표가 「학생들이 어느 정류장에서 타는지 알아본다」였다면, 2단계의 계획은 어떻게 달라졌을까요?

어떻게 모으나

2단계에서 정해야 할 것이 방법입니다. 크게 두 갈래입니다. 내가 직접 만들어 내는 것과 이미 있는 것을 받아 오는 것입니다.

직접 모으기 — 센서로 측정하기

사물 인터넷 장치가 그대로 데이터 수집 장치가 됩니다. 교실 온도, 복도의 사람 수, 흙의 물기를 계속 측정해서 쌓습니다.

내가 원하는 것을 정확히 측정할 수 있지만 장치를 만들고 관리해야 하고, 측정하기 시작한 뒤의 것만 모입니다. 지난달 자료는 얻을 수 없습니다.

직접 모으기 — 물어보기

설문으로 답을 받습니다. 온라인 설문 도구를 쓰면 모으고 정리하는 일이 한꺼번에 됩니다.

센서로는 측정할 수 없는 것을 얻을 수 있습니다. 「왜 그랬는가」나 「어떻게 느꼈는가」는 물어야만 알 수 있습니다. 대신 답한 사람만큼만 모이고, 답이 사실과 다를 수도 있습니다.


받아 오는 갈래는 남이 이미 모아 둔 것을 받아 오는 것입니다. 규모가 큰 데이터는 대개 이쪽입니다. 학생 혼자 몇 해치 버스 승객 수를 측정할 수는 없기 때문입니다.

공개된 데이터 받아 오기

나라나 지방 자치 단체가 모은 자료를 누구나 쓰도록 열어 둔 것을 공공 데이터라고 합니다. 교통 · 인구 · 날씨 · 환경처럼 개인이 모을 수 없는 규모의 자료를 얻을 수 있습니다.

내려받아 바로 쓸 수 있는 파일로 주는 곳이 많아 수업에서 쓰기에 편한 방법입니다.

누리집에서 수집하기

프로그램이 누리집을 돌아다니며 데이터를 모으게 하는 방법입니다. 자주 짝지어 나오는 두 낱말이 있습니다.

  • 크롤링 — 누리집을 따라다니며 어디에 무엇이 있는지 탐색하는 일. 지도를 그리는 쪽입니다.
  • 스크래핑 — 찾아 둔 자리에서 필요한 값을 실제로 추출해 오는 일. 추출하는 쪽입니다.

가격 비교 서비스가 여러 쇼핑 누리집을 돌며 상품 페이지를 찾아 두는 것이 크롤링, 그 페이지에서 가격만 골라 모으는 것이 스크래핑입니다.

고르는 기준은 「목표에 답할 수 있는가」입니다

네 방법 가운데 더 좋은 방법이 정해져 있지 않습니다. 「우리 반이 왜 급식을 남기는가」를 알고 싶다면 아무리 큰 공공 데이터를 찾아봐도 답이 없습니다. 물어봐야 합니다. 반대로 「우리 지역 버스가 언제 붐비는가」를 설문으로 알아내려 하면, 몇십 명의 기억에 기대게 되어 실제와 크게 어긋나기 쉽습니다.

여러 방법을 겹쳐 쓰는 것이 흔합니다. 공공 데이터로 「언제 붐비는지」를 알아낸 다음, 설문으로 「그 시간에 왜 그 정류장을 쓰는지」를 물으면 서로가 못 하는 것을 메워 줍니다.

스스로 확인

「우리 학교 도서관에서 어떤 책이 인기 있는가」를 알아보려 합니다. 네 방법 가운데 무엇을 고르겠습니까? 고른 방법으로는 알 수 없는 것도 하나 적어 보세요.

전처리

모아 온 데이터는 거의 언제나 그대로 쓸 수 없습니다. 빠진 값인 결측치(missing value)가 있고, 같은 것이 두 번 들어가 있고, 다른 값과 동떨어진 이상치(outlier)가 섞여 있습니다. 이것을 쓸 수 있는 모양으로 정리하는 일을 전처리라고 합니다.

아래는 우리 반의 급식 잔반량을 모아 본 표입니다. 고쳐야 할 자리가 다섯 군데 있습니다. 찾아보세요.

모은 그대로의 표 (수업에서 원리를 확인하려고 지어낸 값)
번호 학생 요일 잔반량 만족도 (1–5)
1 학생 A 월 120 g 3
2 학생 B 월 (비어 있음) 4
3 학생 A 월 120 g 3
4 학생 C 화 9999 g 5
5 학생 D 화 80 g 7
6 학생 E 수 0.09 kg 2
붉은 자리를 어떻게 고칠까
번호 무엇이 문제인가 어떻게 할 수 있나
2 빠진 값(결측치) 그 줄을 통째로 뺀다. 또는 다른 값으로 채운다. 어느 쪽이든 무엇을 했는지 적어 둔다
3 겹친 줄 같은 학생의 같은 요일 기록이 1번과 값까지 똑같으므로 하나만 남긴다
4 동떨어진 값(이상치) 다른 값과 너무 멀다. 한 사람이 9,999g을 남길 수는 없으므로 잘못 적힌 것으로 보고 빼거나 원래 값을 확인한다
5 정해진 범위 밖 만족도는 1에서 5까지인데 7이 들어왔다. 입력이 잘못된 것이므로 확인하거나 뺀다
6 단위가 다름 0.09kg은 90g이다. 모든 값의 단위를 g으로 맞춘다

전처리는 「지우는 일」만이 아닙니다

표의 「어떻게 할 수 있나」 칸을 다시 보세요. 이 표에서 반드시 지워야 하는 것은 1번과 학생 · 요일 · 값이 모두 같은 3번 하나뿐이고, 나머지는 채우거나 확인하거나 고치고 맞추는 일입니다. 특히 6번의 단위 맞추기는 지우면 안 되고 반드시 고쳐야 합니다.

지운 것을 적어 두지 않으면 결론이 흔들립니다

2번 줄을 빼기로 했다고 합시다. 그러면 월요일의 자료가 한 사람만큼 줄어듭니다. 나중에 「월요일에 잔반이 적었다」는 결론이 나왔을 때, 그것이 정말 적었기 때문인지 한 줄을 빼서인지 알 수 없게 됩니다.

그래서 전처리에서는 무엇을 왜 뺐는지 반드시 적어 둡니다. 데이터를 다룬 사람이 스스로를 속이지 않기 위한 장치입니다. 특히 마음에 안 드는 값만 골라 빼면 결론을 원하는 쪽으로 끌고 갈 수 있습니다. 그것은 전처리가 아니라 결과를 만들어 내는 일입니다.

스스로 확인

4번의 9999 g은 정말 잘못 적힌 값일까요? 빼기 전에 확인해 봐야 할 것이 있다면 무엇일까요?

조심할 것

데이터를 모으는 일에는 기술만 필요한 것이 아닙니다. 모아도 되는 것인지를 먼저 검토해야 합니다. 특히 사람에 관한 데이터라면 더 그렇습니다.

필요 없는 것은 아예 모으지 않는다

급식 잔반량을 알아보는 데 이름이 필요할까요? 「학생 A」처럼 누구인지 알 수 없게 바꿔 두어도 잔반량을 세는 데는 아무 지장이 없습니다. 이렇게 누구인지 알아볼 수 없게 만드는 것을 익명화라고 합니다.

모으지 않은 데이터는 새어 나갈 수 없습니다.

모으기 전에 알리고 동의를 받는다

무엇을 왜 모으는지, 어디에 쓸 것인지, 언제 지울 것인지를 밝히고 동의를 받습니다. 반 친구들의 설문이라고 예외가 아닙니다. 답하고 싶지 않은 사람이 답하지 않을 자유도 함께 지켜야 합니다.

공개된 데이터에도 쓰는 조건이 있다

공공 데이터는 누구나 쓸 수 있지만 대개 출처를 밝히라는 조건이 붙어 있습니다. 누리집에서 수집하는 것도 마찬가지로, 그 누리집이 정해 둔 규칙을 따라야 합니다. 기술적으로 가져올 수 있다는 것과 가져와도 된다는 것은 다릅니다.

익명화했다고 늘 안심할 수는 없습니다

이름을 지웠어도 남은 값들을 짜 맞추면 누구인지 드러나는 일이 있습니다. 「3학년 2반 · 남 · 축구부 · 등교 시각 7시 10분」이라면 이름이 없어도 한 사람으로 좁혀질 수 있습니다.

그래서 익명화는 「이름을 지웠는가」가 아니라 「짜 맞춰도 알아낼 수 없는가」로 판단해야 합니다. 확실하지 않다면 칸을 더 지우거나, 학년처럼 덩어리로 묶어 적는 편이 낫습니다.

여기까지가 쓸 수 있는 데이터를 손에 넣는 일입니다. 손에 넣는 것과 그것으로 무엇을 알아내는가는 다른 일입니다.

스스로 확인

우리 반 설문에서 「이름」 칸을 지웠는데도 누구인지 알 수 있게 만드는 칸이 남아 있을 수 있습니다. 어떤 칸이 위험할까요?

핵심 정리

수집의 다섯 단계

  • 목표 이해 → 계획 → 수집 → 전처리 → 저장.
  • 목표가 무엇을 모을지 정한다. 모은 것이 목표를 정하는 것이 아니다.
  • 1단계를 건너뛰면 손에 잡히는 대로 모으게 되고, 정작 필요한 것이 빠진다.

모으는 방법

  • 직접 모으기 — 센서로 측정하기, 물어보기.
  • 받아 오기 — 공공 데이터, 누리집에서 수집하기.
  • 크롤링은 어디에 있는지 탐색하는 일, 스크래핑은 값을 추출하는 일이다.
  • 더 좋은 방법이 정해져 있지 않다. 겹쳐 쓰면 서로가 못 하는 것을 메운다.

전처리

  • 빠진 값(결측치) · 겹친 줄 · 동떨어진 값(이상치) · 범위 밖 · 단위 어긋남을 바로잡는다.
  • 지우는 일만이 아니다. 고치고 맞추는 일이 함께 있다.
  • 무엇을 왜 뺐는지 적어 둔다. 마음에 안 드는 값만 빼면 결론을 원하는 쪽으로 끌고 갈 수 있다.

조심할 것

  • 필요 없는 것은 아예 모으지 않는다. 모으지 않은 데이터는 새어 나갈 수 없다.
  • 모으기 전에 무엇을 왜 모으는지 알리고 동의를 받는다.
  • 기술적으로 가져올 수 있다는 것과 가져와도 된다는 것은 다르다.
  • 익명화는 「이름을 지웠는가」가 아니라 「짜 맞춰도 알아낼 수 없는가」로 판단한다.

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1

「일단 많이 모아 두고 나중에 무엇에 쓸지 생각하자」가 좋지 않은 까닭은?

Q2

크롤링과 스크래핑의 차이로 알맞은 것은?

Q3

잔반량 표에 0.09 kg이 들어 있습니다. 어떻게 해야 할까요?

Q4

설문에서 이름 칸을 지웠습니다. 그런데도 누구인지 알아낼 수 있다면, 익명화가 되었다고 볼 수 있을까요?