본문 바로가기
아키텍처

리스크 주도 소프트웨어 아키텍처란?

by SSaMKJ 2023. 1. 23.

리스크 주도 소프트웨어 아키텍처란?

 

 

성공적인 소프트웨어 개발을 위해 다양한 프로세스를 사용할 수 있다. 애자일 프로세스를 이용하는 그룹은 선행 설계 작업이 거의 없이 개발 도중에 설계가 나온다. 반대의 그룹은 세밀한 설계 작업을 진행하여 시스템을 개발한다. 어떤 방법이 가장 좋은 방법일까? 그 선택을 도울 이상적인 원칙이 있다.

 

아키텍처에 얼마나 많은 노력을 투자할지를 결정하기 위해 소프트웨어 리스크를 기준으로 삼을 수 있다.

 

리스크 주도 모델(risk-driven model)

적절한 아키텍처링 기법을 선택하여 적용하고, 얼마나 많은 시간을 투자할지도 파악하도록 기준을 제시하여 적정 아키텍처(just enough architecture) 작업을 수행하도록 안내한다.

 

아키텍터링에 투입할 노력은 실패 리스크에 따라 달라져야 한다. 많은 트레픽이 예상되는 시스템이라면 scale-out의 설계에 많은 노력을 해야한다. 사용자의 인터페이스의 잦은 변경이 예상된다면 비즈니스 모델과 사용자 인터페이스를 철저히 분리하여 UX의 변경이 비즈니스 모델에 가하는 변경을 최소화하는 아키텍처를 만드는데 많은 투자를 해야 한다.

 

모든 프로젝트의 리스크는 다르다. 그러므로 획일화된 정답이 없는 문제이다. 각 프로젝트의 아키텍터링은 리스크에 기반해야 한다. 어떤 프로젝트는 입증된 선례가 많아서 그 아키텍처를 재사용하여 리스크를 줄일 수 있다. 그러나 새로운 도메인이거나 새로운 시스템으로 이전한다면 리스크를 다시 분석해야만 한다.

 

엔지니어링 리스크를 줄이려고 지속해서 노력한다는 아이디어는 배리 베임(Barry Boehm)의 소트으웨어 개발 나선 모형(spiral model)에서 따왔다. 나선 모형은 프로젝트에서 리스크가 가장 높은 항목을 먼저 작업하도록 안내하는 풀 소프트웨어 개발 프로세스다. 나선 모형과 다른 점은 아키텍처에 필요한 양을 결정하며, 어떤 설계 기법을 적용할지 등의 결정에 도움이 된다. 리스크 주도 모델은 설계 작업에만 적용하기 때문에 나선 프로세스, 애자일 프로세스 등 프로세스와는 구분되므로 모든 프로세스에 적용할 수 있다. 프로세스별 차이점은 설계를 수행하는 시가와 적용하는 기법의 종류이다.

 

 

댓글