2017년 1월 11일 수요일

Node.js와 Benchmark 사례

Node.js Production 레벨에서는 CPU 갯수+@ 만큼 Single Thread를 뛰워요!




가장많은 모듈을 가진 언어!



Benchmark : 간단한http 요청




Benchmark: HTTP & CPU Task





소프트웨어 개발 품질 이슈 발생에 따른 대처 방법

소프트웨어를 개발하면서 공통적으로 가장 많이 듣는 얘기는 소프트웨어 품질일 만큼 소프트웨어 개발 회사나 개발자의 가장 큰 고민거리다. 이미 오래 전부터 다양한 방법으로 품질 확보에 노력해왔지만 언제나 똑 같은 고민거리로 다시 나타나는 품질에 대한 문제는 개발의 일부분 정도였던 것을 넘어 개발과 동등하게 고려되는 요소로 인식되고 있다. 이번 회에서는 소프트웨어 개발 품질 이슈를 어떻게 해결해야 하는지 대형 시스템통합 프로젝트에서 오랫동안 품질 관리를 해온 호윤시스템 김기향 팀장에게 얘기를 들어본다.

Q: 안녕하세요. 소프트웨어를 개발하면서 품질은 아주 오래전부터 지금까지도 반드시 해결하고 지켜야하는 숙제인 것 같습니다. 소프트웨어 개발 품질에 대한 정의부터 설명해 주시죠.

소프트웨어는 제조업에서 만드는 제품과는 많이 다릅니다. 제품은 만들어 놓으면 잘 돌아가는지 여러가지 검사를 통해 확인도 하고 육안으로도 찾을 수 있는 부분들이 많습니다. 그런데, 소프트웨어는 만들어 놓고도 이것이 잘 돌아갈 것인지 잘 돌아가고 있는지 육안 확인은 물론이고 도구를 써도 알아내는 것이 쉽지 않죠. 그래서, 소프트웨어를 개발할 때 품질을 어떻게 확보할 것이냐에 대한 고민을 많이 합니다.
소프트웨어의 품질은 이렇게 해야한다고 미리 정해 놓을 수는 없습니다. 만들어야 하는 소프트웨어의 종류에 따라 확인해야 하는 부분들이 모두 다르기 때문이죠. 제품을 만들 때도 제품의 특성이나 사용되는 부품에 따라 점검해봐야 하는 요소가 다른 것처럼 소프트웨어도 마찬가지 입니다.
그렇다면, 언제 소프트웨어의 품질 요소를 결정해야 하는지에 대해 고민하게 되는데요. 그림1은 소프트웨어를 설계할 때 고민해야 하는 요소들을 나타내는 것입니다. 만들고자 하는 소프트웨어를 설계하면서 설계에 따라 확인해야 하는 품질 요소를 결정하는 것이죠.

<그림1> 소프트웨어 설계 시 고려해야 하는 품질 요소

Q: 소프트웨어 품질을 높이려면 이런 부분을 확인해야 한다고 정해져 있는 줄 알았는데 그게 아니었군요. 소프트웨어마다 어떻게 품질을 확인할 것인지를 매번 만들어야 하는 건가요?

말한 것처럼 처음부터 끝까지 다시 만드는 것은 아닙니다. 기본적으로 확인해야 하는 요소들은 있습니다. 다만, 그러한 요소를 기반으로 어떤 항목을, 언제, 어떻게, 누가 할 것인지, 또 어느 정도 결과를 기대해야 하는지, 기대에 못 미쳤을 때 어떻게 대처해야 하는지, 이런 것들을 소프트웨어 설계하면서 함께 만드는 것입니다.
품질 속성을 평가하고 확인할 수 있는 다양한 가이드나 기법들이 알려져 있습니다. 그림2는 모바일 소프트웨어의 품질을 확인할 수 있는 속성에 대해 어떤 기법으로 확인할 수 있는지를 보여주고 있습니다. 물론, 이것은 하나의 예시입니다.



강의영상 : 국제표준 및 SW공학도구 적용을 자동차 전장SW개발 품질향상 성과사례

22nd SW Quality Insight 컨퍼런스 

트랙2-4. 김경욱 상무(에스피아이디) 강의영상 

주제 : 국제표준 및 SW공학도구 적용을 자동차 전장SW개발 품질향상 성과사례




2017년 1월 10일 화요일

헬스케어 사례 연구 - 빅데이터와 연계

헬스케어는 개인의 의료 데이터를 생성하기 때문에 빅데이터 관점의 접근이 반드시 필요하다. 게다가 치료 중심의 의료 서비스에서 예방 중심의 헬스케어로의 변화는 예측하기 어려울 정도의 빅데이터를 생성하고 있다. 분당 서울대병원에서는 빅데이터 연구원을 설립하여 다양한 의료 서비스에 접목시키고 있고 괄목할 만한 효과를 보이고 있다. 이번 회에서는 빅데이터 기반의 헬스케어에 대해 살펴보도록 한다. 예방 중심의 헬스케어 서비스에 빅데이터가 차지하는 역할이 무엇인지 이해하기를 기대한다.
사례 연구 전 확인 사항

빅데이터의 활용

빅데이터는 ICT 뿐만 아니라 다양한 산업 분야에서 최대 경쟁력으로 인식되고 있고, 제대로 된 자료 수집과 분석이 이루어진다면 재해, 의료 등의 서비스에서 안전과 질 높은 삶을 영위하도록 도와줄 수 있다.
기존에 사용하던 데이터는 미리 정의된 기준에 따라 수집, 관리되었기 때문에 정보 가치가 제한적이었다. 빅데이터는 무제한으로 수집할 수 있어 자료의 양과 복잡성은 매우 높지만 필요에 의해 수집된 데이터이기 때문에 기존 데이터보다 정보의 질은 높다. 이렇게 수집된 데이터를 목적에 따라 분석하여 정보를 정리하면 정보의 질은 높고 복잡성은 낮은 정제된 빅데이터가 된다(그림1).

< 그림 1> 데이터의 복잡성과 질의 관계

데이터를 수집해서 바로 활용할 수는 없다. 다양한 매체를 통해 데이터를 수집하고, 불필요한 데이터를 걸러내면서 적절한 기준에 맞춰 정제를 한다. 그리고, 데이터를 분석하면서 의미 있는 지식으로 정보화 또는 시각화 한다(그림2).

<그림2> 빅데이터의 활용 단계

헬스케어 서비스에서 목표 달성을 위해서는 어떠한 전략으로 서비스를 구성해야 하는지 빅데이터 플랫폼을 통해 얻고 있다(그림3). 아래 그림은 가독성을 위해 큰 그림으로 표시되었지만 실제 서비스를 위해서는 데이터의 수집, 정제, 분석 방법과 지식화된 데이터를 어떻게 시각화할 것인지에 대한 방법 등을 세부적으로 더 정의되어야 한다.

<그림3> 헬스케어 빅데이터 플랫폼의 예시
출처: 한국보건산업진흥원



강의영상: '자동차 스마트팩토리 S/W'의 개발/품질 체계 확립 및 내재화로 Global 품질 경쟁력 확보


22nd SW Quality Insight 컨퍼런스
트랙2-3. 김재은 대표(큐엔티) 강의영상 

주제 : '자동차 스마트팩토리 S/W'의 개발/품질 체계 확립 및 
내재화로 Global 품질 경쟁력 확보



IoT SDK와 Node.JS

IoTDevice SDK들 정리가 안되는 상황



IoTSDK 언어의다양성




왜 Node.JS가 Embedded에서도 뜨는가?



Node.js Event Loop




2017년 1월 9일 월요일

마이크로소프트의 홀로렌즈

매직리프의 MR 기술은 매직 리프 회사만 개발하고 있는 것이 아니다. 마이크로소프트가 2015년에 발표하고 현재는 개발자 버전을 출시하고 있는 '홀로렌즈'도 MR을 구현한다. 그러나 마이크로소프트의 홀로렌즈는 매직 리프와는 좀 다른데 안경 모양의 반투명 디스플레이에서 CG를 만들어 내고 안경 위쪽 부분에 달린 센서가 착용자의 손동작을 인식해 홀로그램이 반응하는 방식이다.
홀로렌즈는 두개의 Light engine을 가지는데 초당 수백만번의 빛조각을 방출하여 이미지를 만들고 투명 디스플레이에 반사되어 눈에 도착한다. 그림7은 한쪽눈에 가상의 이미지를 보여주는 것으로 수정체에 도착하는 빛의 방향이 광범위하게 형성된다. 실제 사물과 같이 거리에 따른 초점 문제를 해결할 수 있다.

<그림7> 마이크로소프트의 홀로렌즈
출처: https://www.reddit.com