Home > 정보마당 > 공개SW 활용 성공사례

공개SW 활용 성공사례

2014
Hadoop, kibana, ext js, fluentd

공개SW 기반 실시간 빅데이터 분석 플랫폼...리얼타임 스트림 개발


모바일 시대의 “사용자는 참을성이 많지 않다”는 대명제를 잘 이해하고 이를 서비스나 비즈니스에 녹여내는 작업들은 현재도 계속 진행중이다. 특히 시시각각 변화하는 사용자들의 반응을 재빨리 분석하고 상황에 맞춰 대처하는 것은 비즈니스에서 필수가 되었다. 실시간 빅데이터 분석 기술의 역할이 기대되는 가운데 공개SW 개발지원사업을 통해 개발된 실시간 빅데이터 분석 플랫폼 '리얼타임스트림(Realtime Stream)'을 소개한다.

- 기관 MHR Inc
- 수행년도 2014년
- 도입배경 데이터 공급 및 처리 단계를 자동화한 실시간 빅데이터 분석 플랫폼 개발 필요
- 솔 루 션 Hadoop, kibana, ext js, fluentd
- 도입효과 스트리밍 데이터를 실시간으로 수집 및 분석할 수 있는 데이터 분석 플랫폼을 통해 기업의 빅데이터 기술 도입 비용 감소 및 활용 능력 증대 기대

MHR Inc는 클라우드 컴퓨팅과 빅데이터 활용을 방해하는 기술적 장애를 해결하고 이들을 쉬운 방법으로 사용할 수 있는 기술개발에 주력하고 있다. “보다 낳은 내일을 기술로 만들자” 라는 모토로 클라우드 컴퓨팅과 빅데이트 활용 기술을 발전시켜 가치있는 인사이트 창출하는 것에 역량을 집중하고 있다.


데이터 급증에 대처하는 자세

MHR Inc의 안명호 대표는 사람들이 IT기기를 바라보는 시각이 과거엔 특정한 목적을 위해 사용하는 단순한 ‘기계’였다면, 이제는 일상에서 잠든 순간조차 함께하는 강력한 자석같은 존재가 되었다고 말문을 열었다. 그는 모바일 시대로 변모한 세상에서 특히 기하급수적으로 증가하는 데이터를 처리하는 기술에 소위 꽂혔고 이에 집중했다. 그의 주력분야는 클라우드와 빅데이터다.


“프로그램을 작성한다는 것은 결론적으로 이야기하면 데이터를 어떤 필요와 목적에 따라 프로그램으로 처리하는 것이다. 즉 프로그램의 존재이유가 데이터의 처리라고 말할 수 있을 정도로 데이터가 중요하다. 이러한 데이터는 많은 양이 모일수록 그 활용가치와 정확도가 높아지는데, 이 때 필요한 것이 클라우드와 빅데이터이다.”라며 이 기술들이 공개SW를 근간으로 발전되었기 때문에 일찍이 관련 공개SW 프로젝트에 관심을 기울여 왔다고 설명했다.


흔히 빅데이터를 말할 때 하둡을 먼저 떠올린다. 하둡은 흩어져 있는 데이터를 하나로 묶어 데이터를 처리하는 대규모 데이터 분산 파일시스템이지 실시간 데이터를 분석하기 위해 개발된 것이 아니기 때문에 상황에 맞는 새로운 기술을 활용해 어떻게 개발할 수 있을지를 고민해오던 터였다. 이러한 고민을 나이파 공개SW 개발지원 사업을 통해 실시간 스트리밍 데이터 수집 및 분석 기술을 개발하는 것으로 구체화 해보기로 했다. 본 개발은 빅데이터 전문업체인 클라우다인과 공개SW 검색엔진 ‘패스트캣’의 개발사도 참여했다.


공개SW로 구축한 실시간 데이터 분석 플랫폼

리얼타임 스트림과 유사한 실시간 빅데이터 분석 플랫폼으로 이미 Storm, Splunk 등이 있다. 그렇다면 리얼타임 스트림만의 강점은 무엇일까? 이에 안대표는 Storm, Splunk가 실시간 데이터 처리에 적합한 구조과 기능을 제공하며, 또한 뛰어난 퍼포먼스를 구현한다. 하지만 실제로 활용하기 위해서는 데이터 공급(수집, 가공 등)이 필요하다. 즉 실시간 데이터 처리 과정을 간단히 3단계로 "데이터공급->데이터처리->시각화"의 3단계로 볼 때, Storm, Splunk는 데이터 처리에 중점을 둔 반면 선행되어야하는 공급 측면은 다소 불편하고 어렵다. 이 부분을 커스터마이징 하려면 전문인력과 많은 시간이 소요된다. 리얼타임 스트림은 이들의 취약점인 데이터 공급 및 처리를 위한 프로세싱을 자동화시켜 쉽고 간소화 시킨것이 특징이라고 밝혔다.


실시간 데이터 분석도 쉽지 않지만 이를 위한 환경구축도 만만치 않은 일인데 공개SW를 기반으로 구축하기 적합한 것이 뭐 가 있을까? 사용자가 편하게 실시간으로 데이터를 분석할 수 있도록 환경을 구성하고, 통합된 실시간 데이터를 활용할 수 있는 있는 것 말이다. 안대표는 이러한 기술 요구가 비단 자신뿐 아니라 많은 사람들이 고민이라 여겼다고.


개발목표는 크게 3가지로 잡았다.

- 실시간 분석 클러스터/애플리케이션의 배포 및 구성 등의 관리SW 개발
- 실시간 이벤트 및 데이터의 실시간 검색 엔진 SW 개발
- 실시간 빅데이터 분석 결과 데이터의 저장 및 검색 SW 개발



▲ 실시간 빅데이터 분석 플랫폼 구조도


그는 먼저 하둡을 꺼낸다. 하둡은 하둡 파일 시스템을 통한 데이터 수집 및 저장, 맵리듀스를 이용한 데이터 처리를 진행한다. 정형, 비정형 데이터를 수집하고 처리하는데 이를 빨리 저장하고 처리할 수 있다. 공개SW로 커스트마이징이 가능해 빅데이터 솔루션 구축 기업들이 많이 사용하고 있다. 수집, 분석, 처리, 결과 생성 중 하둡은 수집과 처리를 담당한다.

그래피컬한 화면인 대쉬보드 제공에는 키바나(kibana)를 썼다. 공개SW 프로젝트로 빅데이터를 활용하면서 실시간 혹은 간단한 화면상에서 특정 데이터의 변화 등을 위젯형태로 만들어 시각화해주는 기능을 한다.

또 자바스크립트 기반의 MVC 프레임워크인 ext js는 복잡한 UI와 기능을 가진 웹 클라이언트 어플리케이션을 쉽게 개발해 줄 수 있도록 도와준다. 순수 자바스크립트를 이용해서는 대규모 어플리케이션을 개발하는 것이 쉽지 않은데 ext js를 이용하면 높은 생산성과 함께 구조적으로 짜임새가 있는 어플리케이션을 개발할 수 있다.


데이터 수집에는 fluentd 사용했다. 다양한 종류의 데이터를 간단한 스크립트 작성만으로 수집해 데이터 처리 서버로 전송해주는 역할을 한다. 별도의 마스터/슬레이브 설정을 하지 않아도 된다는 것도 큰 장점이라고 설명한다.


실시간 데이터 분석 플랫폼을 개발하면서 주안점을 두었던 것은 많은 종류의 데이터를 어떻게 하면 편리하면서도 쉽고 빠르게 통합하는 것이었다. 실제 데이터 분석을 위해서는 다양한 종류의 데이터를 수집하고 이를 분석하기 위해 파싱할 수 있어야 한다. 그런데 문제는 데이터가 많고 다양하며 이들의 형식도 다들 제각각이기 때문에 수집이나 분류 등에 적지 않은 시간과 노력이 들어갈 수 밖에 없다. 더욱이 간혹 데이터 자체가 암호화되거나 혹은 형식이 공개되지 않는 경우도 있는데, 해당 데이터를 사용하기 위해 엔지니어는 많은 불면의 시간을 보낼 수 밖에 없다는 고충을 설명했다.


데이터 처리를 위해서는 먼저 데이터를 수집한다. 데이터의 형식과 포맷이 모두 다르기 때문에 각각의 데이터 형식을 이해하고, 거기에서 내가 필요로 하는 데이터를 추출해 사용한다. 형식이 공개되지 않은 데이터의 경우, 엔지니어가 직접 그 데이터 형식을 분석해 파악해야 하는데, 프로세스상 시간과 노력이 많이 들어갈 수 밖에 없다.


수집할 데이터의 형식과 종류와의 싸움이 끝나면 이를 데이터 수집할 대상이 있는 서버에 배포하고 설정을 해주어야 한다. 만약 데이터 수집할 서버가 프로덕션 스테이지에 있는 경우, 이 작업 또한 긴장을 늦출 수 없다. 운영중인 서버에 장애가 발생된다면 생각하기도 끔찍한 일이 생길 수도 있기 때문이다. 대상 서버의 수가 수십, 수백 대가 된다면 더할 것이다. 고도의 집중력을 요하는 작업에는 속쓰림과 두통은 덤이다.



‘세상에 쉬운 개발은 없다.’

안대표는 제법 긴 시간동안 소프트웨어를 개발하면서 느낀 소회를 ‘세상에 쉬운 개발은 없다’라는 말로 정리했다. 요구 수준이 높지 않고, 기술적으로 큰 어려움 없이 개발이 용이할 것이라 예상되는 프로젝트도 막상 시작되면 그렇지 않은 경우가 더러 있고, 반대로 요구되는 기술수준이 높아, 어려움이 예상되는 프로젝트는 기대의 어긋남 없이 어렵다는 것을 실감하게 되는 것이 다반사라 한다.


본 리얼타임 스트림 개발 프로젝트도 마찬가지여서 진행사항에서 예상치 못한 난관에 직면하는 일이 많았다. 문제 발생시엔 해결을 위해 더 많은 시간과 공을 들여야 하는데 한정된 시간안에 개발해야 된다는 부담감이 무엇보다 컸다. 애초 과제 기간이 짧아 모든 개발 일정이 매우 빡빡하게 진행되어 여러 가지 기술을 통합할 때는 1개월 정도의 시간밖에는 없었다.


개발자라면 공감하겠지만, 통합은 결코 간단한 주제가 아니다. 서로 다른 생각과 백그라운드를 가진 개발자가 협업을 통해 무엇인가를 만들고, 이를 조립해 멋진 생각을 구체화시킨다는 것은 그만한 대가를 요구한다. 많은 회의와 대화를 통해 개발을 진행했어도, 통합 단계에서는 생각지도 못한 문제가 많이 발생한다는 것이다.


리얼타임 스트림의 경우 공개SW로 구성하기 때문에 각 SW의 특성을 파악하는데도 많은 시간을 할애해야 했고, 통합과정에 나타나는 문제로 인해 아키텍쳐도 변경을 해야 했다. 그가 이렇게 고군분투하며 깨달은 사실은 “약은 약사에게, 진료는 의사에게” 라는 광고 카피가 있듯 공개SW 역시 전문가와 전문지식과 경험이 필요하다는 것이다. 공개SW는 나름의 철학과 원칙을 갖고 개발되는데, 이를 제대로 이해하지 못하면 거의 마지막 단계에서 커다란 암초와의 조우를 하게 된다는 점이다.

오픈소스화와 딥러닝으로의 확장

리얼타임 스트림을 소스포지에 공개했다. 안 대표는 오픈소스화한 이유를 “나 역시 개발에 공개SW를 활용했기 때문이다. 만약 누군가가 공개SW로 내가 사용한 소스를 공개하지 않았다면 실시간 데이터 분석을 위한 SW를 개발하지 못했다. 절대적으로 기존 공개SW 개발자들의 공헌 덕분이며, 나 역시 동참한다는 생각을 늘 해왔다.” 그는 향후에도 공개SW에 대한 애정을 관심있는 프로젝트 지원을 통해 이어나갈 계획이라고 한다.


회사는 리얼타임 스트림을 추후 딥러닝(deep learning)에 특화시키는 방향으로 프로젝트를 확장할 계획이다. 인간의 뇌 구조를 모방한 인지학습 기술인 딥러닝은 미래를 주도하는 기술로 각광받고 있으며 많은 글로벌 IT 기업에서 집중 투자하고 있기도 하다. 관계자는 신뢰도 높은 딥러닝 기술을 수행하기 위해서는 빅데이터 기술이 필수적인만큼 실시간 데이터 분석 플랫폼을 더욱 완성도 있게 발전시켜 나갈 포부를 밝혔다.



[인터뷰]

“공개SW 대가 산정 합리적으로 정립되어야”

MHR Inc 안명호 대표이사


MHR Inc 안명호 대표이사

공개SW 비즈니스의 애로사항은?

대한민국이라는 나라에서 오픈소스를 가지고 비즈니스를 한다는 것은 여러 가지 면에서 젖과 꿀이 흐르는 가나안땅이 아니라고 얘기할 수 있다. 진정한 목수는 연장탓을 하지 않는다고 하지만 아직은 뚜렷하게 성장하지 못한 사람으로서 아쉬운 점은 분명히 있다. 유지보수대가에 현실화가 가장 아쉽다. 많은 기업과 기관들에서 유지보수는 구입가의 몇%라는 암묵적인 룰을 따르고 있는데, 이는 기존 패키지 기반의 SW 비즈니스 모델에서 파생된 것으로 공개SW에는 적합하지 않다고 본다. SW는 지속적인 개선과 유지보수가 중요한 만큼, 공개SW 특성을 반영한 대가 산정이 합리적으로 정립되었으면 한다.


성숙한 공개SW 활용 생태계 조성에 필요한 것은?

우선 비단 SW분야뿐 만 아니라 모든 산업 전반에서 기술의 가치를 인정하는 문화가 확산되었으면 한다. 최근 들어 기술을 중요시하는 무드가 조성되고 있으나 전반적인 인식이 아직은 미흡하다. 당장 보이는 것이 없기 때문에, 공짜라고 생각하는 경향이 짙고, 이러한 생각이 무형적 자산의 가치를 낮게 보는 원인이 되는 것 같다. 모든 것은 유형화되기 전에 무형화의 단계를 거쳐야 하는데, 무형화의 단계를 어떻게 보내느냐에 따라 유형화가 결정된다. 극단적으로 이야기하면 유형화는 그저 무형화의 산물에 불과한 것이다. 무형화 과정 동안에 무엇을 어떻게 할까, 문제를 정의하고 바라보는 시각, 해결방안 등이 절대적으로 중요하다. 요즘처럼 기술이 확산되는 시대에는 무형화의 가치가 더욱더 중요할 수 밖에 없다. 동일한 기술이 적용된 유형화된 것들은 무형화에 따라 달라진 것이다. 무형화에 대한 가치인식이 달라질 때 자연스럽게 SW의 가치가 인정되고, 이를 통해 성숙한 공개SW 문화도 정착, 발전할 것이라 생각된다.


빅데이터 동향은?

개인적으로 빅데이터의 활용이 아직 초기 단계에 머물러있다고 생각한다. 빅데이터의 진정한 의미는 “Insight(직관)”을 검증해주는 강력한 도구라고 보는데 그런 관점에서 보자면 데이터의 수집과 통합단계가 중요하다. 최근 몇 년 사이에 데이터의 수집 및 통합을 위한 기술들은 눈부시게 발전했다. 이제는 다음단계인 분석으로 자연스레 넘어가고 있다. 분석을 위한 데이터가 충분히 모였고, 모인 데이터를 가져오기 위한 각종 기술들이 성숙되고 있기 때문이다. 앞으로는 이러한 데이터를 분석할 수 있는 기술, 특히 사람이 아닌 기계에 의한 분석기술들이 각광을 받을 것이라 예상한다. 빅데이터는 말 그대로, 엄청난 양의 데이터이기 때문에 사람이 분석하기에는 정말 많은 시간과 노력이 필요한데, 여러 가지 이유로 사람이 직접 실행하기에는 어려움이 있다. 따라서 자연스럽게 기계를 통한 분석을 통해 도출된 결과를 사람이 보다 깊게 분석하는 방식으로 전개될 것이다.




- 공개SW 역량프라자

맨 위로
맨 위로