#2 소프트웨어 아키텍처101

99·2023년 9월 21일
0
post-thumbnail

아키택처 특성은 다음 세가지 기준을 충족합니다.

  • 비도메인 설계 고려 사항을 명시한다.
  • 설계의 구조적 측면에 영향을 미친다.
  • 애플리케이션 성공에 중요하다.

비도메인 설계 고려 사항을 명시한다.

애플리케이션 설계 시 애플리케이션으로 처리할 일은 구체적인 요구사항으로 정리합니다. 아키텍처 특성은 이 요구사항을 구현하는 방법, 어떤 선택을 하게 된 이유와 관련된 운영/설계 기준을 명시합니다.

설계의 구조적 측면에 영향을 미친다.

프로젝트 담당 아키텍트가 아키텍처 특성을 기술하는 주된 이유는, '이 아키텍처 특성은 어떤 특볋판 구조적 요소를 고려해야 하는가?' 하는 설계 고려 사항입니다.
예를 들어 애플리케이션이 직접 결제를 처리하게 된다면 아키텍트는 중요한 보안 문제를 구조적으로 분리하기 위해 특정한 모듈이나 컴포넌트, 서비스를 설계해야 합니다. 이 경우 아키텍처 특성은 아키텍처와 설계 모두에 영향을 미칩니다.

애플리케이션 성공에 중요하다.

우리는 아키텍처 특성을 명시적 특성과 암묵적 특성으로 분류합니다. 암묵적 아키텍처 특성은 요구사항과 정의서에는 거의 안 나오지만 프로젝트 성공을 위해 꼭 필요한 특성들입니다. 아키텍트는 분석 단계에서 자신이 문제 영역에 대해 습득한 지식을 최대한 활용하여 아키텍처 특성을 밝혀내야 합니다. 명시적 아키텍처 특성은 요구사항 정의서나 다른 지침서에 기재됩니다.

아키텍처 특성은 어떻게 나열해도 불완전한 목록이 될 수밖에 없고, 소프트웨어마다 고유한 팩터를 바탕으로 중요한 아키텍처 특성이 도출될 수도 있습니다.

시스템을 설계하며 모든 아키텍처 특성을 빠짐없이 최상으로 반영하기란 불가능에 가깝습니다.

아키텍트가 내린 결정은 상충되는 여러 문제들이 뒤얽힌 트레이드오프로 귀결되는 경우가 많습니다.
아키텍처 특성을 너무 욕심내면 모든 비즈니스 문제를 해결하려고 시도하는 일반적인 솔루션이 되어버립니다. 그러나 그런 아키텍처는 설계하기가 대단히 까다롭기 때문에 실현 가능성이 낮습니다.

아키텍트는 가능한 한 아키텍처 설계를 꾸준히 조금씩 반복해보는게 좋습니다. 아키텍처를 쉽게 변경할 수 있다면 첫술에 배불러야 한다는 강박관념도 사라지겠죠. 반복의 가치는 애자일 소프트웨어 개발에서도 가장 중요한 교훈 중 하나로, 아키텍처뿐만 아니라 모든 레벨의 소프트웨어 개발에도 적용됩니다.

최고의 아키텍처를 고집하지 말고 나쁜 것 중에 제일 나은 아키텍처를 선택하세요.

참고자료
소프트웨어 아키텍처 101

profile
이동의 새로운 패러다임 turtle입니다.

0개의 댓글