왜 「문제 정의」부터 할까?
데이터부터 잔뜩 모으면 안 되는 걸까?
데이터 과학으로 문제를 해결하는 여섯 단계 가운데 첫 두 단계는 문제 정의와 데이터 수집입니다. 문제를 명확하게 정의해야 분석의 방향이 정해지고, 알맞은 데이터를 모아야 결과를 믿을 수 있습니다.
문제 정의는 데이터로 풀 수 있는 문제를 골라내고, 무엇을 풀 것인지 명확하게 정하는 단계입니다.
문제를 명확하게 정의해 두면 데이터를 분석하는 내내 그 문장이 지침이 됩니다. 반대로 문제가 흐릿하면, 데이터를 아무리 많이 모아도 무엇을 봐야 할지 알 수 없습니다. 여행지를 정하지 않고 짐부터 싸는 것과 같습니다. 무엇을 챙겨야 할지 정할 수가 없습니다.
용어 풀이
한자로 보면
정할 정(定) + 뜻 의(義) → 뜻을 딱 정해 놓는 일
영어로 보면
de-(완전히) + fine(경계, 끝) → 경계를 확실히 긋는 일
그래서 문제를 「define(정의)」한다는 것은 여기까지가 내가 풀 문제라고 선을 긋는 일입니다. 선을 긋지 않으면 문제가 무한히 커져서 아무것도 풀 수 없게 됩니다.
좋은 문제 정의의 조건
문제 정의는 프로젝트의 목표를 명확히 정하는 것으로 시작합니다. 「무엇을 해결하려 하는가?」에 대한 답을 구하는 과정입니다. 다음 네 가지를 만족하는지 확인해 봅시다.
① 구체적인가?
「더 좋게 만들자」 같은 말은 사람마다 다르게 읽힙니다. 무엇을 얼마나 바꾸려는지가 드러나야 합니다.
② 데이터로 답할 수 있는가?
「어떤 음악이 가장 아름다운가」는 데이터로 답할 수 없습니다. 숫자나 기록으로 확인할 수 있는 질문이어야 합니다.
③ 범위가 정해졌는가?
시간 · 비용 · 기술의 제약을 고려해 문제의 범위를 명확히 설정합니다. 「전 세계」가 아니라 「우리 학교, 지난 1년」처럼 좁힙니다.
④ 다음 단계 계획이 있는가?
어떤 데이터를 어떻게 모으고 어떻게 분석할지 미리 계획을 세워야 이후 단계를 효율적으로 진행할 수 있습니다.
같은 관심사를 세 단계로 구체화하기
「급식」이라는 하나의 관심사를 문제 정의로 구체화하는 과정입니다. 아래로 내려갈수록 무엇을 모아야 할지가 저절로 보입니다.
아직 문제가 아닙니다
「우리 학교 급식을 더 좋게 만들자.」
무엇을 좋게 만들지가 없습니다. 맛? 영양? 대기 시간? 어떤 데이터를 모아야 할지 정할 수 없습니다.
절반쯤 왔습니다
「급식에서 남는 음식을 줄이자.」
방향은 생겼습니다. 그런데 왜 남는지를 모르면 무엇을 바꿔야 할지 알 수 없습니다.
이제 문제 정의입니다
「최근 1년간 우리 학교의 메뉴별 잔반량을 분석해, 잔반이 많이 남는 메뉴의 공통점을 찾자.」
구체적이고(메뉴별 잔반량), 데이터로 답할 수 있고(잔반량은 숫자), 범위가 정해졌으며(우리 학교, 1년), 모아야 할 데이터가 문장 안에 이미 적혀 있습니다.
「우리 반에서 가장 인기 있는 간식이 무엇인지 알아보자.」 이 문장은 위 네 가지 조건 중 어떤 것이 부족한가요? 한 문장만 고쳐서 문제 정의로 만들어 보세요.
어떤 문제들을 데이터로 풀고 있을까?
데이터 과학은 회사에서만 쓰는 것 아닐까?
개인 영역뿐만 아니라 다양한 분야에서 해결해야 할 문제를 찾아 정의하고, 어떤 데이터를 수집해야 하는지 사례를 통해 알아봅시다.
세 사례 모두 [문제 정의] → [데이터 수집]의 짝으로 되어 있습니다. [문제 정의]만 읽고 [데이터 수집]은 가린 채 「나라면 무엇을 모을까」를 먼저 생각해 보세요.
개인이 일상생활에서 마주치는 다양한 문제도 데이터 과학의 한 영역입니다. 자신이나 주변과 관련된 데이터를 수집하고, 수집된 개인 데이터로 건강과 생활 습관을 돌아볼 수 있습니다.
[문제 정의]
건강하게 체중을 감량하고 감량한 체중을 유지하기 위해 식사 및 운동 계획을 수립해 보자.
[데이터 수집]
체중, 식사량, 식사 시간, 일일 활동량, 운동 및 수면 패턴, 심박수 등
도시 계획, 교육 정책, 복지 서비스 등 다양한 분야에서 데이터 기반의 의사 결정을 돕는 문제를 정의할 수 있습니다.
[문제 정의]
신규 아파트 시공 전에 초등학생 돌봄 수요를 예측하여, 돌봄 센터의 적정 규모를 제안해 보자.
[데이터 수집]
아파트 구조 및 주변 정보, 행정동 인구 통계(동별 초등학생 수), 국내 인구 이동 통계(동별), 가계 동향 조사(맞벌이 비율) 등
공공 기관과 여러 단체에서 환경, 에너지 관련 데이터를 꾸준히 공개하고 있으므로, 이를 기반으로 상호 관계를 발견하고 의사 결정에 도움을 주는 문제를 정의할 수 있습니다.
[문제 정의]
태양광 발전과 풍력 발전은 날씨에 따라 에너지 생산량이 달라진다. 생산과 소비의 불균형으로 인한 출력 제한을 최소화하는 방안을 찾아보자. (출력 제한은 전기가 너무 많이 만들어질 때 발전기를 일부러 멈추게 하는 일이다.)
[데이터 수집]
평균 풍속, 최대 풍속과 일사량, 일조 시간, 태양광 및 풍력 발전량, 출력 제한 정보 등
영역별로 한눈에 보기
데이터로 해결 가능한 문제는 네 개 영역으로 나누어 볼 수 있습니다. 위 세 사례는 차례로 개인 · 행정 · 사회 영역에 해당하며, 환경 문제는 사회 영역에 들어갑니다. 어떤 데이터를 가진 쪽이 어떤 문제를 푸는지에 주목해 읽어 보세요.
| 영역 | 설명 | 예시 |
|---|---|---|
| 개인 영역 | 한 사람이 자기 기록을 모아 자기 생활을 바꾼다. 예를 들어 수면 시간과 아침 컨디션을 한 달 동안 적어 잠드는 시각을 조정한다. | 건강 모니터링, 맞춤형 학습 지원 등 |
| 기업 영역 | 회사가 쌓아 둔 주문 · 이용 기록으로 무엇을 얼마나 준비할지 정한다. 예를 들어 지난 주문 기록으로 다음 주에 어느 창고에 어떤 물건을 더 둘지 정한다. | 개인화된 상품 추천, 배송 최적화, 고객 서비스 개선 등 |
| 행정 영역 | 정부 · 지방 자치 단체가 공공 데이터로 정책과 시설을 계획한다. 예를 들어 정류장별 승하차 기록으로 버스 배차 간격을 조정한다. | 도시 교통 최적화, 공공 보건 정책 등 |
| 사회 영역 | 한 기관만으로는 풀 수 없는 사회 · 환경 문제를 다룬다. 예를 들어 여러 나라의 대기 관측값을 모아 미세 먼지가 어디서 어디로 옮겨 가는지 살핀다. 국제 사회가 함께 정한 지속가능발전목표(SDGs)도 이 영역의 문제다. | 범죄 예측 및 예방, 환경 모니터링 등 |
데이터는 그냥 많이 모으면 될까?
모으기 전에 확인해야 할 것이 있습니다.
데이터 수집은 문제 해결을 위한 데이터를 구하는 과정입니다. 어떤 데이터가 필요한지, 어떻게 수집할지 먼저 계획해야 합니다.
데이터가 부정확하면 그 데이터로 내린 결정도 정확할 수 없습니다. 그래서 믿을 수 있는 데이터를 찾는 데 시간과 공을 들여야 합니다.
용어 풀이
한자로 보면
거둘 수(收) + 모을 집(集) → 거두어 모으는 일
영어로 보면
col-(함께) + lect(고르다) → 골라서 함께 모으는 일
데이터 수집은 닥치는 대로 쓸어 담는 일이 아니라 골라 담는 일입니다.
데이터 수집 시 고려 사항
필요한 데이터를 떠올렸다면, 실제로 모으기 전에 네 가지를 확인합니다. 하나라도 걸리면 계획을 고쳐야 합니다.
수집 가능한 데이터인가?
세상에 존재하더라도 내가 손에 넣을 수 있어야 합니다. 다른 학교의 급식 잔반량은 대개 공개되어 있지 않아 구하기 어렵습니다.
정보 보호에 저촉되지 않는 데이터인가?
이름, 연락처, 건강 기록처럼 개인을 특정할 수 있는 정보는 함부로 모을 수 없습니다. 모을 수 있더라도 모아서는 안 되는 데이터가 있습니다.
신뢰할 수 있는 데이터인가?
누가, 언제, 어떻게 모았는지 알 수 없는 데이터는 믿고 쓰기 어렵습니다. 출처가 분명한 데이터라야 결과도 믿을 수 있습니다.
데이터를 수집하는 데 비용 문제가 발생하는가?
유료로 판매되는 데이터도 있고, 직접 모으려면 시간과 사람이 듭니다. 비용을 감당할 수 있는 범위인지 미리 확인해야 합니다.
「우리 반 친구들의 성적과 수면 시간의 관계를 알아보자」라는 문제를 정의했습니다. 이때 필요한 데이터는 네 가지 고려 사항 중 어떤 것에 걸릴까요? 걸리지 않게 하려면 계획을 어떻게 고쳐야 할까요?
데이터는 어디서 구할까?
이미 있는 것을 쓸까, 내가 직접 만들까?
데이터 수집 방법은 다양하지만 크게 두 가지입니다. 이미 만들어진 공개 데이터를 쓰거나, 필요한 데이터를 직접 수집합니다.
누구나 이용할 수 있도록 공개된 데이터입니다. 공공 기관이나 기업이 정치 · 경제 · 과학 · 의학 등 여러 분야의 데이터를 파일이나 오픈 API로 내놓습니다.
특정 목적이나 연구 주제와 관련하여 원하는 데이터를 공개 데이터에서 구할 수 없거나 특별한 조건에 맞는 데이터가 필요할 때 직접 수집합니다.
관찰
observation
측정
measurement
설문 조사
survey
관찰 · 측정 — 스마트 기기나 다양한 센서 등을 이용해 주변 데이터를 수집합니다.
설문 조사 — 조사 대상, 조사 항목, 조사 방법 및 시기 등을 충분히 검토하고, 면접 · 서면 · 온라인 등의 방법으로 진행한 후 그 결과를 정리합니다.
공개 데이터를 사용자에게 제공하는 방법의 하나입니다. 개발자들은 오픈 API를 사용해서 공개 데이터를 쓰는 앱이나 웹 서비스를 만들 수 있습니다. 휴대 전화의 날씨 앱이 기상 데이터를 받아 오는 것이 한 예입니다.
interface는 inter-(사이) + face(면), 곧 둘 사이에 놓인 창구라는 뜻입니다. 파일을 내려받는 방식이 「창고에서 상자를 통째로 들고 오는 것」이라면, 오픈 API는 「필요할 때마다 창구에 가서 필요한 만큼만 받아 오는 것」입니다. 그래서 날씨처럼 계속 바뀌는 데이터에 잘 어울립니다.
공개 데이터, 자세히 살펴보기
| 구분 | 내용 |
|---|---|
| 정의 | 공개 데이터 수집은 정부 기관, 연구 기관, 비영리 단체 등이 제공하는 공개적으로 이용 가능한 데이터를 사용하는 방법이다. 이러한 데이터는 주로 연구 및 통계 목적으로 제공되며, 무료 또는 유료로 이용할 수 있다. |
| 수집 방법 |
|
| 장점 | 대부분 추가 비용 없이 이용할 수 있고, 다양한 분야와 주제에 대한 데이터가 이미 구조화되어 있어 쉽게 접근할 수 있다. |
| 단점 | 정확히 필요한 데이터를 찾지 못할 수 있고, 일부 데이터는 접근 권한이 제한되어 있거나 특정 조건 하에만 사용이 허용된다. |
설문 작성 시 유의 사항
- 질문과 선택지는 구체적이고 명확해야 한다.
- 선택지는 서로 배타적이어야 하며, 가능한 응답을 모두 포함해야 한다.
- 응답자의 개인 정보를 보호해야 한다.
「서로 배타적」이란 겹치는 선택지가 없어야 한다는 뜻입니다. 「10~20분 / 20~30분」은 20분인 사람이 어디를 골라야 할지 모르니 잘못된 선택지입니다. 「10분 이상 20분 미만」처럼 경계를 분명히 해야 합니다.
직접 데이터 수집 시 유의 사항
- 집단을 대표할 수 있도록 균형에 맞게 수집한다.
- 개인 정보 보호, 법률 준수, 조사 대상자의 권리 등 윤리적 문제를 확인한다.
「균형에 맞게」가 왜 중요할까요? 전교생의 등교 방법을 조사하면서 1학년에게만 물으면, 그 결과는 학교 전체가 아니라 1학년의 이야기일 뿐입니다. 이렇게 한쪽으로 치우친 성질을 데이터 편향성(bias)이라고 합니다.
그래서 언제 무엇을 쓸까?
데이터 수집은 목적과 요구 사항에 따라 수집 방법 중 하나를 선택하거나 두 방법을 혼합해서 씁니다.
| 이럴 때 | 고르는 방법 | 이유 |
|---|---|---|
| 비용과 시간을 아껴 빠르게 진행하고 싶을 때 | 공개 데이터 수집 | 대부분 정리되어 있어 분석을 빨리 시작할 수 있다. |
| 내 주제에 딱 맞는 맞춤형 데이터가 필요할 때 | 직접 데이터 수집 | 공개 데이터에 없는 조건을 내가 정해서 모을 수 있다. |
| 큰 흐름은 공개 데이터로 보되 우리 학교의 사정도 넣고 싶을 때 | 두 방법 혼합 | 공개 데이터로 뼈대를 세우고 직접 수집한 데이터로 살을 붙인다. |
수업에서 다루는 문제들은 주로 공개 데이터를 수집하여 분석합니다. 수업 시간이 정해져 있기 때문입니다. 바로 다음 실습도 공개 데이터를 내려받는 것부터 시작합니다.
같은 데이터인데 이름이 왜 여러 개일까?
공개 데이터 사이트에서 자주 마주치는 낱말들입니다.
데이터는 얼마나 손질되었는지, 그리고 개별 값인지 모아서 집계한 값인지에 따라 부르는 이름이 다릅니다. 이름만 알아도 그 데이터가 어떤 상태인지 짐작할 수 있습니다.
손질 정도와 집계 수준에 따른 데이터의 이름
원자료
raw data
손대기 전
처리 데이터
processed data
오류를 걸러 냄
마이크로데이터
micro data
한 사람 한 줄
매크로데이터
macro data
모아서 합계 · 평균
micro-는 「작은」(microscope 현미경), macro-는 「큰」이라는 뜻입니다. 그래서 마이크로데이터는 학생 한 명 한 명의 키가 한 줄씩 적힌 표, 매크로데이터는 「1학년 평균 키 165cm」처럼 묶어서 계산한 값입니다. 묶고 나면 개인은 보이지 않지만, 전체의 모습은 한눈에 보입니다. 마이크로데이터와 매크로데이터는 어느 쪽이 더 좋은 데이터라는 뜻이 아니라 집계 수준이 다른 것입니다. 개인별 차이를 보려면 마이크로데이터가, 전체 흐름을 보려면 매크로데이터가 필요합니다.
| 데이터의 종류 | 설명 |
|---|---|
| 원자료 raw data | 최초 입력한 전산화된 자료로 조사 및 입력 오류 등이 걸러지기 이전 단계의 자료이다. |
| 처리 데이터 processed data | 원자료에서 조사 및 입력 오류 제거 등 자료 처리 과정에서 발생된 자료이다. |
| 마이크로데이터 micro data | 원자료에서 오류를 제거하여 통계표 작성 등 데이터 가공의 기초 자료로 사용되는 자료이다. |
| 매크로데이터 macro data | 마이크로데이터를 임의의 기준에 따라 집계한 자료이다. |
| 설명 자료 meta data | 통계 자료 이용자의 이해를 돕기 위해 제공하는 설명 자료이다. |
출처: 옛 통계청(지금의 국가데이터처), 나라통계시스템 운영 규정, 시행 2017. 10. 18.
직접 내려받아 볼까?
실습 — 기상 관측 데이터셋 내려받기
문제 정의 → 데이터 수집 과정을 실제로 한 번 해 봅니다. 공개 데이터를 쓰는 방법입니다.
문제 상황
폭우로 인해 주택과 농경지가 침수되고, 높은 기온으로 산불이 빈번하게 발생한다. 이상 기후는 더 자주, 더 심각한 재난을 초래하며 경제적 · 사회적으로 악영향을 주고 있다.
문제 정의하기
우리나라의 기후 변화를 확인할 수 있는 데이터를 찾아보자.
기후 변화는 오랜 기간에 걸쳐 나타나는 변화입니다. 그래서 올해 데이터만으로는 확인할 수 없고, 수십 년치 기록이 필요합니다. 이 점이 다음 단계의 검색 조건을 결정합니다.
데이터 수집하기
기상청 기상자료개방포털(data.kma.go.kr)에 접속합니다.
- 기온, 강수량, 지면 온도의 데이터를 수집하기 위해 → → 을 선택합니다.
- 아래와 같이 을 설정한 후, 조회된 데이터 파일의 확장자를 csv로 내려받고 파일명을 서울기상관측.csv로 변경합니다.
| 항목 | 설정 값 |
|---|---|
| 자료 형태 | 월 자료 |
| 기간 | 1907년 10월 ~ 2024년 12월 |
| 지점 | 서울특별시 - 서울 |
| 기상 요소 |
|
기상자료개방포털의 데이터 조회는 누구나 가능하지만, 데이터는 로그인 후에 내려받을 수 있습니다. 제한된 범위와 건수 안에서는 로그인 없이 내려받을 수도 있지만, 이때는 조회 조건에 맞는 데이터 중 일부만 내려받아질 수 있으므로 내려받은 뒤 전체가 들어 있는지 꼭 확인합니다.
수집한 데이터 확인하기
구글 스프레드시트의 → → 탭에서 내려받은 서울기상관측.csv 파일을 불러옵니다.
| 지점 | 지점명 | 일시 | 평균기온(℃) | 평균최고기온(℃) | 평균최저기온(℃) | 월합강수량(mm) |
|---|---|---|---|---|---|---|
| 108 | 서울 | 1907-10 | 13.9 | 20.2 | 8.3 | 47 |
| 108 | 서울 | 1907-11 | … | … | … | … |
| 108 | 서울 | 2024-12 | … | … | … | … |
지점(코드), 지점명, 일시(년-월) 그리고 6개의 기상 관측 속성으로 구성되어 있으며, 데이터는 1907년 10월부터 2024년 12월까지 약 1,400개입니다.
왜 1,400개일까요? 1907년 10월부터 2024년 12월까지는 약 117년, 한 해에 12개월이니 117 × 12 ≒ 1,400입니다. 「한 달에 한 줄」이라는 규칙이 데이터 개수에 그대로 드러납니다. 가로줄 하나가 데이터 포인트 하나입니다.
CSV 파일이 스프레드시트에서 안 열릴 때 — 구글 드라이브로 여는 방법
- 구글 드라이브 화면 왼쪽 상단에서 → 를 클릭하고, 수집한 CSV 파일을 선택한 후 업로드합니다.
- 구글 드라이브에 업로드된 CSV 파일을 마우스 오른쪽 버튼으로 클릭하여, → 를 클릭합니다.
- CSV 파일이 스프레드시트로 변환되어 열리면, 해당 데이터를 확인 및 필요한 편집을 수행할 수 있습니다. 이 파일은 자동으로 구글 드라이브에 저장됩니다.
단계 2에서 자료 형태를 「월 자료」가 아니라 「일 자료」로 바꾸면 내려받는 데이터는 몇 개쯤 될까요? 그리고 기후 변화를 확인한다는 문제 정의에는 둘 중 어느 쪽이 더 알맞을까요?
데이터를 찾을 수 있는 곳들
기상 데이터 말고 다른 주제를 다루고 싶다면?
전 세계적으로 많은 국가와 기관이 데이터 과학과 연구를 지원하기 위해 공개 데이터 제공 사이트를 운영하고 있습니다.
마이크로데이터 통합 서비스
연구와 분석에 쓰도록 마이크로데이터를 제공합니다. 국가통계포털 · 지표누리의 통계(매크로데이터)를 만들 때 바탕이 된 개별 자료 가운데 공개하는 것을 여기서 받을 수 있습니다.
이 밖에도
KOSIS 100대 지표(우리나라의 주요 지표를 한눈에), UN Data(data.un.org, 국제 통계) 등이 있습니다. 사이트마다 다루는 주제와 데이터의 형태가 다르므로, 내가 정의한 문제에 맞는 데이터가 어디에 있는지를 먼저 찾는 것이 중요합니다.
해 봅시다 — 위 사이트들을 직접 둘러보고, 내가 찾는 데이터를 제공하는 사이트는 어디인지 찾아 친구들과 공유합니다. 공개 데이터를 활용하기 전에 사용 가능한 데이터를 충분히 둘러보고 그 특성을 이해하는 것이 중요합니다.
핵심 정리
문제 정의
problem definition
- 데이터로 해결할 수 있는 문제를 찾고 무엇을 해결할지 명확히 정하는 단계
- 구체적 · 데이터로 답 가능 · 범위 설정 · 다음 단계 계획
- define = 경계를 긋는 일 — 범위를 정해야 풀 수 있다
데이터 수집 시 고려 사항
네 가지 점검
- 수집 가능한가 · 정보 보호에 저촉되지 않는가
- 신뢰할 수 있는가 · 비용 문제가 생기는가
- collect = 골라서 모으는 일 — 많이보다 문제에 맞게
두 가지 수집 방법
공개 데이터 · 직접 수집
- 공개 데이터 — 파일 · 오픈 API로 제공, 비용 · 시간 절약
- 직접 수집 — 관찰 · 측정 · 설문 조사, 맞춤형 데이터
- 하나를 선택하거나 두 방법을 혼합하여 사용
데이터의 종류
손질 정도와 집계 수준에 따른 이름
- 원자료(raw) → 처리 데이터(processed)
- 마이크로데이터(개별) → 매크로데이터(집계)
- 설명 자료(meta) — 데이터를 설명해 주는 자료
확인 퀴즈
배운 내용을 확인해 봅시다.
데이터 과학으로 문제를 해결할 때 가장 먼저 해야 하는 일은?
문제 정의로 가장 잘 구체화된 문장은?
데이터 수집 시 고려 사항이 아닌 것은?
우리 반 친구들이 등교할 때 이용하는 교통수단을 알고 싶습니다. 가장 알맞은 수집 방법은?
마이크로데이터를 임의의 기준에 따라 집계한 자료를 무엇이라고 하는가?