2017년 1월 20일 금요일

국민건강보험공단의 스마트 헬스케어


출처: 국민건강보험공단
국가 인프라로 유전체정보센터를 구축하여 유전체 정보와 빅테이터에 기반한 스마트 헬스 생태계를 구축하고 이를 통해 복지 비용 절감과 맞춤 의료 서비스 시장을 조성하려는 목적이 있다.

<그림6> 국민건강보험공단의 빅데이터 중심 스마트 헬스 생태계
출처: 경희대 산업협력단

국민건강보험공단은 헬스케어 서비스의 안정화를 위해 포항공대와 공동으로 국민건강정보 빅데이터 플랫폼 구측 사업을 진행하고 있고, 국민의 건강 데이터를 기초로 개인별 맞춤형 건강관리 서비스 제공하는 것이 최종 목표다.
웨어러블 디바이스가 보급돼 건강 데이터를 보다 폭넓게 수집할 수 있다면 실시간으로 가입자의 식습관과 운동량, 기초 심박수를 모니터링하여 국민의 건강상태를 맞춤형으로 관리하는 것이 가능해진다.
질병 치료 중심에서 예방 중심 체계로 전환하려는 공단은 진료비 청구율 하락으로 재정 부담이 덜어지는 효과도 크다. 현재 구축하는 빅데이터 플랫폼은 스마트 헬스 데이터를 수집할 수 있는 시스템으로 웨어러블 기기의 생체 정보 수집도 가능하도록 준비 중이다.

IBM의 충남대학교병원 통합의료정보시스템

출처: IBM - Business Analytics
충남대학교병원은 병원에 차트가 없어지는 시대가 도래할 것으로 보고 다양한 의료 데이터와 기록들이 폭발적으로 증가하는 빅데이터 환경이 필요할 것이다라고 예측하여 IBM과 함께 시스템을 구축하였다. 빅데이터가 의료 서비스의 질을 개선할 것이라고 보고 연구 활동 전반에도 데이터 분석 역량을 강화하고자 운영 시스템 개발 단계부터 빅데이터 분석을 위한 데이터 구조 설계를 반영하였다. 병원에서 운영 중인 데이터를 수집하여 병원에서 자주 사용하는 데이터 구조로 통합하고 분석과 통계 결과를 바탕으로 다양한 진료와 연구 논문에 활용하게 되었다(그림7). 충남대학교병원에서는 빅데이터 분석을 염두에 두고 데이터 통합과 분석의 기초를 다졌기 때문에 빠르게 늘어가는 사용자들의 정보 분석 요청에 기민하게 대응할 수 있었다.

<그림7> IBM의 의료 데이터 분석 예
출처: IBM


SW공학 기술 활용성과 효과성



공학 기술 활용 – V&V Process



 SW공학 기술 적용범위 및 효과성



개발표준 및 개발신뢰성 확보–표준 프로세스 구축







트랜잭션 분석의 진검승부 - APM 의 핵심은 트랜잭션 모니터링


APM 모니터링의 핵심은 웹 애플리케이션의 개별 트랜잭션을 모니터링 하는 것입니다. 얼마나 쉽고 빠르게 성능 이슈를 감지하고 분석할 수 있는지가 가장 중요합니다.


Transaction Monitoring –실시간으로 바로장애를 알수있게 모니터링 해야한다.


사용자 요청이 서버에 도착하면 아크이퀄라이저를 통해 몇건이나 처리중인지를 보여주고 종료된 트랜잭션에 대해서 Hit Map이라는 응답분포도와 트랜잭션별 프로파일을 통해 상세분석할수 있습니다.





CaseStudy-Active Stack으로 문제해결 





2017년 1월 19일 목요일

소프트웨어 재사용을 위한 개발 방향


소프트웨어의 재사용은 소프트웨어 개발업체나 개발자에게 오래된 염원일 정도로 오래된 숙제다. 객체(Object)나 컴포넌트(Component)와 같은 용어도 근본적인 목표를 재사용에 맞춰져 있을 정도로 다양한 방법으로 소프트웨어 재사용이 시도되었으나 성공한 사례는 드물다. 경험이 많고 역량이 뛰어난 일부 개발자에 한해 자신이 만든 소스코드를 재사용하는 경우는 일부 있지만 전격적인 재사용은 시도조차도 어렵다. 이번 회에서는 단국대학교 소프트웨어공학 연구센터원들과 소프트웨어 재사용에 대해 함께 알아본다.

Q: 안녕하세요. 소프트웨어 개발자들이 자주 듣는 얘기가 후속 사업이 있으니 이번에 개발만 잘 해놓으면 대박이라는 것일 겁니다. 그만큼 소프트웨어 재사용에 대한 관심은 누구나 항상 가지고 있는데 언제나 실패하는 것 같습니다. 소프트웨어 재사용의 현황에 대해 먼저 말씀해 주시죠.


가장 쉬운 주제이면서도 가장 어려운 주제인 것 같습니다. 왜냐하면 만들어 놓으면 당연히 다른 곳에서도 쓸 수 있어야 하는데 그게 잘 안되는게 소프트웨어이기 때문입니다.
소프트웨어 재사용의 장점은 매우 높습니다. 하지만 최근까지도 재사용은 잘 되지 않는 것이 현실입니다. 처음부터 재사용을 준비하면서 개발해야 하기 때문에 추가적인 비용과 시간이 많이 들고 재사용 전문가도 추가적으로 투입되어야 하기 때문입니다. 어렵게 재사용 소프트웨어를 만들어도 유지 보수하는데 어려움도 크기 때문에 들어간 노력에 비해 재사용되는 횟수가 적은 것도 재사용을 망설이는 요인 중 하나죠. 하지만 가장 큰 요인은 다른 사람이 개발한 것을 믿지 못하는 개발 문화에 있기도 합니다.

Q: 다른 사람이 개발한 것을 믿지 못하는 소프트웨어 개발자의 일반적인 습성 때문도 한 몫 한다는 것인가요?

그 뜻은 아닙니다. 소프트웨어의 가장 큰 단점이라고 할 수 있는데 완성된 소프트웨어라고 해도 다른 사람이 봤을 때 어떻게 만들어졌는지 알아보기가 매우 어렵다는 부분을 말씀드리는 겁니다. 심지어는 내가 만들었어도 시간이 흐르면 어떻게 만들었는지 기억이 나지 않는 경우도 있습니다. 다른 산업에서는 완성된 제품에 대한 설계도나 사용법 등이 잘 작성되어 있지만 소프트웨어는 그렇지 못한 것이죠. 소프트웨어 개발 프로세스나 방법론에 따라 산출물들을 작성하기는 하지만 신뢰할 수준은 못되는 것이 현실이죠. 물론 이해하신대로 다른 개발자가 개발한 것은 못 믿는 경우도 있기는 합니다. 이 것을 NIH 증후군이라고 합니다.

NIH 증후군 (Not invented here syndrome)은 말 그대로 '여기서 개발한 것이 아니다.'(Not invented here)라는 의미로, 제3자가 개발한 기술이나 연구 성과는 인정하지 않는 배타적 조직 문화 또는 그러한 태도를 말한다. 따라서 주어진 문제에 대한 해법을 자신 또는 조직 내부의 역량만 고집하여 해결하려는 배타적인 현상이 나타난다. NIH 증후군은 타인이나 다른 조직에서 나온 기술이나 아이디어는 무시하거나 수용하지 않으려 한다는 점에서 소통과 협업을 어렵게 만드는 장애 요인으로 작용한다. (자료: 위키피디아)

재사용이 어렵고 적용된 사례도 많지 않지만 반드시 필요하다는 인식은 줄어들지 않고 있습니다. 사실, 재사용이 널리 확산되지 못했던 이유도 재사용 자체의 문제보다는 적용의 한계로 볼 수 있기 때문입니다. 적용은 어렵지만 재사용이 그래도 계속 관심 범위에 있는 이유는 완성만 된다면 생산성 향상이나 기간과 비용 단축에 매우 효과가 높고 개발팀도 체계적인 재사용 자산 관리를 할 수 있기 때문일 겁니다.

Q: 그렇다면 소프트웨어 재사용을 위해 전제되어야 할 것들은 무엇이 있을까요?

재사용을 위해서 가장 필요한 것이 무엇일까요? 아마도 재사용하려는 단위일 겁니다. 왜 재사용하려는 것인지, 재사용할 때 꼭 필요한 것들만 있는지를 확인해야 하죠. 표1을 보면 재사용에 필요한 사항이 있습니다. 범용성과 모듈성이라고 되어 있습니다.

<표1> 소프트웨어 재사용의 필요성

먼저, 누구나 사용할 수 있게 만들어야 합니다. 그런데 반대로, 범용성은 재사용하는 횟수가 많아야 한다는 것도 뜻합니다. 한번 쓰고 마는 소프트웨어를 일부러 재사용 가능하게 만들 필요까지는 없다는 뜻입니다.
두번째로 모듈 단위로 개발을 해야 한다는 겁니다. 표1에서 보는 것처럼 모듈화를 위한 방법이 나타나 있지만 한마디로 요약하면 가급적 다른 것들과는 상관없이 동작해야 한다는 것입니다. 윈도우의 DLL 파일이 그런 경우입니다. 우리는 DLL을 사용하는데 그게 어떻게 만들어졌는지 고민할 필요가 없습니다. 그저 DLL을 호출해서 쓰면 되는 것이지요.


SW 공학기술 적용 - SW공학 기술 적용 체계성



개발표준 및 방법론 – 업계동향



 개발 표준 및 방법론–차량 개발 관련 표준 / 프로세스 모델 비교



개발관리 – 문제점 관리





응답시간의 샘플링과 프로파일링

샘플링 문제

모든 데이터를 다 수집하면 좋은데 가능할까?

  • 다 저장하면 좋은데 .저장소가격이
  • 얼마나 적은 데이터로 많은 문제를 잡을수 있냐?
  • 서비스 입장에서는 이게 원가 경쟁력을 의미함


어떻게 샘플링 할까요?



프로파일링은 어떻게?

CPU 따로, Memory 따로, I/O 따로하는 프로파일링 맞나?


큐브분석-성능정보를 입체적으로 꿰매어서 보자!



2017년 1월 18일 수요일

대화형 인공지능에 대한 동향 분석


인공지능에 대한 관심이 점점 더 높아지고 있다. 사람에게 바둑으로 도전을 하는 인공지능도 나타났고 다양한 산업에서는 인공지능을 활용한 서비스를 준비하고 있다. 그 동안은 사람처럼 행동하고 생각하는데 집중했다면 이제는 사람처럼 말하는 것을 연구하는 단계까지 이르렀다. 아무리 지능이 높더라도 일정한 명령에 의해 움직이던 인공지능은 스스로 적절한 판단을 통해 사람의 대화에 참여할 수 있게 된 것이다. 이번 회에서는 다양한 대화형 인공지능에 대해 알아보기로 한다.
대화형 인공지능의 산업 현황

인공지능의 발전사

1950년대부터 인공지능 관련 연구가 시작되었지만 기술적 한계에 부딪히면서 연구와 투자가 장기간 침체되어왔다. 한동안 정체기였던 인공지능은 최근에 빅데이터와 컴퓨터 하드웨어의 성능향상으로 기술 한계를 극복하면서 주목을 받기 시작했고 기계학습, 딥 러닝 등 다양한 모습으로 발전하고 있는 중이다.
최근 인공지능이 주목받는 이유는 인공지능이 학술적 연구 단계를 넘어 다양한 산업의 비즈니스에 적용 가능한 수준으로 빠르게 발전하고 있기 때문이다. 과거 인공지능은 사람의 인지 능력이나 사고 능력에 미치지 못했지만 딥 러닝의 발전으로 특정 분야에서는 사람의 수준까지 발전하고 있어 상업적인 활용 가능성이 높아졌다.
단순히 논리적인 규칙 기반에서만 판단하는 수준에서 신경망을 이용하여 사람이 기억하고 판단하는 것을 모방하였고, 다양한 알고리즘 기반의 판단 방식에 따라 최적화된 문제 해결 능력을 갖춘 인공지능으로 발전되었다. 현재는 인공신경망을 더 발전시킨 딥 러닝 기술에 따라 사람 수준까지 발전한 인공지능은 스스로 학습 능력을 개선하고 사람에게 가까워지는 것은 물론이고 사람의 판단 오류는 재현하지 않기 때문에 사람보다 더 정확한 판단을 하기에 이르렀다(그림1).

<그림1> 인공지능의 역사
출처: 정보통신기술진흥센터

대화형 인공지능의 시장규모

대화형 인공지능에서 가장 필요한 기술은 자연어 처리다. 국내 자연어 처리 관련 시장 규모는 실시간 음성인식 부문에 3,000억, 통번역 및 현지화 부문에 700억 등 2020년에는 약 3,700억에 이를 것으로 전망되고 있다.

<그림2> 국내 자연어 처리 관련 시장 규모와 구성
출처: 로아컨설팅(2016년)