2015년 9월 3일 목요일

모바일 html5를 통한 소프트웨어 개발 기술 변화

특별한 OS나 프로그램을 설치하지 않아도 브라우저만 있으면 동작하는 html 기반인 html5는 html에서 제공되는 기능에 다양한 그래픽과 멀티미디어 효과는 물론 액티브엑스(ActiveX)를 설치해야만 가능하던 기능까지 지원이 가능합니다. 이러한 이유로 html5를 활용한 웹 사이트와 어플리케이션들이 많이 만들어지고 있지만, html5의 파급 효과는 다른 곳에서 찾을 수 있습니다. 바로 모바일 플랫폼의 특성을 타지 않는다는 것입니다.

모바일 시장을 양분하고 있는 iOS와 안드로이드, 그리고 그 뒤를 쫓고 있는 MS는 상호 호환성이 제로이기 때문에 어플리케이션을 만들 때는 (PC 시장과 마찬가지로) 모바일 플랫폼을 선택해야 합니다. 하지만 (PC 시장과 마찬가지로) html을 활용하면 이러한 제약이 없어집니다. 브라우저를 통해 다양한 플랫폼에서 서비스를 제공할 수 있기 때문입니다. PC 시장에서 다양한 어플리케이션 개발 환경이 있었지만 웹 어플리케이션으로 통일되었던 것처럼 모바일 시장에서도 비슷한 과정을 따를 것으로 예상되고 있습니다. 이번 회에서는 PC 기반의 웹 환경에서 모바일 환경으로 변화하는 것에 따른 html5의 기술 구성과 모바일에서 높은 성능을 발휘하는 활용법에 대해 살펴보도록 합니다.

동적 임베디드 소프트웨어 테스트와 카 인포테인먼트 시스템 테스트 적용 성과

임베디드 소프트웨어는 ‘ 실시간 보증 , 자원 부족 , 런 - 타임 테스트 , 운용 환경 보존 ’ 과 같이 테스트 제약이 심한 환경에 배치되기 때문에 테스트가 쉽지 않습니다 . 본 논문에서는 운영체제가 프로세스 제어를 목적으로 관리하는 프로세스 제어 블록을 해킹함으로써 테스트 정보를 수집하는 동적 임베디드 소프트웨어 테스트 방안을 제안합니다 . 현재 ‘ 메모리 , 성능 , 프로세스 간 통신 ‘ 을 테스트하는 자동화 도구인 AMOS 를 개발하였고 , AMOS 는 자동차 산업의 카 인포테인먼트 시스템의 실차 테스트에 적용되어 품질 향상과 개발 비용 절감의 효과를 보이고 있습니다 .

소프트웨어 테스트는 개발 방법론이나 제품의 특성에 따라 개발 초기부터 개발 단계의 목적과 테스트 환경에 맞추어 차별화된 방법으로 이루어져야 합니다 . 테스트는 개발 산출물에 대한 리뷰 및 소스 코드 분석과 같은 정적 테스트 방법과 소스 코드를 실행하면서 하는 동적 테스트 방법으로 구분합니다 . 정적 테스트와 동적 테스트는 서로 보완적이어서 어느 하나가 다른 것을 대체할 수 없습니다 [Broekman et al., 2003]. 동적 테스트는 테스트 대상의 범위에 따라 단위 , 통합 , 시스템 테스트로 세분화되며 , 소스 커버리지가 95% 이상 되도록 단위 테스트를 면밀히 해도 통합 및 시스템 테스트를 피할 수는 없습니다 . 임베디드 소프트웨어의 경우 이뮬레이터 , 레퍼런스 보드 , 실제 타겟의 테스트 수행 환경에 따라서도 그 방법이 차이가 납니다 .

일반적으로 임베디드 시스템은 제한된 자원으로 최적의 성능을 위하여 제작되기 때문에 시스템을 구성하는 하드웨어와 소프트웨어들의 결합력이 매우 높습니다 . 높은 결합력 때문에 일부 소프트웨어만 독립적으로 테스트하기 힘들며 , 시스템 기능을 부분적으로 확인하기 위한 단위 , 통합 테스트가 쉽지 않습니다 . 특히 단위 , 통합 레벨의 동적 테스트는 테스트 드라이버나 상대 컴포넌트를 대신할 시뮬레이션 장비를 갖추어야 하는 경제적 어려움도 있습니다 . 따라서 많은 산업현장에선 소스코드 분석과 같은 정적 테스트 후 , 단위 및 통합 테스트를 생략하거나 비전문적으로 테스트를 수행한 후 , 실제 타겟에서 전체 시스템에 대한 동적 테스트에 집중합니다 [SEC, 2004].

문제는 최종 테스트 단계인 타겟에서의 동적 테스트에서 발견된 결함은 그 원인과 위치를 파악하는 데 수 많은 시간과 비용이 소모된다는 점입니다 . 본 논문에서는 시스템이 타겟에 배치되어 실제 운용되는 환경에서 탑재된 모든 소프트웨어 및 하드웨어 컴포넌트들이 시스템의 품질 요구사항에 맞춰 올바르게 동작하는 가에 대한 동적 테스트와 동시에 결함의 원인과 위치 파악을 자동화한 동적 임베디드 소프트웨어 테스트 방안과 이를 구현한 AMOS 도구를 제안하고 이를 산업체 적용한 결과 및 경제적 효과를 소개합니다 .

애자일 SW개발을 향상시키는 클라우드 컴퓨팅의 6가지 장점

클라우드 컴퓨팅과 가상화로 가상머신을 활용하여 프로젝트관리, 이슈관리, 자동화 테스트가 가능한 소프트웨어 빌드를 클라우드 기반의 서비스로 이용할 수 있습니다. 이를 활용하는 애자일 개발팀은 물리서버의 한계 극복, 업무의 병렬처리, 혁신활동 고취, 신속한 업무처리 등의 6가지 장점들로 프로젝트를 잘 수행할 수 있을 것으로 기대합니다.

1. 클라우드 컴퓨텅으로 테스팅, 스테이징 서버(staging server)를 무한히 제공 가능
2. 애자일 개발 업무를 병렬 처리할 수 있음
3. 혁신과 실험 정신이 장려됨
4. 지속적인 통합/인도(Delivery)가 강화됨
5. 많은 개발 플랫폼과 외부 서비스를 이용할 수 있음
6. 코드 분기와 병합이 쉬어짐

가상화와 클라우드 컴퓨팅으로 개발과 테스트에 사용되는 물리  서버의 한계에서 벗어날 수 있습니다.
가상화와 클라우드 컴퓨팅은 지속적인 통합/인도를 하려는 애자일팀에게는 필수입니다.
추가적인 서버 공급 때문에 발생되는 시간지연이 사라져 기존은 단계적인 업무진행방식이 좀 더 병렬적으로 바뀝니다.
결국 회사는 비즈니스 목적에 맞는 혁신적인 개발 프로젝트를 손쉽게 추진할 수 있습니다.