2016년 9월 7일 수요일

관련지침개발 - 모바일 SW개발연구

모바일 SW개발연구는 기존 정보시스템에 모바일 환경을 도입하여 Web과 App으로 모바일 정보시스템을 구축하고자 하는 기업 및 개발자를 위해 신규 기술의 도입과 숙련에 필요한 가이드를 제공하여 비용을 절감시키고 최초 개발기간을 단축시키기 위해 제공되는 연구입니다. 본 연구는 전문인력이 없는 중소업체와 기술영역 확장이 필요한 개발자 신규 창업 희망자 및 학생들에게 가이드가 될 예정입니다.
더보기         

2016년 9월 6일 화요일

디바이스 메시 분야와 소프트웨어 동향 분석

ICT 기술의 발달로 빠르게 변화하는 시장에서 밀리지 않으려면 주목 받는 기술에 대한 동향을 파악하고 대응하는 것이 중요하다. 글로벌 ICT 분석 기업인 가트너(Gartner Inc.)가 매년 발표하는 “주목해야 할 IT 기술 열 가지(Top 10 Stragegic Technology Trends)” 중 2016년에 디바이스 메시(Device Mesh)가 선정되었다(그림1). 가트너에서 선정한 이유에 대해 살펴보면, 디바이스 메시는 사람들이나 소셜 커뮤니티(Social Community), 정부와 기업들에서 필요로 하는 애플리케이션과 정보, 상호 작용(Interaction)을 하는 방법을 확장한다고 말하고 있다. 사용자가 사용하는 디바이스의 확대로 인해 애플리케이션, 정보, 상호 작용의 활동 영역이 더 늘어난다는 말이다.

<그림1> 가트너의 2016년 주목해야 할 IT 기술 열가지
출처: 가트너(Gartner Inc.)

디바이스 메시에는 모바일 디바이스(Mobile Device), 웨어러블(Wearable), 전자기기(Electronic Device) 등이 포함되고 IoT(Internet of Things)로 인해 더 확대되는 추세다. 차세대 모바일 세계는 전통적인 모바일 기기만 사용하는 것에서 모바일 사용자들에게 다양한 디바이스들이 연결되는 형태로 변화될 것으로 예측되고 있고, 현재 상당 부분 반영되고 있다. 반면에, 이러한 디바이스들은 다양한 네트워크를 통해 서비스에 접속되기 때문에 디바이스에 따라 연결 문제가 종종 발생했다. 디바이스 메시가 발전되면서 더 원활한 서비스 연결과 다양한 상호 작용이 이루어지기를 기대하고 있다.


디바이스 메시의 산업 현황

일반적으로, 스마트폰이나 태블릿, 웨어러블, 노트북 등을 디바이스라고 말한다. 메시는 사전적으로 그물망을 말하는데, 디바이스 메시는 여러 개의 디바이스가 연결되어 있는 상태를 말한다. 전통적인 방식으로 디바이스들끼리 단순히 연결하는 것이 아니라 사용자가 여러 개의 디바이스를 마치 하나의 디바이스를 사용하는 것처럼 느끼도록 해준다. 디바이스 메시는 전통적인 데스크탑 중심 컴퓨팅은 물론이고 모바일 컴퓨팅, IoT, 클라우드 컴퓨팅을 엔드 포인트(End Point)와 서비스를 공통된 프레임워크로 연결된다(그림2).

<그림2> 디바이스 메시의 역할
출처: Gartner: Top 10 Strategic Technology Trends 2016

     더보기    

페어 프로그래밍의 효과와 한계 극복 방안

애자일이 도입되면서 페어 프로그래밍의 장점이 부각되기 시작했다. 한 명이 아닌 두 명이 함께 코딩을 하기 때문에 코딩의 질이 엄청 높아질 것이다라는 기대와 함께 프로그래머 간의 이견과 두 배 이상 발생하는 비용이 문제라는 우려가 동시에 존재한다. 이번 회에서는 페어 프로그래밍을 효과적으로 활용하는 방법과 한계를 어떻게 극복해야 하는지에 대해 웹케시 피트의 박해윤 박사를 만나 자세한 사항을 들어본다.


Q: 본격적인 이야기 전에 페어 프로그래밍을 해야 하는 이유에 대해 설명을 부탁 드립니다.
페어 프로그래밍은 말 그대로 두 사람이 하나의 컴퓨터로 코딩을 합니다. 물론, 키보드와 모니터도 하나 밖에 없습니다. 키보드를 잡은 사람을 드라이버, 옆에서 보조하는 사람을 네비게이터라고 부릅니다. 랠리 경주의 선수에서 따온 말로, 서로 협업을 반드시 해야 하는 프로그래밍 기법입니다(그림1). 두 사람의 역할은 표1과 같습니다.

<그림1> 페어 프로그래밍

페어 프로그래밍은 많은 장점이 있다고 알려져 있지만 개발자 입장에서는 매우 귀찮은 것이 사실입니다. 대부분의 개발자들이 혼자서 편하게 코딩 하는 것을 선호하기 때문이지요. 그래서, 페어 프로그래밍을 적용할 때는 개발자와 많은 대화가 필요합니다. 이론상으로, 페어 프로그래밍은 개발할 때 집중력이 향상되고 결함을 감소시킨다고 합니다. 두 명이 동시에 하나만 바라보면서 개발하면 아무래도 집중력이 높아지고 그만큼 결함도 잘 찾아내겠지요. 여기에, 다른 조의 개발자들과 코드 리뷰를 하게 되면 소스 코드의 품질은 그만큼 더 높아집니다. 또 하나의 장점은 개발자의 비즈니스 이해도가 현저히 높아진다고 알려져 있습니다. 두 사람이 상의하면서 진행하기 때문에 비즈니스를 분석하는 것이 더 빨라지고, 혹시라도 한 사람이 퇴직을 하더라도 나머지 한 사람이 있기 때문에 비즈니스에 대한 공백은 없게 됩니다.


더보기    

솔루션 개발 사례 연구 - Microsoft

이번 회부터 4회에 걸쳐 글로벌 솔루션 개발 회사의 특징을 특집으로 살펴보기로 한다. 마이크로소프트(Microsoft)는 솔루션 개발의 세계적인 기업이다. 지금까지도 MS-DOS로 시작해서 윈도우(Windows)로 확대되어 온 운영체제는 ICT 관련 가장 오래된 사업 중의 하나다. 수십 년 동안 수 많은 글로벌 회사의 도전을 견고하게 지킬 수 있었던 건 마이크로소프트 자체적인 솔루션 개발 체계와 수시로 변하는 ICT 산업과 개발 트렌드를 지지하고 선도했기 때문이다. 이번 회에서는 마이크로소프트의 솔루션 개발에 대한 변화를 몇 가지 분야로 살펴보도록 한다. 획기적인 기술과 기획력으로도 어려움을 겪는 다른 솔루션 개발 회사와 비교해보며 솔루션 개발에 필요한 인사이트를 찾기를 기대한다.

마이크로소프트의 사업 분야 변화

마이크로소프트는 사업규모, 성장성, 수익성, 시장지위 등 어느 측면에서도 남부러울 것 없는 초우량 기업이다. 85년 창업 이래 2015년도 매출이 270억 달러에 이르는 고도 성장을 지속하고 있다. 마이크로소프트는 2001년에 차세대 마이크로소프트를 준비한다. 소프트웨어에서 서비스 사업으로, PC에서 포스트 PC 사업으로 변화를 예고한다. 당시에는 PC 기반의 소프트웨어 위주였으나 웹 서비스가 주목 받으면서 닷넷 프레임워크를 공개하고, 테블릿 PC에 대한 대응 전략도 가져간다. 기존의 PC에 테블릿 PC, 게임기 등의 멀티 플랫폼을 준비하면서 새로운 트렌드에 대한 준비를 하면서 보유한 솔루션들을 멀티 플랫폼에서 구동되도록 준비도 병행하게 된다. 2013년에는 서비스에서 하드웨어 위주의 디바이스 사업으로 변화를 모색한다. 한때, 노키아를 인수하며 디바이스 사업 범위를 확대시켜 나갔고 멀티 플랫폼에 맞춰 솔루션들을 준비했다(그림1).


<그림1> 2013년의 마이크로소프트의 사업 전략 방향

더보기       

2016년 9월 5일 월요일

마이크로소프트의 개발 환경 개방



마이크로소프트는 닷넷 프레임워크, 비주얼 스튜디오와 같은 언어, 툴 등을 다른 플랫폼에서도 사용할 수 있도록 많은 개방을 하고 있다. 개발자가 윈도우를 무조건 쓸 수 밖에 없게 만드는 비주얼 스튜디오를 OSX와 우분투용으로 공개해버리기도 하고, 오피스의 API도 앞 절에서 살펴본 것처럼 공개한 상태다. 오피스에 어떤 프로그램이든 연결해서 솔루션으로 만들 수 있을 정도로 개방된 환경이다. 또한, 윈도우 플랫폼에서는 웹앱, win32, .Net 뿐만 아니라 안드로이(Android) 자바(Java)/C++, iOS Object C로 만든 앱이 손쉽게 포팅 된다고 알리고 있다. 클라우드에는 분석을 위한 DW를 넣었고, 리눅스 도커가 닷넷을 이용해 윈도우에서 구동이 가능하게 되었다. 또한, 윈도우나 오피스는 패키지 솔루션이 아닌 플랫폼으로 전환하고 있는 상황이다.

마이크로소프트가 이렇게 개방에 적극적인 이유는 패키지 솔루션에서 프레임워크와 디바이스 중심의 환경이 도래했기 때문이다. 개방형 솔루션을 통해 더 많은 플랫폼과 디바이스를 지원함으로써 수많은 사용자가 확보되고 그로 인한 새로운 서비스 창출을 기대하고 있다. 이를 위해, 마이크로소프트웨어는 윈도우와 애저를 주력으로 제공하고 있다. 모든 디바이스에서 반드시 필요한 운영체제인 윈도우와 어떠한 플랫폼에서도 서비스가 가능한 클라우드 서비스인 애저를 통해 윈도우 환경에 익숙하지만 이기종 개발 환경을 사용하는 개발자까지 확보하려 하고 있다(그림9).


<그림9> 뿌리부터 바뀌는 윈도우 “코어”

출처: 한국마이크로소프트 - 돌아보는 빌드2015



마이크로소프트의 개발팀 구성



개발팀을 구성하는 방법은 여러 가지가 있다(참고사이트). 그 중에서 민주적 팀과 칩 프로그래머 팀을 결합한 방법을 취한다. 오피스와 같은 대규모 프로젝트에서는 기술 또는 기능에 따라 팀을 세분화 한다(그림7). 오피스의 경우, 워드, 엑셀, 파워포인트 등 대형의 세부 솔루션들이 존재한다. 각 세부 솔루션 별로 리더를 선정하고 팀을 구별하여 개발을 수행한다.


<그림7> 팀 리더의 계층적 팀 구성

<그림 7>은 팀 리더로 구성되었기 때문에 기술에 관한 팀 구성으로 하나의 프로젝트는 3개의 세부 팀으로 구성되고, 합의와 의사결정은
<그림 8>과 같이 이루어진다. 각 레벨의 팀원들은 동일한 세부 팀에서는 상호 협의가 가능하지만 다른 세부 팀원과의 커뮤니케이션은 반드시 팀 리더나 프로젝트 리더를 통하게 된다.


마이크로소프트의 사업 변화에 따른 솔루션 구성 변화




마이크로소프트의 주 사업 분야는 솔루션 관련 소프트웨어로, 윈도우(Windows)를 비롯해 오피스(Office), 익스플로러(Internet Explorer) 등이 중심에 있다. 해당 솔루션들은 처음에는 단일 PC 환경에 설치되어 구동되던 것에서 다양한 플랫폼에서 구동될 수 있는 형태로 변화되었다(그림3). 그림3의 우측을 살펴보면, 사용자가 다양한 서비스가 원활히 구동되고 추가할 수 있도록 세부 솔루션이 구분되어 있다. 

<그림3> 서비스 중심의 솔루션 구성 환경

출처: Metalogis - 5 Pillars to Optimize Office 365 Readiness


그림3의 우측에는 Azure 솔루션과 O365 솔루션이 구분되어 하이브리드(Hybrid) 형태로 제공되고 있다. 그림2에서 보는 것처럼 소프트웨어 중심일 때는 해당 솔루션을 별도로 패킹되어 제공되었지만, 서비스 중심으로 변화되고 나서는 기본적으로 설치되는 아키텍처와 프레임워크는 같고 세부 솔루션을 선택하는 것에 따라 서비스가 달라지게 된다. 그림2의 디바이스 중심으로 변화하면서, 마이크로소프트의 솔루션 구성은 또 한번의 변화가 생겨나는데 “확장”과 “연결”로 정리된다(그림4). 확장은 마이크로소프트 솔루션에 새로운 기능의 앱을 만들어 마이크로소프트에서 제공하는 “Add-in”을 통해 쉽게 추가가 가능하다. 연결은 서비스하려는 웹 애플리케이션의 인프라 자체를 “SharedPoint Add-in”을 통해 연결이 가능하다.