2015년 9월 26일 토요일

데이터에 생명을 불어넣는 10가지 데이터 시각화 툴

단순한 차트에서부터 복잡한 맵과 정보그래픽(infographic)에 이르기까지   데이터를 시각화를 위해서는 유용한 툴들에 대한 이해가 필요합니다. 여기 소개된 대부분의 툴들은 무료로 이용할 수 있으며, 이미 많은 사람들이 사용하고 있음. 정보의 시각화를 통한 이해도, 유용성 제고를 위해 개인정보에서부터 기업과 정부의 빅데이터에 이르기까지 현재 널리 쓰이고 있는 10가지 데이터 시각화 툴을 소개합니다.

온라인 시각화(Online visualisations)
  • 구글 차트 API(Google Chart API)
  • 라파엘(Raphaël)
  •  D3

쌍방향 GUI 컨트롤
  • 크로스필터(Crossfilter)

맵핑(Mapping)
  • 카르토그래프(Kartograph)
  • 카르토 DB(Carto DB)
프로세싱(Processing)
  • R
  • 웨카(Weka)
  • 게피(Gephi)

SW 프로젝트 위기발생에 따른 기회비용 최소화 관리방안

프로젝트 개발 시 위기관리는 매우 중요한 요소임에 따라, 위기상황발생 시 기회비용을 최소화하는 측면에서 위기사항을 극복할 수 있을 것이라는 희망 하에 적극적으로 대응할 것인가, 그저 그 위기사항이 지나가기를 기다릴 것인지, 아니면 최선의 결과를 생각하며 기회비용을 고려하여 비용대비 효과를 최대화할 수 있는 방안은 무엇인지를 파악하고 행동할 것인지에 대한 대략적인 기준을 제시합니다.

  • 기회비용이란?
  • 모든 것을 중단해야할 순간이 찾아옴
  • 완료되지 않은 일을 살펴봄
  • 비용 절감을 위해 조정하기

공공분야에서의 빅데이터 활용을 위한 지식자산(Knowledge Base) 구축

데이터는 데이터 그 자체로서가 아니라 데이터로부터 의미 있는 지식을 발견하고 이를 활용할 수 있을 때 그 가치가 입증되며, 그 가치는 개인보다는 다수, 그리고 공공의 이익을 도모할 수 있을 때 빛을 발합니다. 그렇기 때문에 지금이 공공의 자원으로서의 빅데이터의 역할을 다시 한번 주목하고, 그 활용방안에 대해 고민할 시기입니다.

2015년 9월 25일 금요일

자바스크립트(Javascript) UI Part 2 - 재사용 패턴

코드 재사용
코드 재사용은 대부분의 언어에서 필요한 기능입니다 . 비슷한 요구사항에 맞춰서 동일한 기능을 반복적으로 개발하는 것은 중복코드를 증가시켜 결국 낭비로 이어집니다 . UI 개발과정에서도 이런 문제는 존재하며 다른 언어와 마찬가지로 그 해법도 크게 다르지 않습니다 .
UI 개발의 경우는 재사용을 위해서 자바스크립트 코드를 재사용할 수 있고 , CSS Framework(less 나 Sass 등 ) 을 통한 CSS 코드를 재사용하는 방법들도 존재합니다 .
자바스크립트의 경우 객체 지향적으로 모듈화를 통해 개발 할 수 있음에도 불구하고 , Java 와 같이 ‘extend’ 와 같은 명시적인 상속을 위한 기능이 존재하지 않습니다 . 다행히 이런 부분이 최근 ECMAScript 6 에 반영되고 있는 중입니다 .
물론 지금 상속을 구현하기 위해서 아무것도 할 수 없는 것은 아닙니다 . 이미 대부분의 자바스크립트 라이브러리와 이를 기반으로 제작된 많은 UI 콤포넌트들은 ‘prototype’ 이라는 속성을 통해 상속을 구현하고 있으며 , 결과적으로 이것을 활용해 코드 재사용이라는 목적을 달성할 수 있습니다 .
본 문서에서는 자바스크립트의 대표적인 재사용패턴을 설명하며 , 그에 앞서 prototype 이 문서에의 prototype 은 prototype 이라는 자바스크립트 코어에 해당하는 핵심 개념을 설명합니다 .
  • 왜 Prototype 인가 ?
  • Prototype 을 통한 상속
  • Object.create() 를 활용한 Prototypal inheritance
데이터는 데이터 그 자체로서가 아니라 데이터로부터 의미 있는 지식을 발견하고 이를 활용할 수 있을 때 그 가치가 입증되며, 그 가치는 개인보다는 다수, 그리고 공공의 이익을 도모할 수 있을 때 빛을 발합니다. 그렇기 때문에 지금이 공공의 자원으로서의 빅데이터의 역할을 다시 한번 주목하고, 그 활용방안에 대해 고민할 시기입니다.

  • 공공분야에서의 빅데이터 중요성
  • 공공 빅데이터 활용을 위한 지식자산 구축
  • 공공 빅데이터를 활용한 대국민 서비스 사례

iOS 애플리케이션의 GUI 테스트 자동화 방법

2007 년 아이폰 출시 이후 , 안드로이드 , 윈도우폰 7, 바다 등 다양한 플랫폼에서 동작하는 스마트폰이 등장 하였고 , 애플 앱 스토어 , 안드로이드 마켓 등이 등장 하면서 많은 개발자들이 스마트폰 애플리케이션 개발에 뛰어들고 있습니다 . 이러한 현상은 각각의 플랫폼 제공 회사에서 애플리케이션 개발을 위한 강력한 소프트웨어 개발 킷 (SDK) 를 제공하여 개발자들이 자유롭게 애플리케이션을 개발할 수 있도록 하고 , 사용자가 직접 애플리케이션을 설치 할 수 있는 환경을 제공하고 있기 때문입니다 . 스마트폰은 터치스크린을 내장하고 있으며 , 스마트폰 애플리케이션은 사용자의 터치에 의해 동작한다 . 따라서 스마트폰 애플리케이션 개발 프레임워크 ( 라이브러리 ) 에는 시각적으로 쉽게 이해하고 사용할 수 있는 그래픽 유저 인터페이스 (GUI) 를 사용자 인터페이스로 사용하며 , 터치에 의해 동작 가능하도록 하는 기능들이 포함되어 있습니다 . 즉 , 스마트폰 애플리케이션에서 GUI 는 높은 비중을 차지하고 있으며 , 스마트폰 애플리케이션의 품질을 확보하기 위해서는 GUI 테스트가 반드시 필요하다는 것을 알 수 있습니다
현재 iOS 애플리케이션 테스트 관련 연구는 거의 없으며 , 테스트를 위한 프레임워크 및 도구들만 제공되고 있습니다 . 그 예로 애플에서 제공하는 단위 테스트 프레임워크인 OCUnit 과 UI 테스트 도구인 UIAutomation 이 있습니다 . 하지만 이러한 프레임워크 및 도구를 이용하여 테스트를 수행하기 위해서는 테스트 케이스를 설계하고 테스트 코드를 작성해야 하며 , 이런 작업에 많은 시간과 노력을 필요로 합니다 . 그리고 테스트의 성공여부는 테스트 케이스 설계에 따라 결정 되며 , 이것은 테스트 케이스를 설계하는 테스터의 능력에 따라 좌우됩니다 . 따라서 테스트에 소모되는 비용을 줄이고 테스트 케이스의 품질을 확보하여 테스트를 성공적으로 수행하기 위해 테스트 케이스를 자동으로 생성하는 방법이 필요합니다 .
본 논문에서는 iOS 애플리케이션의 특징을 설명하고 테스트 대상을 파악합니다 . 그리고 GUI 구성 정보를 저장하는 파일에서 GUI 정보를 추출하여 iOS 애플리케이션 GUI 테스트를 위한 테스트 케이스 자동 생성 방법을 제안하고 이를 구현합니다 .
  • iOS 애플리케이션
  • iOS 애플리케이션 GUI 테스트 케이스

2015년 9월 24일 목요일

성공적인 요구사항 관리를 위한 SW개발팀 간 4가지 협업전략

요구사항이라는 것은 애자일이건 아니건 상관없이 모든 소프트웨어 팀이 직면하게 되는 이슈입니다. 요구사항의 세목을 만드는 것은 많은 시간을 요구하기 때문에, 부적절한 결과를 초래할 수 있습니다. 즉 적절한 시기에 “적절한” 요구사항을 얻기 어렵기 때문에, 각 팀은 요구사항 프로세스를 향상시키기 위한 방법을 발견하기 위해 노력해야 합니다.  

요구사항 관리는 프로젝트의 방향을 결정짓는 매우 중요한 프로세스이나 요구사항 수집을 위한 왕도가 없음에 따라 개발팀 간 이해공유, 우선순위설정, 표준문서화 등을 통해 충분한 협업을 수행하는 방안 등이 중요합니다.

Ⅰ. 이해공유(Shared understanding)
Ⅱ. 우선순위설정(Prioritizing)
Ⅲ. 테스트를 포함한 코딩(Driving coding with tests)
Ⅳ. 요구사항 표준문서화(Documenting requirements)