카테고리 보관물: 데이터

코로나19 확진 추이

지난 달에 코로나19 확진자가 늘어나는 부분에 대해 통제불가능에 무게를 두어야 한다는 이야기를 한 적이 있다. 결국 슬픈 소식이 들려왔다(http://naver.me/GRvUvqzv). 중증 환자가 병상이 부족해서 제 때 입원을 하지 못하고 돌아가셨다는 소식이었다. 경증 환자들을 자가격리하고 병상 확보만 했어도 이런 상황이 오지는 않았을텐데, 아직도 이 나라는 확진자에 대해 자가격리를 최후의 카드로 남겨두고 있다. 대학의 기숙사들을 활용하려고 다양한 노력을 하고 있지만, 결국 어차피 확진 받아도 자가격리하는 쪽으로 방향이 잡힐 것이다.

이런 생각을 하게 된 이유에 대해 데이터를 가지고 이야기하려고 한다.

출처: 네이버

위의 도표는 네이버에서 ‘코로나19’로 검색한 후 ‘누적 확진, 격리해제’ 항목을 선택했을 때 나오는 그래프다. 1차 확산과 2차 확산의 시기가 있었다. 1, 2차 확산 시기보다 더 중요한 것은 필자가 위에 ‘1’과 ‘2’로 표시한 구간이다. 확진자와 격리해제의 차이에 주목해야 한다. 1번 구간에서는 확진자와 격리해제의 차이가 대략 1,000명가량 된다. 2번 구간에서는 2,000명가량 된다. 이 숫자가 무엇을 의미하는지 생각해 보자.

1과 2 구간 모두 표면적으로는 현재 코로나19에 감염되고 치료 중에 있는 사람의 숫자다. 1번 구간에서도 국민들은 모두 방역을 열심히 했고, 비교적 잘 통제되는 상황으로 만들었다. 2번 구간도 국민들이 모두 방역수칙을 열심히 지켰다. 그래서 그 이상 확산되지 않는 수준을 유지했다.

그런데, 1번 구간에서는 치료중인 사람이 약 1,000명이었는데, 2번 구간에서는 약 2,000명이었다. 그 이유는 바로 자신이 감염됐는지도 확실치 않고, 애매하고, 감기인거 같은데, 뭔가 코로나19에 감염됐다고 하면 피해볼 것 같고, 그런데 딱히 중증은 아니고 그러니까 그냥 버티자고 하다가 나은 사람들이 있다는 것이다. 말그대로 통계치에 잡히지 않은 감염자들이 있고, 그들이 바이러스의 숙주가 되어 전파되는 형태 말이다.

지금은 3차 확산세를 지나고 있다. 3차 확산세가 지나도 분명 자신도 모르게 감염되고 전파되는 사람들이 생겨날 거다. 그 폭이 얼마가 될지는 잘 모르겠다. 1차 확산기와 안정기, 2차 확산기와 안정기, 그렇다면 3차 확산기 이후에도 안정기가 올 거다. 그런데 그 수준은 분명 1, 2번 구간 이상일 것이다. 그리고 4차, 5차 확산이 진행된다면 그 이상으로 치료중인 사람의 숫자는 늘어날 것이고, 결국 의료시스템을 모두 활용해도 수용치를 넘어갈 것이다. 사실 이미 포화상태를 넘어가고 있다는 신호는 여기저기서 들려오고 있다. 즉, 기본적으로 경증 환자는 자가격리하면서 상태를 의료진에게 보고하고, 중증 환자만 입원하는 형태가 돼야 할 것이다.

코로나 확산 예상 추이

필자는 전체적으로는 위의 그래프와 같이 진행될 것이라는 예상이고, 현재는 빨간 동그라미를 지나고 있는 것으로 보인다. 사실 3차 확산세는 언제 어느정도로 잡힐지 지금 예상도 할 수 없는 상황이다. 슬픈 일이지만 안정적인 백신이 나와서 효과를 보기 전까지는 계속 확산될 것이다. 필자는 정말 아주 짧아야 앞으로 1~2년, 길면 5년 이상도 걸릴 수 있다고 본다.

코로나19의 확산을 늦추기 위해서라도 코로나19 감염자에 대한 시선을 바꿔야 한다. 얼마전에 모 구청에서는 어린이집 보육교사가 코로나에 걸리면 벌금을 내게 하겠다는 이야기도 들었고, 같은 구청에서 특정 건물에서 확진자 한 번만 더 나오면 위탁을 하지 않겠다는 둥의 이야기를 들었다. 모두 질병을 이유로 하는 차별이다. 코로나19에 감염된 것만으로도 힘들고 괴로울텐데, 직장에서 해고되고, 사업을 접어야 한다면 이건 분명 옳지 않다.

코로나19에 대한 차별적 시선 때문에 분명 검사를 받아야 할 것 같은 느낌이 들어도, 검사를 받을 수 없는 사람들이 있다. 그런 일 때문에 코로나19 감염자가 늘어나는 일은 최소한 없어야 하지 않겠는가. 이런 이유로도 차별금지법은 제정돼야 한다.

어쨌거나 지금은 3차 확산기를 지나고 있다. 아직은 전체 국민 대비 0.0937%의 감염률이다. 그래서 이제 시작이라는 생각인데, 지금부터 진을 빼면 장기화 됐을 때 그걸 어떻게 감당할 수 있을지 걱정이 된다. 정부에서는 하루 속히 통제 불가능에 무게를 두고 옳은 의사결정을 하기 바란다.

무엇보다도 하루 속히 차별금지법이 제정돼서 더 이상 아픈 사람을 두 번 죽이는 일들이 일어나지 않았으면 좋겠다.

2017 데이터 그랜드 컨퍼런스에 참석하며…

키노트와 비즈니스 키노트, 일련의 발표들을 들었다. 그리고 점심시간엔 부스에 전시된 제품들이나 연구결과들을 공유하는 자리에 가서 궁금한 것들을 물어보고 답변도 듣는 시간을 가졌다. 부스에서는 나도 모르게 “그러면 이 솔루션은 어디에 활용하는 건가요? 사용대상은 누구인가요?” 등의 질문이 툭 튀어나왔다. 산업 및 조직심리를 공부할 때 지도교수님께 지겹도록 들었던 질문을 내가 하고 있다니 세상에나!

연구결과는 실용성이나 시사점 또는 공익성이 있어야 하는 거다. 데이터 분석결과는 퍼즐조각들과 같아서, 하나의 이야기로 잘 연결하여 유의미한 그림을 제공하게 되면 분석결과의 가치가 빛을 발하게 된다. 그런데, 필자는 피같은 시간을 내서 갔는데, 어떤 명확한 그림에 대한 구경도 못한 채 그냥 분석해서 결과를 리뷰하는 수준으로 끝난 발표시간이 있었다. 빅데이터를 아무리 외치고 머신러닝을 한다고 해도, 산업이 크게 발전할 수 없는 데에는 다 그만한 이유가 있는 거라는 생각이 들었다.

예나 지금이나 변함없는 생각은 데이터 분석결과보다도 분석결과가 어떤 옷을 입느냐가 훨씬 더 중요하다는 것이다. 앞으로도 수많은 데이터들이 의미로 옷입고 세상에 자신을 드러냈으면 좋겠다. 조금 더 그런 자리에 있을 거라고 믿어본다. 나도 일조할 수 있으면 좋겠다고 생각하며 글을 맺는다.

파이썬으로 웹 크롤링 시작하기

HTML과 XML 파싱에 사용되는 python 패키지로 BeautifulSoup이 있다. 현재 버전은 4.4.0이다.

BeautifulSoup의 문서는 다음 한 페이지에 모두 설명되어 있다. 한 페이지의 양이 좀 길기는 하다. 한글문서가 있었던 것 같은데 지금은 링크가 깨져있다.

문서: https://www.crummy.com/software/BeautifulSoup/bs4/doc/

코드:

from bs4 import BeautifulSoup
html_string = '''
<html>
<head>
<title>나루의 HTML parsing</title>
</head>
<body>
</body>
</html>
'''
soup = BeautifulSoup(html_string, 'lxml')
title = soup.select("title")[0].get_text()
print(title)

결과:

나루의 HTML parsing

HTML 태그 중 title 태그의 값을 가져오는 코드를 간단히 구현하였다.

select method는 결과를 list type으로 가져온다. 그리고 get_text method는 태그 사이에 있는 텍스트 값을 문자열로 가져온다.

다음에는 실제로 웹 페이지의 정보를 가져오는 코드를 작성해 보자.