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 테스트 케이스