2015년 8월 6일 목요일

헬스케어 서비스를 위한 빅데이터 설계 포인트

헬스케어 서비스의 개념

 대부분의 서비스에서는 소프트웨어를 편의성이나 기능 증대에 활용하는 경우가 대부분이라 서비스 자체의 변화는 크지 않습니다. 하지만 질병의 치료와 예방을 함께 생각하는 헬스케어 서비스의 경우 소프트웨어가 차지하는 비중은 매우 높습니다. 질병의 발생 여부에 따라 환자의 치료나 상태 관리를 위해 병원을 방문해야 하는 것이 일반적이지만, ICT를 접목 시키면 직접적인 치료는 아니더라도 환자의 상태는 항시 관리할 수 있기 때문입니다.

 헬스케어 서비스는 기존 의료 서비스에 ICT 서비스를 접목한 서비스입니다. 그림1은 헬스케어 서비스의 개념을 나타낸 것입니다. 기존의 의료 서비스는 환자가 발생하면 병원과 약국에서 대면 의료를 통한 서비스를 하는 것이 일반적이었습니다. 하지만 헬스케어 서비스로 넘어오면서 환자는 물론이고 질병이 발생하지 않은 일반인 대상으로 다양한 서비스를 제공하고 있습니다. 더구나 ICT 기기의 발달로 인해 원격 진료라는 새로운 서비스도 나타났습니다.

기존 의료 서비스는 반드시 의료 기관을 통해 서비스를 받을 수 있었지만, 헬스케어 서비스는 헬스케어 기기, PC, 모바일 기기, 운동시설 등 다양한 기기의 정보를 통해 추가적인 서비스를 받을 수 있습니다. 병원에서 전달하는 정보는 전자의무기록(EMR, Electronic Medical Record), 처방전달시스템(OCS; Order Communication System), 의료영상저장전송시스템(Picture Archiving Communication System) 등이 있으며, 다양한 기기들이 전달하는 정보는 국제표준 전자건강기록(EHR; Electronic Health Record)가 있다. 전송된 정보들은 각각의 표준화된 규격에 맞춰 빅데이터로 관리되며, 중요 의료, 건강 정보를 분석하여 헬스케어 서비스를 제공하고 있습니다.

 헬스케어 서비스는 발전하는 IoT(Internet of Things) 개념을 적용하는 서비스 중에서 빅데이터 분석에 의해 개인의 특성을 파악하고 맞춤 서비스를 할 수 있는 대표적인 서비스라고 할 수 있습니다.















그림1. 헬스케어 서비스의 개념도

모빌리티 테스팅: 5개 주요과제와 해결방안

모바일 기기들이 널리 보급됨에 따라 모바일 기기 테스팅은 SW 개발상의 주요 선결과제로 대두되고 있습니다. 모바일 기기 테스팅은 기존 SW개발 테스팅과는 다른 독특한 특징을 보이고 있으며, 이러한 특징은 아래의 5가지 주요과제로 분류할 수 있습니다.
본 장에서는 모바일 테스팅에 있어 5가지 주요과제별 해결방안을 합리적인 비용측면과 지속가능한 위험감소 측면에서 제시하고자 합니다.


  • 모바일 기기 테스팅에 있어 직면하게 되는 5 가지 주요 과제들
        1. 모바일 OS(operating system) 들과 OS 버전들의 수
        2. 모바일 장치들과 장치 구성 (device configuration) 들의 수
        3. 로컬 네트워크 서비스 제공자들에 대한 의존
        4. 기업 수준의 보안 문제들
        5. 어플리케이션 , OS, 장치의 개발 속도
  • OS 시스템들의 수 : 범위의 한계를 정하라
  • 모바일 기기들과 기기 환경들의 다양성 : 범위의 한계를 정하라
  • 로컬 서비스 제공자들에 대한 의존들 : 서드파티 테스팅 활용하기
  • 기업수준의 보안 문제들 : 적절한 시점에 오인요소들 점검하기
  • 적용속도 : 팀을 적정 규모로 조직해라 , 적절한 테스트 타겟을 설정하라 , 테스트 자동화를 시행하라


확장가능한 Concolic 테스팅 접근 : 경험적 평가

소프트웨어 테스팅은 소프트웨어의 Quality 를 높이는데 표준이 되는 방법이지만 기존의 일반적 테스팅 방법은 fault 를 찾는데 자주 실패합니다 . Concolic 테스팅은 이러한 문제점을 완화시키기 위해 fault 를 찾는 테스트 케이스 생성을 자동화함으로써 가능한 한 많은 프로그램 실행경로를 탐색하려는 시도를 합니다 . 하지만 Concolic 테스팅은 수많은 실행경로를 탐색하기 위해 상당한 시간을 필요로 하기 때문에 실제적용에는 한계를 가지고 있습니다 . 

본 연구는 이러한 한계를 다루기 위해 기존의 Concolic 접근을 많은 수의 컴퓨터를 활용하여 사용할 수 있도록 확장함으로써 테스트 케이스의 생성을 활용되는 컴퓨터 수에 비례하여 빠르게 하는데 그 목적이 있습니다 .

동적 테스팅 기법은 산업체 또는 기관에서 소프트웨어의 Quality 를 높이는데 가장 많이 사용되는 기법이지만 소프트웨어의 많은 실행경로 때문에 테스트 케이스를 버그를 찾을 수 있을 만큼 충분하게 만드는 것에는 현실적인 어려움이 있습니다 . 이러한 한계를 극복하기 위해서 Concolic(CONCrete + symbOLIC) testing[1] 기법이 제시되었지만 가능한 실행경로들을 탐색하는데 상당한 시간이 걸려서 실제적인 적용이 어렵습니다 . 
본 연구에서는 이러한 한계를 극복할 수 있는 Scalable COncolic testing for REliable software(SCORE) framework 를 제시합니다 . SCORE 는 분산된 Concolic 알고리즘으로써 많은 수의 컴퓨팅 노드를 확장가능하고 , 많은 수의 컴퓨팅 노드가 동시에 실행되면서 테스트케이스를 생성하도록 함으로써 테스트 케이스의 생성속도를 컴퓨팅 노드의 수에 비례하여 선형적으로 증가하게 할 수 있도록 합니다 .
  • 분산된 Concolic 알고리즘
  • SCORE 알고리즘
  • 노드들간의 통신
  • SCORE 구현
  • 성능분석

자세히 보기 →