스마트폰의 보급과 무선 네트워크 속도의 급격한 향상으로 사용자가 주로 사용하는 디바이스가 PC에서 모바일로 이동하는 큰 변화가 일어나고 있다. 이에 따라 소프트웨어 서비스도 PC에서 모바일로 이동하고 있는 추세이다. 이러한 변화는 모바일 디바이스에 더 다양한 서비스를 갖춘 소프트웨어를 요구하게 되고, 이를 뒷받침하는 효율적인 아키텍처의 필요성이 증가하고 있다.
모바일 서비스는 대부분 PC 기반에서 운영하는 서비스에 모바일의 특성이 가미된 것이 많다. 이렇다 보니 PC 기반의 아키텍처를 재활용하여 모바일 아키텍처를 구성하는 경우가 있다. 이 경우, PC 기반의 요소가 모바일에 그대로 탑재되는 경우도 발생하여 제한적인 자원을 가지고 있는 모바일 디바이스의 부하가 높아질 수 있다. 따라서 모바일 아키텍처를 설계할 때, 이런 부분을 고려하여 모바일 디바이스의 요소를 최소한으로 줄일 필요가 있다.
소프트웨어 아키텍처의 역할
소프트웨어 개발에서 사용자가 원하는 요구사항이 점점 많아지고 복잡해지면서 체계적으로 시스템 구성을 살펴볼 수 있게 하는 소프트웨어 아키텍처(Software Architecture)가 필요하다. 물론 소프트웨어 아키텍처는 세부적으로 더 다양한 아키텍처로 구분할 수 있다. 일반적으로 소프트웨어 아키텍처는 아래와 같은 역할을 한다.
- 시스템의 전체 구성을 결정한다.
- 프로젝트 초기 단계의 의사 결정 도구이다.
- 프로젝트 업무 분장의 수단이다.
- 시스템의 품질 요소를 결정한다.
- 시스템 구성의 변경 사항을 관리한다.
- 프로젝트 의사 소통의 수단이다.
- 시스템의 완성 모습을 예측한다.
자세히 보기 →