데이비드 갈란 카네기 멜론 대학 컴퓨터 과학대학


▲ 데이비드 갈란 카네기 멜론 대학 컴퓨터 과학대학



소프트웨어 아키텍처는 1990년대에 소프트웨어 엔지니어링 학문 분야의 하나로서 나타났다. 그리고 그로부터 놀라울 정도로 성장해 왔다. 그러나 소프트웨어 엔지니어링 분야 전체와 마찬가지로 소프트웨어 아키텍처는 기술의 변화, 소프트웨어 역량의 요구, 그리고 새로운 경제 모델의 대두에 즉각적으로 대응될 수 있어야 한다. 나는 이 글을 통해 소프트웨어 아키텍처에서 과거로부터 발전되어온 중요 영역과 최근의 조사를 통해 흥미롭고 새로운 성과로 인해 각광받는 영역에 대해서 다루고자 한다.

소프트웨어 아키텍처는 고수준(high-level)의 소프트웨어 시스템과, 그들 사이의 관계, 그리고 그로 인한 특성에 깊이 관련되어 있다. 이러한 고수준의 구조는 계산능력, 커뮤니케이션, 그리고 구축을 반영한다. 물론 여기에는 긴급 동작, 성능, 신뢰성, 보안성, 유지보수성과 같은 일반적인 특성들도 함께 포함된다.

훌륭하게 디자인된 아키텍처는 시스템 설계자가 요구사항의 만족성과 절조 있는 공학적 균형(tradeoffs)을 제시할 수 있도록 해준다. 그러한 아키텍처는 각 컴포넌트들의 동작 분배에 대한 확실한 원리, 개념적 통일성에 대한 원칙 수립, 그리고 시스템의 수명에 걸친 반복작업의 상당한 감소를 제공할 수 있다. 또한 아키텍처적인 설계 특징과 패턴들을 재사용할 수 있도록 해주고, 생산 라인에 접근함으로써 개발 비용을 감소시키며, 그 시스템의 장래 유지보수자들을 위한 가이드를 제공한다.

지난 10년간 소프트웨어 아키텍처를 표현하고 사용하는 방법과 아키텍처적 설계의 분류에 있어서 놀라운 발전이 있어 왔다. 결과적으로 우리는 다음과 같은 뛰어난 테크닉들을 얻어낼 수 있었다. (가) 아키텍처를 정확하고 분명하게 문서화하는 테크닉, (나) 소프트웨어 아키텍처가 얼마나 잘 시스템의 주 요구 사항을 드러내고 있는 지 결정할 수 있도록 평가하는 테크닉, (다) 아키텍처적 패턴과 스타일의 재사용에 대한 테크닉, (라) 생산 라인과 프레임워크를 생성하는 테크닉, (마) 소프트웨어 엔지니어들이 뛰어난 아키텍트가 되도록 가르치는 테크닉. 이 테크닉들의 대부분들은 성공적으로 그들의 요구사항을 만족시키는 효율적인 시스템을 생성하는데 성공한 조직들의 실제 모습에서 공통적으로 발견된다. 그러한 조직들은"아키텍처적으로 성숙하다."

현장 적용 현황

비록 현장에 적용되는 모습은 매우 다양하지만, 대부분의 성공적인 기업들은 소프트웨어 아키텍처의 중요성을 인정한다. 이제 뛰어난 소프트웨어 아키텍처의 현장 적용을 한 기업들의 몇몇 지표들을 살펴보자.

■ 소프트웨어 아키텍트들: 기업들은 소프트웨어 아키텍트들에게 분명한 직업 목표와 커리어를 제공했다. 몇몇 경우에서는 사내에서 소프트웨어 아키텍트들을 양성해 내는 내부 훈련 프로그램이 함께 진행되었다. 아키텍트들은그들 조직의 중요한 역할을 수행함을 통해서 명망과 보상을 받았다.

■ 아키텍처 프로세스: 기업들은 소프트웨어 아키텍처를 그들의 소프트웨어 실제 개발에 분명하게 합치시켰다. 이것은 아키텍처 설계 리뷰, 아키텍처 리뷰 게시판, 아키텍처의 최적화 적용을 기술하는 매뉴얼들과 조직의 표준, 그리고 내부 아키텍처 발전 가능 요소들 등 여러가지 형태로 나타났다.

■ 문서화: 기업들은 얼마나 아키텍처들이 문서화되고, 조직내에서 확산시킬 수 있을 지에 대해 표준을 구축했다. 이것은 UML 같은 표준화에 의지되기도 하고, 사내 내부의 표준을 사용하기도 했다. 이와같은 문서화는 시스템의 변화에 따라 최신 상태를 유지했다.

■ 생산 라인: 기업들은 비슷한 시스템들 전체에 걸쳐 아키텍처적인 설계 재사용을 지원하는 프레임워크와 프로덕트 라인의 창조를 통해 아키텍처(코드)의 공통성에 대한 이득을 취했다. 각각의 독립적이고 개별적인 생산물들에 대해서도 독립적으로 생산 라인의 유지보수성, 문서화, 훈련의 문제들을 지적할 수 있는 생산 라인의 공통 부분이 있기 마련이기 때문이다.

■ 지속적인 발전: 기업들은 미래의 아키텍처적인 설계를 위해 과거의 아키텍처로부터 성공과 실패를 추적했다. 보통 이것은 체크리스트의 형태로 나타난다. 그밖에도 아키텍처 설계 안내서 혹은 내부 아키텍처적 설계 전문지식 센터가 되기도 한다.

■ 인식: 기업들은 소프트웨어 아키텍처 분야에서 진행중인 연구들에 대해 인식하고 있었다. 보통 그런 인식은 학습과 좌담을 위해 외부의 전문가를 초빙하게 될 경우 가능하다. 공공기관인 정보통신산업진흥원 부설기관인 소프트웨어 공학센터와 연합할 때에도 가능하며, 소프트웨어 아키텍처에 대한 국제적인 컨퍼런스 WICSA (Working International Conference on Software Architecture), ECSA (the European Conference on Software Architecture), ICSE (the International Conference on Software Engineering) 등으로의 참가를 통해서도 가능하다.


<이하 상세 내용 컴퓨터월드 7월 호 참조>

저작권자 © 아이티데일리 무단전재 및 재배포 금지