본문 바로가기

적정 소프트웨어 아키텍처3

소프트웨어 아키텍처 선택의 중요성 소프트웨어 아키텍처는 높은 추상화 단계에서의 소프트웨어 설계이다. 아키텍처 결정 중 일부는 코드 깊숙이 영향을 미치므로 아키텍처와 디자인 사이의 경계를 구분하기 어려울 수도 있다. 아키텍처가 시스템의 골격 역할을 하고, 품질 속성에 영향을 미치며, 시스템을 제한하기 때문에 소프트웨어 아키텍처 선택은 중요하다. 아키텍처는 시스템 전반에 영향을 끼친다. 시스템의 목적에 따라 올바른 아키텍처를 선택해야만 한다. 아키텍처는 기능에 직접적인 영향을 끼치지 않기 때문에 어느 정도는 아키텍처와 기능을 자유롭게 조합사여 사용할 수 있다. 하지만 필요한 기능과 품질 속성에 아키텍처가 적합하다면 시스템을 구축하기가 훨씬 쉬워진다. 반대로 아키텍처가 접합하지 않다면 요구사항을 충족하는 데 어려움이 있어 어느 선에서 타협해야.. 2023. 1. 28.
아키텍처 세 가지 접근 방식 소프트웨어 아키텍트라면 인정하기 싫겠지만, 개발자가 소프트웨어 아키텍처를 무시하더라도 성공할 수 있는 시스템이 많다. 그렇지만 소프트웨어 아키텍처를 충분히 생각했다면 피할 수 있었던 실패도 많다. 예를 먼저 들어보자. 예전 트럭은 안전벨트가 없었다. 그때의 트럭은 안전벨트가 없었다. 설계자가 차를 설계 할 때 안전에 무관심했다는 뜻이다. 설계자가 차를 설계할 때 안전에 무관심했다는 뜻이다. 그 이후에 나온 차들은 안전벨트가 있었다. 설계자는 아키텍처 집중 설계를 선택하여 안전벨트를 장착했다. 하지만 매번 버클을 맸어야 했다. 버클을 매지 않으면 안전을 보장할 수 없었다. 요즘에 나온 차들은 전부 에어백이 있어야 한다. 아키텍처 수준에서 안정성을 우선하지 않은 차량을 구매할 수 없다. 즉, 아키텍처 상향 .. 2023. 1. 28.
아키텍처, 아키텍트, 아키텍팅 용어 바로 알기 흔히 사용하는 IT용어 중 아키텍처, 아키텍트, 아키텍팅 용어를 정확하게 구분하여 사용해 보자. 직책: 아키텍트(architect) 아키텍팅을 전문으로 하는 역할을 뜻 한다. 프로세스: 아키텍팅 (architecting) 프로세스는 개발 중에 팀에서 발현되는 설계와 분리할 수 있다. 애자일에서는 아키텍처가 개발 중에 팀에서 발현된다고 신봉하는 사람들이 있다. 하지만 다른 진영(체계적인 개발: disciplined developement)에서는 아키텍처가 발현되는 것이 아니라고 믿는다. 엔지니어링 결과물: 아키텍처 (architecture) 엔지니어링은 개발, 운영 및 유지 보수에 대한 체계적이고 규율적이며 정량화 가능한 접근 방식을 적용한 것이다. 이러한 엔지니어링을 소프트웨어에 적용하여 만들어진 구조를.. 2023. 1. 23.