설계와 아키텍처란

Gooreum·2021년 10월 28일
0

클린아키텍처

목록 보기
1/33
post-thumbnail

설계와 아키텍처의 차이

  • 둘 사이에는 아무런 차이가 없다.
  • 아키텍처 : 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬 때 흔히 사용
  • 설계 : 저수준의 구조 또는 결정사항 등을 의미할 때가 많음. → 하지만 아키텍트가 실제로 하는 일을 살펴보면 이러한 구분은 무의미하다. 새로운 집을 설계하고자 하는 아키텍트의 도면 구성
    • 집의 아키텍처 : 집의 형태, 외관, 입면도, 공간이나 방의 배치 등

    • 설계 : 콘센트, 전등 스위치, 전등의 위치 등등

    • 아키텍트의 도면에서 고수준의 결정사항을 지탱하는 모든 세부사항을 자세히 확인할 수 있다.

    • 이러한 저수준의 세부사항과 고수준의 결정사항은 집의 전체 설계의 구성요소가 된다.

      → 소프트웨어 설계도 마찬가지이다.

    • 고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐이다.

목표

  • 소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 '유지보수'하는 데 투입되는 인력을 최소화하는 데 있다.
    • 설계 품질을 재는 척도는 고객의 요구를 만족시키는 데 드는 비용을 재는 척도와 다름없다.
    • 이 비용이 낮을 뿐만 아니라 시스템의 수명이 다할 때까지 낮게 유지할 수 있다면 좋은 설계라고 말할 수 있다.

빨리 가는 유일한 방법은 제대로 가는 것이다.

  • 시스템을 급하게 만들거나, 결과물의 총량을 순전히 프로그래머 수만으로 결정하거나, 코드와 설계의 구조를 깔금하게 만들려는 생각을 전혀 하지 않으면 생산성은 떨어지고 비용은 커진다.
  • 이러한 상황에서 개발자는 아무리 노력해도 진척이 없는 상황에 처하게 되고, 사소한 기능을 추가하는 일도 그저 엉망이 된 코드를 이곳에서 저곳으로, 다시 다음 곳으로 이동하는 반복 작업으로 변질된다.
  • 특히 당장 시장 출시하는 것을 우선으로 하여 기능 구현에 급급하면 코드는 나중에 정리하면 된다라는 과신에 빠지게 된다. 하지만 정리는 되지 않는다. 그 다음 요구사항이 기다리고 있기 때문이다.
profile
하루하루 꾸준히

0개의 댓글