2017년 2월 1일 수요일

오픈소스를 적용하여 개발하는 소프트웨어의 특징 정리


오픈소스를 사용하기 위해 기존 개발 방법을 크게 바꿀 필요는 없다. 새로 개발해야 하는 부분을 오픈소스로 대체하는 경우가 많기 때문에 개발 프로세스나 방법론 자체에 영향 받는 부분은 생각보다 적기 때문이다. 하지만, 오픈소스는 프로젝트 내부에서 개발되는 것이 아니기 때문에 대내외적으로 고민해야 하는 부분이 있을 것으로 보인다. 이번 회에서는 프로젝트 밖의 오픈소스를 프로젝트 내에 적용하기 위해 알아둬야 하는 사항에 대해 오픈소스 커뮤니티에서 활동 중인 심서연 프로와 ㈜웹케시의 박해윤 박사를 만나 이야기를 들어본다.

Q: 안녕하세요. 오픈소스를 소프트웨어공학적으로 어떻게 적용하는 것이 좋은지에 대해 이야기를 들어보고자 박해윤 박사를 함께 모셨습니다. 먼저 오픈소스에 소프트웨어공학이 왜 필요한지 말씀해 주시죠.

오픈소스는 미리 만들어져 있는 소프트웨어를 만들고자 하는 소프트웨어에 완제품이나 반제품으로 적용하는 것이 일반적입니다. 일종의 재사용 소프트웨어라고 할 수 있기 때문에 어떻게 적용할 것인지에 대해 소프트웨어공학적인 접근이 반드시 필요합니다.
SI가 주류를 이루던 이전의 소프트웨어 개발은 체계적이고 전문적인 개발 형태가 많았습니다. 그래서 하나가 완성되면 그 다음 순서로 넘어가고 그 다음 것이 완성되면 또 그 다음이 수행되는 것이죠. 그런데, 오픈소스를 활용하게 되면 모든 것이 협력에 의해 움직입니다. 프로젝트 외부의 오픈소스와 내부에서 내가 만든 소프트웨어를 적절히 섞어가며 개발을 하게 됩니다(그림1).

<그림1> 독점 소프트웨어와 오픈소스 개발 방법론의 비교
출처: 오픈소스컨설팅

그림1을 보면, 독자적인 소프트웨어 개발은 소프트웨어공학에는 가장 잘 어울리는 모델이지만 최근의 트렌드와는 다소 동떨어진 것으로 보일 수 있습니다. 외적인 요소는 배제되고 철저히 내부적 요소로만 개발이 되기 때문이지요. 요구사항에 가장 적합할 수는 있지만 개발 시간도 오래 걸리고 안정화 되는데도 매우 오래 걸리는 단점이 있습니다. 반면에 우측의 오픈소스 모델은 프로젝트 내외부에서 필요한 부분을 협력하면서 개발하기 때문에 개발이나 안정화 시간이 짧습니다. 거기에서 비용절감이나 최적화된 리소스 활용, 효율성 향상 등이 기대되는 것이지요(그림2).

<그림2> 오픈소스를 도입한 이유
출처: IDC, 디지털타임즈


로봇산업에 소프트웨어가 미치는 영향

로봇(Robot)의 개요
로봇은 인간을 모방하여 외부 환경을 인식(Sense)하고 상황을 판단(Think)한 후 자욜적으로 동작(Act)하는 기계를 말하는데 인간의 오감과 두뇌, 손과 팔, 표현 등을 기계가 하게 된다. 로봇은 인간을 대신해 단순 반복되는 작업을 담당하는 것으로 시작되었고 제조업에서 많이 사용되다가 최근에는 서비스용으로 많이 활용되고 있다(그림1).

<그림1> 로봇의 종류
출처: 소프트웨어정책연구소

로봇을 사용하는 장점을 살펴보면, 생산성 향상을 통한 효율성과 경쟁력 강화, 위험도가 높은 3D 작업을 대체, 고령화와 저출산에 따른 안전과 건강을 위한 수요 대응으로 볼 수 있다. 또한 사회적 기대에 대응하는 제조 경쟁력 강화, 국방력 증대, 사회복지 지원 등을 통해 범국가적인 문제 해결에도 기여하고 있다.
앞에서, 초기 로봇은 인식(Sense), 판단(Think), 동작(Act)한다고 정의하였는데 최근의 로봇은 인식(Perception), 판단(Cognition), 행동(Mobility)로 정의하고 있다. 초기 로봇은 대체로 미리 입력된 값들을 바탕으로 움직이게 되는데 단순 반복 작업이나 노동력을 대체하는데 무리가 없었다. 하지만 최근의 로봇은 지능적으로 판단하여 응용 작업이나 학습을 통한 빠른 인지 능력을 제공하고 있다(그림2).

<그림2> 로봇의 진화
출처: 한국로봇산업진흥원

더보기

자동차 스마트팩토리 S/W 개발과 Global 품질 경쟁력 확보




  • SW공학기술 소개

     Global Standards 기반의 입증된 SW 공학기술 적용으로 최적의 사업 성과 달성



  • SW공학기술 적용현황





2017년 1월 31일 화요일

나이키의 모바일 헬스케어

출처: 킬크로그 - 급성장하고 있는 스마트 모바일 헬스케어 시장과 시사점

나이키는 스포츠 브랜드지만 오래 전부터 모바일 헬스케어 시장을 Nike+라는 브랜드를 통해 움직이고 있다. 나이키는 스마트폰이 확산되기 전인 2006년 Nike+iPod으로 모바일 헬스케어를 시작했다. 운동화 깔창에 트랜스미터 장치를 넣고 iPod에서 데이터를 수집하여 활동량을 측정했다. 이후 손목 밴드용으로 SportBand라는 제품을 내놓았는데 자체적인 동작이 가능한 독립적 헬스케어 디바이스다. 센서를 내장하여 걷거나 뛰는 동안의 속도, 거리, 시간, 칼로리 소모량, 심박수 측정 등을 측정하여 디바이스에서 직접 보여주거나 PC와 연결하여 관리된다.
해당 제품들은 사용자에게서 발생하는 헬스케어 데이터를 처음으로 수집하여 저장하고 저장된 데이터를 관리하는 모바일 헬스케어의 전형적인 모델로 볼 수 있다. 디바이스나 PC에 저장한 데이터를 시각화하여 효율적으로 보여주는 소프트웨어만 별도로 장착되었다면 최근의 헬스케어 서비스로 볼 수 있을 정도의 수준을 보여주고 있다.
이러한 아쉬움을 보완하기 위해 GPS 기능을 내장한 디바이스를 개발하였고 사용자가 걷거나 뛴 기록을 Nikeplus.com에서 체계적으로 저장하여 관리해 주었다. 스마트폰이 일반화되면서 Nike+ 앱(App; Application)도 무료로 공개 전환되었고 스마트폰에 포함되어 있는 GPS, 가속계 등을 통해 기존의 Nike+ 디바이스를 대체하였다.

<그림6> Nike+ 디바이스
출처: 나이키

모바일 헬스케어 시장에서 나이키는 가장 모범 사례로 꼽힌다. Nike+iPod 등의 헬스케어 디바이스와 서비스는 모바일 헬스케어 디바이스와 서비스의 기준이 되었다. 활동 측정을 위한 기능 장착과 iPod과 같은 타 디바이스와 연동이 가능하게 하였고 헬스케어 데이터를 활용한 시각화 기법 활용으로 사용자의 활용성을 높였다.
나이키가 헬스케어 서비스를 선도한다고 말할 수 있는 이유는 헬스케어 서비스를 개발하기 위해 데이터, 디바이스, 타 디바이스나 서비스와의 연계를 완벽히 구현하였다는 점이고, 향후 개방적이 SDK 제공을 통해 다양한 헬스케어 기업과 서비스를 개발할 것으로 예상된다.


의료용 디지털 X-ray 디텍터 SW 표준 지침 구축 및 역공학을 통한 품질 향상 사례 - 아키텍처 복원



  • ModelMaker Tool을 사용하여 Econsole1 소스코드의 아키텍처 복원





  •  IBM Rational Rhapsody Developer For C++를 사용하여 EVS3643 임베디드 소스코드의 아키텍처를 복원





  • 정성적 및 정량적 측면에서 품질 비용 절감, 품질 향상 효과, 고용 창출, 매출 증대 효과 발생함





의료용 디지털 X-ray 디텍터 SW 표준 지침 구축 및 역공학을 통한 품질 향상 사례 - 사업 성과



  • 정성적 및 정량적 측면에서 품질 비용 절감, 품질 향상 효과, 고용 창출, 매출 증대 효과 발생함





  • 2016 SW 기인성 국내/외 매출 기여액 120억 이상




  • 핵심 재사용 SW 모듈을 구축하여 다양핚 X-Ray 디텍터 시장에서 빠른 개발 의사결정 및 신규 시장에 고품질의 SW를 보다 싞속하게 개발/공급핛 수 있는 경쟁력 확보






2017년 1월 26일 목요일

핀테크 개발 프레임워크 사례 연구


금융만을 위한 스프레임워크(Jexframework) 
젝스프레임워크는 자동 소스생성개발에 필요한 표준화된 재사용 등과 같이 개발 프레임워크의 특징을 가지고 있고 핀테크 서비스를 위한 높은 확장성을 고려하여 구성하였기 때문에 연구 사례로 선정하였다(그림3).

<그림 3젝스프레임워크의 구성
 
출처 ㈜웹케시

젝스프레임워크는 기존 금융 서비스 연동하는 부분(Legacy 연동), 보안 관련 부분(Secure Center), 그리고 실제 서비스가 이루어지는부분 (Service Management)으로 나뉘어져 있고개발팀을 위해 개발 툴과 관리 툴을 제공하고 있다(그림4).
금융 관련 개발 프레임워크의 실제 구동 부분은 그림 4 같이  부분으로 나뉘어져 있는 것이 일반적이다핀테크와 같이 비즈니스관련 서비스가 추가될 경우 서비스 관리(Service Management) 기능을 추가하여 활용할  있다.
금융 프레임워크 구성은 다양한 디바이스와 채널에 따라 보안체계가 별도로 구축되어야 하고 데이터베이스와의 연동에 따른 보안도 등급에 따라 매우 구체적으로 정의되어야 하기때문에 필요하다면 검증된 상용 소프트웨어를 적용하는 것도 좋은 방안이   있다.

<그림 4젝스프레임워크의 역할별 구분
 
출처 ㈜웹케시

더보기