2015년 9월 10일 목요일

모바일 컴퓨팅을 위한 소프트웨어 아키텍처

스마트폰의 보급과 무선 네트워크 속도의 급격한 향상으로 사용자가 주로 사용하는 디바이스가 PC에서 모바일로 이동하는 큰 변화가 일어나고 있다. 이에 따라 소프트웨어 서비스도 PC에서 모바일로 이동하고 있는 추세이다. 이러한 변화는 모바일 디바이스에 더 다양한 서비스를 갖춘 소프트웨어를 요구하게 되고, 이를 뒷받침하는 효율적인 아키텍처의 필요성이 증가하고 있다.

 모바일 서비스는 대부분 PC 기반에서 운영하는 서비스에 모바일의 특성이 가미된 것이 많다. 이렇다 보니 PC 기반의 아키텍처를 재활용하여 모바일 아키텍처를 구성하는 경우가 있다. 이 경우, PC 기반의 요소가 모바일에 그대로 탑재되는 경우도 발생하여 제한적인 자원을 가지고 있는 모바일 디바이스의 부하가 높아질 수 있다. 따라서 모바일 아키텍처를 설계할 때, 이런 부분을 고려하여 모바일 디바이스의 요소를 최소한으로 줄일 필요가 있다.

 소프트웨어 아키텍처의 역할

소프트웨어 개발에서 사용자가 원하는 요구사항이 점점 많아지고 복잡해지면서 체계적으로 시스템 구성을 살펴볼 수 있게 하는 소프트웨어 아키텍처(Software Architecture)가 필요하다. 물론 소프트웨어 아키텍처는 세부적으로 더 다양한 아키텍처로 구분할 수 있다. 일반적으로 소프트웨어 아키텍처는 아래와 같은 역할을 한다.

 - 시스템의 전체 구성을 결정한다.
 - 프로젝트 초기 단계의 의사 결정 도구이다.
 - 프로젝트 업무 분장의 수단이다.
 - 시스템의 품질 요소를 결정한다.
 - 시스템 구성의 변경 사항을 관리한다.
 - 프로젝트 의사 소통의 수단이다.
 - 시스템의 완성 모습을 예측한다.

자세히 보기 →

애자일 스크럼 팀이 SW 품질과 테스팅에 주력하게 만드는 3가지 방안

SW품질과 테스팅은 애자일 방법론을 도입하는 된 핵심적인 이유입니다. 애자일을 도입한 개발팀이 산출물의 품질향상을 위해 필요한 의사소통라인 구축, 유연한 테스트 타이밍, 빠르고 효과적인 테스트 방법을 살펴봅니다.

1.강력한 의사소통 라인 구축하기
  • 개인 간 소통만이 아니라 팀의 비즈니스 의사소통도 혁신시킬 필요가 있음
  • 개발하면서 결함이 발견되기 전에, 요구사항단계부터 변화가 발생하면 테스트 팀과 소통을 하는 것이 좋음
  • 의사소통의 원활함을 위해서는 스크럼 팀 구성원을 편안하게 만드는 것이 중요함

2. 유연한 테스트 타이밍
  • 테스트 팀 매니저로서 회의를 계획하고 진행하는데 시간을 좀 더 투자하는 것이 중요
  • 엄격함보다는 유연성을 가지고 결정하기
  • 테스팅을 수행하는 인력을 관찰하는데 시간을 투자하기

3.빠르고 효과적인 테스트 방법 적용하기
빠르고 효과적인 테스트를 수행하는 테스터는 부지불식간에 수동적(자동화 반대 개념 측면에서의)이고 자기만의 기술을 활용하여 테스트를 수행하는 경향이 있음에 따라 그들이 일을 하는 것을 관찰하여 어떻게 테스트를 수행하는지를 배워야 함

소프트웨어 취약점 , 보증 및 보안 테스팅

소프트웨어 (SW) 를 위협하는 요소들에는 직접적인 취약점 공격 , SW 내에 탑재된 악성 코드 실행 , 개발 중인 SW 에 악의적 로직이나 의도적 취약점들 주입 등이 있습니다 . SW 취약점은 코드 내의 결함 (defect) 또는 실수 (flaw) 로 보안 공격에 악용될 수 있습니다 . SW 보증 (Software assurance, SwA) 은 SW 가 의도적이거나 우연한 취약점들로부터 자유롭다는 것과 SW 가 의도한대로 수행된다는 것을 확신 (confidence) 하는 레벨입니다 . SwA 은 SW 안전성과 보안 , 테스트와 평가 , SW 공학 , 정보 보증 , 정보시스템보안공학 , 프로젝트 관리 , 시스템 공학 등 여러 학제 간 협력 (multi-disciplinary collaboration) 을 필요로 하며 , 그 중심에 위치합니다 . SW 보안 테스팅은 보안 요구사항이 만족되었는지 그리고 안전한 설계와 코딩 가이드라인을 준수하였는지를 확인하는 과정으로 , SW 신뢰성 및 보증을 검증하기 위한 최고 실무지침 중의 하나입니다 .