마틴 파울러가 소프트웨어 아키텍처를 the important stuff이라고 했다.

 


마틴 파울러가 짧은 강의를 통해 소프트웨어 아키텍처란 the important stuff 라고 정의한다.

아키텍처는 두 가지 측면을 가지고 있다고 하는데 "이해를 함께 해야 할 부분"이자 "변경이 어려운 부분"이라고.
이 두가지가 합쳐져서 "중요한 무언가"를 이루는데 이것을 아키텍처라고.

공감하는 부분도 있지만 소프트웨어 아키텍처를 너무 컴포넌트 중심으로 바라보는 것 같다.
시스템 구조적 측면을 단순히 컴포넌트로 보기는 어렵다.

구조의 측면을 고려하면 무조건 변경이 어려운 것은 아니다.
사실 시간의 기준으로 보면 그렇게 어려운 게 아니고
어렵다는 것을 마틴의 얘기 중 하나인 "지식의 깊이"로 보면 맞다고 볼 수 있다.

"지식의 깊이"를 가진 사람들이라면 아키텍처는 하나의 aspect처럼 간주될 수 있다.
물론 비즈니스 로직은 잘 동작하고 최소한의 가독성을 가진 코드들로 구성되어 있다는 가정 하에서.

아키텍처는 리팩토링처럼 일상적일 순 없지만 계단식 개선이 간헐적으로 발생해야 하는데, 시간적 관점에서도 hard to change이면 그 소프트웨어의 품질은 나오자마자 이미 한계에 달한 것이 된다.


소프트웨어나 서비스의 아키텍처 측면 품질은 매우 중요한 결정적 요소가 되기 쉬운데 이를 개선하기 위해서는 개발 조직은 아키텍처를 이해할 수 있는 지식의 깊이를 갖춰야 한다고 단순 결론을 내릴 수 있다.


댓글

이 블로그의 인기 게시물

[Java] Java G1 GC의 특성에 따른 Full GC 회피 튜닝 방법

엄밀한 사고(Critical Thinking)란 무엇일까

일론 머스크의 First Principle Thinking (제1원리 기반 사고)