2015년 8월 20일 목요일

IoT로 살펴보는 소프트웨어 개발 트렌드의 변화

최근에 많은 관심을 받고 있는 IoT(Internet of Things)는 다양한 형태로 해석하고 적용하는 경우가 많지만, IoT의 핵심 내용은 네트워크에 접속한 사물이 스스로 데이터를 수집하고 전달한다는 것입니다. 
이러한 이유로 IoT는 원하는 정보를 언제 어디서나 간편하게 주고받는 환경을 제공합니다. 물론 어떤 종류의 데이터를 어떻게 전달할지는 설계자가 설계를 하게 됩니다. IMS리서치에 따르면 기업들이 사용하는 사물의 약 85% 정도가 네트워크에 연결되지 않은 상태라고 합니다. 아직도 이렇게 많은 사물들을 IoT의 세계로 끌어들이기 위해서는 다양한 사물들을 연결하고 분석한 후 원하는 데이터를 수집할 수 있는 체계적인 기술이 필요합니다. 이러한 기술들 중에 이번 회에서는 IoT 시장에서 추가적으로 필요로 하는 소프트웨어 기술에는 어떠한 것이 있는지 살펴보기로 합니다.

IoT Architecture
<그림1>의 좌측 그림과 같이 IoT의 시초는 각 산업 또는 서비스에서 일부 필요한 데이터만을 수집하여 전달하는 형태였습니다. 따라서 수집 되는 데이터도 매우 적은 양이었고 사용되는 소프트웨어도 단순한 형태가 많았습니다.

<그림1> IoT 모델의 변화














2015년 8월 19일 수요일

동영상 스트리밍 기술 동향(Video Streaming Technology Trends)

2014년 3분기까지 재생된 온라인 동영상 1,770억건을 분석한 결과, 온라인 동영상 소비의 29%는 모바일 기기에서 이뤄진 것으로 나타났습니다. 거의 3분의 1수준입니다. 스마트폰에서는 동영상 재생이 전년 대비 56% 증가했고, 태블릿에서는 27% 증가했습니다(자료: '디지털 비디오 벤치마크' 보고서, 어도비, 2015-01).

 모바일에서 동영상 소비는 광고와 직결됩니다. 미국 인터넷광고협회(IAB)가 지난달 23일 발표한 보고서에 따르면 미국의 지난해 모바일광고 매출은 전년보다 76% 성장한 125억달러(약 13조원)로 집계됐습니다. 


페이스북의 2014년 4분기 광고수익은 약 33억달러였고 이 중 모바일에서 수익은 73%에 달했습니다. 뉴스피드에 올라오는 동영상은 월 평균 1억개를 넘고 있으며 한국에서는 매월 1,000만명 이상이 모바일 페이스북에서 동영상을 시청하고 있습니다.

페이스북은 이미 2014 년 6 월 , 모바일 동영상 시청률을 높이기 위해 
동영상 게시물이 우선순위를 갖도록 뉴스피드 알고리즘을 수정했다 .

 한편, 한국의 트위터 사용자 74%가 트위터로 동영상을 시청한다고 합니다. 특히 이 중 90%는 모바일 기기로 시청한 것으로 조사됐습니다. 그리고, 감상한 동영상 대부분은 영화, 음악, TV, 스포츠 등 엔터테인먼트 트윗에 대한 것이었습니다. 트위터는 최근에 동영상 스트리밍 기업 페리스코프(Periscope)를 1억달러에 인수하면서 본격적인 모바일 동영상 시장공략에 나섰습니다.

최근의 동영상 스트리밍 요구조건: 
  •  IP상에서 영상이 스트리밍되어야 한다 .
  • 영상은 실시간으로 보거나 주문해서 이용할 수 있어야 한다 .
  • 주문형 비디오 (Videoondemand)는 검색 , 플레이 , 멈춤이 가능해야 한다 .
  • 선택적이지만 , 실시간 영상도 짧은 시간 정도는 되감기 , 멈춤이 가능하고 영상 레코딩이 될 수 있어야 한다 .

글로벌 기업의 QA사례 (Google,Facebook, Atlassian)

우리 현실에 맞는 QA와 테스팅은 어떤 모습이어야할까? 이런 고민은 QA/테스팅 부서가 있는 회사면 꼭 한번은 하게되는 질문입니다. 이 고민에 대한 실마리를 다른 회사는 어떻게 QA를 하고 있는지를 살펴보면서, 스스로에게 질문을 하는 것에서 찾을 수도 있습니다. 여기에서는 글로벌 기업인 Google, Facebook, Atlassian의 사례를 찾아 간략하게 정리해봅니다.

1. Google

Google의 Tester
구글의 고참 디렉터이며, 테스팅 계열의 최상급자인 Patric Copeland는 책의 서문에서 이렇게 말하고 있습니다.

"구글은 전산학과 코딩 기술을 존중한다. 
테스터가 그 클럽에 동참하려면 훌륭한 전산 지식과 절묘한 코딩 기술을 갖추어야 한다."

우리나라에서 테스터로 업무를 시작한 사람들에게  Patric이 말한  훌륭한 전산 지식과 절묘한 코딩지식 을 갖추라는 조언은 이해는 가지만, 이를 달성해내기는 쉽지 않습니다. 대부분의 테스팅 업무란, 사용자에게 최상의 경험을 주기위해 앞서 경험을 해주는 대리자의 입장이 많았기 때문인 것 같습니다. 단지 경험을 미리 해주는 테스터에게는 엄청난 전산 지식도, 절묘한 코딩 스킬이 필요한 것은 아니기 때문인가? 라는 생각이 듭니다.
중간 생략....


2. Facebook


Facebook의 QA에 대한 내용은 facebook을 재직했던 엔지니어가 Quora에 등록한 답변을 토대로 정리했습니다. 2~3년 전의 내용이며, 현재 Facebook의 QA 상황과 차이가 있을 수도 있지만 충분히 참고할 만 한 것 같습니다.

Facebook의 QA

 별도로 독립된 QA Team이 없다. ‘Test engineering team’이 있었으나 이 팀은 Test infrastructure를 구축하고 유지보수 하는 업무입니다. 앞서 살펴본 회사들과 마찬가지로  개발자들이 직접 테스트를 작성하고 실행 및 유지보수 를 합니다. 개인 또는 팀이 하는 테스트보다 도그푸딩(dog-fooding)을 합니다. 출시 전에 일주일 정도는 임직원들이 미리 변경을 경험하고 버그를 올릴 수 있으며, 수동 테스트 보다 자동화 테스트를 합니다. 또한 릴리즈 24시간 전에 beta facebook에 미리 반영하여, 이에 대한 버그도 리포트 받고 있으며, 페이스북 베타테스터 프로그램도 운영하고 있습니다. 실제로, Facebook 채용 사이트를 살펴봐도 Google과는 달리 Test 및 QA 엔지니어가 별도로 나와있지 않은 것을 보면, 현재도 QA나 테스팅 엔지니어로 구분된 역할은 Facebook에 없는 것 같습니다.
중간생략...

3. Atlassian


Atlassian 블로그의 QA 시리즈 포스트를 요약하여 정리합니다. 

Atlassian의 QA
Atlassian의 테스팅 및 QA의 목표는 “높은 품질의 소프트웨어를 빠르게 배포하는 것”입니다. 인력구성은 다음과 같습니다. 
  • 개발 및 Team Lead (78)
  • 제품 관리자 (Product Manager) (10)
  • UX(UI) 디자이너 (6)
  • Tech writer(3)
  • QA 엔지니어 (6)


QA는 역할은 테스터가 아니며, 실제 수동테스트를 포함한 모든 테스트는 개발자가 수행합니다. Atlassian의 대표 제품인 JIRA에 대한 QA 프로세스는 아래와 같습니다.

중간생략...


2015년 8월 18일 화요일

애자일을 활용한 모바일 개발 프로젝트 개선방법

Ⅰ . 모바일 앱 시장의 성장과 현실

전 세계적으로 모바일 사용이 확산되면서 모바일 어플리케이션 ( 이하 앱 ) 시장의 규모도 급격하게 증가하고 있습니다 . 시장조사기관인 가트너에 따르면 모바일 앱 시장 규모가 지난해 52 억 달러에서 2014 년 580 억 달러로 10 배 이상 성장할 것으로 예상하고 있습니다 . 이는 애플 , 구글 , MS 와 같은 기존 모바일 플랫폼 사업자들의 오픈마켓뿐만 아니라 아마존과 페이스 같은 콘텐츠 및 서비스 기업들도 새로운 시장을 만들어나감에 따라 더욱 다양한 모바일 서비스가 가능해지고 이를 이용하는 사용자도 같이 확대되어 갈 것이기 때문입니다 .

모바일 앱 시장이 급격하게 성장하고 있지만 워낙 많은 앱들이 시장에서 치열하게 경쟁하다보니 사용자에게 주목 받기란 매우 어려운 일입니다 . 모바일 앱 마켓에서 상위에 링크된 경우 높은 인기를 누리지만 나머지는 거의 미미한 이용률을 보이고 있습니다 . 애플 앱스토어의 경우 , 상위 5 위에 등록된 앱은 절반 이상의 사용자가 이용하는 반면에 나머지는 2% 정도의 사용자만을 갖는다고 합니다 . 따라서 모바일 앱 시장은 소위 “ 부익부 빈익빈 ” 현상이 매우 극명한 곳이라고 할 수 있습니다 . 한국콘텐츠진흥원에서 발표한 “ 모바일 애플리케이션 비즈니스 현황과 전망 ”, 이라는 보고서에 따르면 , 국내에서 모바일 앱을 등록한 업체의 70% 정도가 20 명 이하의 중소기업이며 종업원 1 인당 연간 매출액은 1,200 만원에 (2011 년 기준 ) 불과하다고 합니다 . 특출난 1 인 개발자나 대규모 온라인 및 게임사를 제외하고는 생존하는 것조차 쉬운 일이 아닙니다 .

Ⅱ . 모바일 앱 개발의 특성과 이슈들

Ⅲ . 모바일 개발환경에 적합한 개발방법

자세히 보기 →

모바일앱 자동화 테스팅의 성공적 적용을 위한 8가지 문제점 극복방안과 자동화툴 소개

현재 애플 앱스토어에는 50만개 이상의 앱이 등록되어 있으며, 안드로이드 마켓에는 30만개의 앱이 등록되어 있습니다. RIM의 Playbook, MS Windows Phone, Window Mobile에 등록된 애플리케이션 숫자까지 합친다면 그 수는 엄청나며, 이에 모바일 애플리케이션의 자동화 테스팅은 필수적인 코스로 떠오르고 있습니다. 현 수준에서 모바일 앱 자동화 테스팅의 한계와 상용화 및 오픈 소스로 공개되어 주목받고 있는 자동화 테스팅 툴을 소개하려 합니다.

자세히 보기 →

소프트웨어 역공학의 성과와 도전

소프트웨어 생애주기 비용은 상당부분 유지보수와 지원업무 때문에 발생합니다 . 이들이 소프트웨어 전체 비용의 50% 이상을 차지한다는 것이 소프트웨어 산업의 전반적 인식입니다 .
소프트웨어를 수정을 하기 위해선 소프트웨어를 이해하여야 하며 소프트웨어에 대한 이해는 개발자가 분석 , 추측 , 가설의 공식화에 의해 업무를 성공적으로 달성할 수 있도록 소프트웨어 인공물 혹은 전체시스템에 대한 충분한 지식을 획득해야 하는 인간 집약적 프로세스입니다 .

대부분의 경우에 소프트웨어에 대한 이해는 가장 최신버전의 소프트웨어 문서 부족 때문에 도전을 받게 됩니다 . 종종 이는 개발이 진행되는 동안 자원부족 , 시간적 제약 혹은 제한된 역량으로 인해 어려움을 겪습니다 .
소프트웨어 역공학 (reverse engineering) 은 기존 소프트웨어 인공물로부터 그에 대한 정보와 지식을 도출하기 위한 방법과 도구를 포함하는 광범위한 용어로서 소프트웨어 공학 프로세스에 영향을 줍니다 .
이 article 에선 역공학 분야에서 광범위한 중요성을 찾아내고 해결되지 않은 문제점들을 강조하며 , 미래의 방향성을 제시할 것입니다 .

Ⅰ . 역공학의 개념
Ⅱ . 소프트웨어 분석
Ⅲ . 소프트웨어 뷰의 구축
Ⅳ . 미래 동향
Ⅴ . 결론

자세히 보기 →

4개 지역(대경권·동남권·충청권·호남권) SW품질역량센터와 SW공학센터 MOU 체결

열악한 지역 SW 기업의 ‘SW 개발품질관리 선진화와 역량강화 ’기틀 다진다 .

지역 SW 품질역량센터 인력의 전문성과 지역 SW 기업의 역량강화 지원 등을 통한 “SW 개발품질관리 선진화 ” 기틀 마련에 나섰습니다.

SW공학·품질전문기관인 SW공학센터(소장 이상은)  는 11일(화) 상암동 누리꿈스퀘어에서 4개 지역(대경권·동남권·충청권·호남권) SW품질역량센터와  지역SW기업의 ‘SW개발품질관리 선진화 및 역량강화’를 위한 협력관계 확대 및 공동사업 추진 등을 위한 업무협력 양해각서(MOU)를 체결  했다고 밝혔습니다.