데이터 인사이트

데이터 전문가 칼럼
데이터 전문가가 전하는 데이터 노하우

[빅데이터 분석] 스몰 데이터에서 시작하는 데이터 분석

작성자
관리자
작성일
2020-10-23 15:42
조회
54

스몰 데이터에서 시작하는 데이터 분석

 
정원혁 | 씨퀄로 대표. 사회학을 전공했으나 컴퓨터로 밥 먹고 사는, 엔지니어가 우대 받으며, 사무실 없는 컴퓨터 회사를 구현 중인, 퇴역을 준비중인 SQL Server 전문가. 세계 28번째로 Microsoft Certified Trainer를 취득했다.
 

여기 저기서 빅 데이터에 대해 이야기 한다. 대체 뭔지 알고 싶다. 조금 알아봤다. 주위의 많은 현업 종사자들과 제자들에게서 빅 데이터에 대한의견을 들어봤다. 안 와 닿는다고 한다. 왜 그럴까? 필자가 이야기를 나누며 얻은 답은 다음과 같다.

1. 내겐, 우리 회사엔 빅 데이터가 없다.
2. 뭘 분석해야 할지 모르겠다.
3. 방법을 모르겠다.

세 번째 항목에 대해서는 기술적?학문적인 지식을 얻으면 된다. 그런데 필자에게 관심거리는 첫 번째와 두 번째였다. 빅 데이터가 없다면, 지금 있는 것으로는 못할까? 뭘 분석할지 모르니까 이미 갖고 있는 ‘Non Big Data’ 마저도 분석 못하는 것 아닐까?

이런 맥락에서 오늘 이야기를 시작할까 한다. 데이터를 분석하기 위해서는 뭘 찾아야 하는지, 무엇을 분석해야 하는지부터 알아야 한다. 과연 무엇을 분석할까? 그러기 위해 우선 내가 가진 게 뭘까부터 살펴보자. 회사에 데이터베이스 하나씩은 다들 가지고 있다. 분석은 누가 할까? 기획자와 마케터만의 몫일까? 정말 IT 종사자는 분석하면 시간 낭비인 걸까? 비 IT 종사자들은 IT 영역으로 속속 들어오는데, 더 고급 기술자인 IT 종사자는 비IT 영역으론 눈을 돌리면 안 되는 걸까? ^^

 

• 분석, 왜 하지?

 

내가 그의 이름을 불러 주기 전에는

그는 다만

하나의 몸짓에 지나지 않았다.

내가 그의 이름을 불러 주었을 때

그는 나에게로 와서

꽃이 되었다.


… 중략…

우리들은 모두

무엇이 되고 싶다.

너는 나에게 나는 너에게

잊혀지지 않는 하나의 의미가 되고 싶다.

_꽃, 김춘수

우리에게 있는 데이터가 그냥 ‘데이터’로 남아 있는 한 그것은 ‘정보’(information)로 다가 오지 않는다. 내 주변의 꽃에게 내가 ‘이름’을 지어줄 때, 그제야 의미가 전달된다. 우리 영역의 것들을 찾아보도록 하자.

아이를 키우는 부모로서 아이의 키나 몸무게에 대해 관심을 갖지 않는 사람은 없을 것이다. 그럼 데이터베이스를 관리하면서, 테이블에 데이터를 쌓으면서 그 테이블이 한 주에 얼마나 늘어나는지, 한 달 또는 1년이면 얼마나 늘어나는지 아는 사람은 얼마나 될까?

종종 필자에게 질문한다. ‘우리는 언제쯤 서버를 증설하면 될까요, 얼마나 크게 하면 될까요?’ 필자를 전지(全智)한 사람으로 생각하는 걸까? 이에 대한 대답을 하려면 기초 데이터가 있어야 한다. 그 수집을 제대로 했는지, 그 분석을 제대로 했는지가 대답을 찾기 위한 관건이다. 매주 한 번씩 테이블의 현재 사용량을 저장하는 프로세스를 만들어 두었다면 이런 ‘데이터’가 쌓일 것이고 이 ‘데이터(하나의 몸짓)’를 분석하면 ‘정보(꽃, 잊혀지지 않는 의미)’가 되어 우리에게 다가 올 것이다. 이 정보를 바탕으로 우리 회사는 1년이면 얼마나 데이터가 늘어나니, 디스크를 증설할 때는 얼마나 크게 해야겠다는 보다 나은 근거를 산출할 수 있을 것이다.

 

• 분석, 무엇을 하지?

 체온이 45도인 사람은 정상일까? 간의 GOT나 GPT 수치가 200인 사람은 정상일까? 혈당 수치가 250인 사람은 정상일까? 혹시 모든 질문에 제대로 답을 못 했다면 건강이 좋은 사람일 것이다. 그런 거 모르고 잘 살았으니 말이다.

우리 영역으로 가보자. 평균 CPU 사용률이 85%, 평균 CPU queue length가 28, 평균 Lock Request/s가 30만, 평균 Page Life Expectancy가 20, 이런 수치들이 정상일까(필자는 MS SQL Server를 오래 다루어왔고 이 일부 수치들은 MS SQL Server에 국한된 것들도 있다)? 만약 이에 대답 못한다면 성능 좋은 SQL Server와 살았거나, 몰라서 무지하게 살았던 거다.

분석, 그 첫 출발은 바로 우리가 매일 접하는 서버의 성능에서부터 시작하는 게 좋을 것 같다. 종합 검진을 받고 안 좋은 항목이 나오면 결국 간수치, 혈당 수치 등에 대해 공부하게 되는 것과 마찬가지로, 이런 분석을 하다 보면 우리는 결국 CPU queue length, Page Life Expectancy, Lock Request/s 등의 항목에 대해 기초 공부를 하게 된다. 그냥 기초 공부를 할 때는 지루하던 것이 이런 분석을 하면서 접근해 보면 의외로 재미있기까지 하다. 마치 간 수치가 높다고 해서 그에 대해 관심을 갖고 정보를 찾아보고 공부하는 것과 비슷한 상황이 된다. 게다가 한술 더 떠서 주변의 비슷한 상황에 대해 조언까지 하고 싶어진다.

• 분석, 왜 하지?

<그림 1> 항공기 계기판에서 나침반을 찾아 보자.



그럼 <그림 2>의 초음파 사진에서 암이나 종양을 찾을 수 있을까?



이 무슨 엉뚱한 질문인가? 그럼 다음 그림에서 성능 문제를 일으키는 요소를 찾을 수 있을까?



냉정한 질문 하나. 우리(IT 분야 종사자), 의사, 조종사 중에서일반적으로 누가 더 돈을 많이 벌까? 의사와 조종사는 왜 더 많이 벌까? 많은 이유가 있겠지만, 그중 하나는 조종사는 <그림1>을, 의사는 <그림 2>를 해독하지만, 우리는 <그림 3>을 해독 못하기 때문이라고 생각한다.

그렇다면 이런 해독 능력을 키워야 한다. 그러기 위해서 우리의 성능 데이터와 좀더 친해질 필요가 있다. 우리의 분석의 출발은 여기서부터 시작했으면 한다.

 

• 분석, 어떻게 하지?

 

일단 비싼 분석도구를 사용하는 것을 배제하고 주어진 환경에서 분석을 하는 것을 먼저 추천한다.

MS 윈도우 운영체제에는 ‘성능’이라는 훌륭한 도구가 있다. MS SQL Server에는 ‘Profiler’라는 매우 뛰어난 도구와 DMV(Dynamic Management View)가 있다. 필요하면 다양한 쿼리를 통해 필요한 정보를 수집할 수 있다. 이들은 데이터를 모으는 탁월한 도구다. 그리고 우리가 자주 사용하는 엑셀 스프레드시트는 이런 데이터를 분석하는 데 탁월한 도구다. 우리는 이들의 기능을 30%라도 쓰고 있는 걸까?

우선은 ‘성능’, ‘Profiler’, ‘DMV’와 그 외 쿼리 등을 이용해 내 주변의 작은 데이터를 계속 수집해야 한다. 이미 많은 회사가 이런 데이터를 수집하고 있는 것으로 알고 있다. 그런데 문제는 그 다음이다. 이렇게 수집된 데이터는 계속 디스크 공간을 차지하는 한 요소(하나의 몸짓)로만 존재할 뿐, 정작 내게 다가온 정보(꽃, 잊혀지지 않는 의미)로는 자리 잡지 못하고 있다. 이들을 분석하는 구체적 방법을 다음에 더 논의해 보도록 하자.

 
깨진 유리창의 법칙(Broken Windows Theory)
1969년, 미국 스탠포드대학의 심리학자 필립 짐바르도 교수의 실험이다. 골목에 같은 차종의 자동차 두 대를 세워뒀다. 한 대는 보닛을 조금 열어둔 상태로, 다른 한 대는 보닛을 열어두고 유리창도 조금 깨진 상태로 방치한다. 일주일 후 살펴보니 유리창이 깨진 자동차는 누군가 배터리와 타이어, 쓸 만한 부속까지 모두 빼가 거의 폐차 직전의 상태가 되었다. 나머지 한 대는 일주일 전 그대로였다.

1994년에 뉴욕시장으로 취임했던 루돌프 쥴리아니는 줄어들지 않는 지하철 범죄로 인해 골머리를 앓고 있었다. 그는 직접 현장 시찰을 하고, 단순한 문제 때문이라는 것을 직감으로 알아낸다. 해답도 금방 보였다. 어두컴컴하고 음침한 지하철역 분위기뿐 아니라 벽과 차량 곳곳에 도배된 온갖 낙서들과 길바닥에 나뒹굴고 있는 술병, 쓰레기들을, 범죄를 일으키게 하는 직접적인 원인이라고 인식한다. 새로 임명된 뉴욕 검찰국장 윌리엄 브래튼과 함께 무단횡단, 노상음주, 무임승차, 낙서 등 기초질서 위반자에 대해 집중단속을 함과 동시에 낙서를 지우고 쓰레기를 치우는 등 대대적인 환경개선에 나섰다. 그로부터 5년 후 뉴욕의 범죄는 크게 줄어든다. 살인사건의 경우 연간 약 2200건에서 1000건 이상 감소했고, 지하철 범죄율도 75%나 급감했다.

• 구슬이 서 말이라도…

 빅 데이터를 이야기 하기 전에 우리 주변의 스몰 데이터를 분석했으면 한다. 우리 주변의 작은, 깨진 유리창의 문제를 해결했으면 한다. ‘너 이거(프로그램) 얼마 만에 짤 수 있어?’라는 질문에 대답할 수 있었으면 한다. 그러기 위해서는 자신의 코딩 시간을 끊임 없이 기록해 둬야 한다. 이 정도면 얼마 만에 짤 수 있다고 대답이 나올 때까지는 그래야 한다. ‘언제 서버가 CPU 100에 이를까?’라는 질문에 답해야 한다. 변수가 너무 많아서 시도도 않는다고? 그럼 단순화 시켜서 지금 사용자 증가 추세와 데이터 증가 추세로, 그리고 추가 개발 없다는 매우 안정된 상태에서 우리 서버는 언제 CPU 100%에 도달하게 될까?에도 답할 수 있어야 한다고 생각한다.

내 주변의 작은 데이터들을 의미 있게 다루는 ‘습관’에서 바로 빅 데이터에 대한 분석의 ‘체질’이 형성될 수 있다. 그러기 위해서 우선은 수집부터 해야 한다. 이미 수집돼 있다면 이제 분석할 때다. 구슬이 서 말이라도(데이터) 꿰어야 보배(정보)가 된다!

다음 연재에서는 실제로 데이터 수집을 어떻게 하는지부터 살펴 보고, 데이터 분석을 하는 구체적 방법을 알아본다. 다음 연재 때까지는 내가 가진 주변의 구슬(데이터)들이 뭐가 있는지부터 점검해 보았으면 좋겠다.

구슬이 보배가 될 날을 기다리며!

 

출처 : 한국데이터베이스진흥원

제공 : DB포탈사이트 DBguide.net