ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [마틴 파울러] 소프트웨어 아키텍처의 중요성 (한글 자막)
    세미나, 영상 요약정리 2022. 10. 1. 00:00
    728x90

    https://www.youtube.com/watch?v=4E1BHTvhB7Y 

     

    위의 영상을 보고 정리한 내용입니다.

     

    아키텍트라는 단어를 썩 좋아하진 않는다 (시니어급을 연상시킴)

     

    또한 아키텍트는 더 이상 프로그래밍을 하지 않는다는 이미지가 있습니다.

     

    하지만 사실상 코드가 더 중요합니다.

     

    IEEE 소프트웨어 정의에서 아키텍트를 다음과 같이 설명합니다.

    구성요소 간의 관계, 환경, 설계와 발전을 관리하는 원칙으로 이루어진 시스템의 근본적인 구조

     

    하지만 너무 포괄적으로 정의되어 있습니다.

     

    하지만 마틴 파울러의 개인적인 생각은 디자인 패턴을 집필한 랄프 존슨의 생각과 일치합니다.

    랄프 존슨은 리팩터링의 개념을 공식화하였습니다.

     

    그와 주고 받은 이메일이 인상 깊다고 설명한 내용이 포함된 칼럼입니다.

    http://files.catwell.info/misc/mirror/2003-martin-fowler-who-needs-an-architect.pdf

     

    프로젝트에 참여하는 개발자들의 상식이 아키텍처에 큰 영향을 미칩니다. (지식을 공유)

    한번 결정하면 변경하기 어렵다. (언어 등)

     

    결론적으로는 무엇이 중요한지 판단하는 핵심가치가 가장 중요합니다.

     

    마틴 파울러와 랄프 존슨이 생각하는 아키텍처는 "무엇인가 중요한 것"입니다.

     

    우리는 왜 소프트웨어 아키텍처에 관심을 가지는 걸까요?

     

    개발자의 장인 정신 vs 회사의 경제성

     

    하지만 늘 이기는 것은 회사의 경제성입니다.

     

    따라서 소프트웨어 아키텍처에 경제라는 개념을 도입해야 합니다.

     

    소프트웨어에는 외부적인 품질과 내부적인 품질이 존재합니다.

     

    소프트웨어를 평가하는 사람들은 외부의 사람들이고 그들은 내부를 들여다볼 수 없습니다.

     

    다음과 같은 상황에 어떤 것을 선택할까요?

    기능은 동일하다고 가정하겠습니다.

     

    1. 품질이 높지만 100달러 비쌈

    2. 품질이 낮지만 100달러 저렴함

     

    하지만 소프트웨어의 품질은 장기적인 관점으로 바라봐야 합니다.

     

    디자인 스테미너 이론에 따르면 다음과 같습니다.

    No Design : 품질이 낮은 소프트웨어는 시간이 지나면서 많은 기능을 가질수록 새로운 기능을 추가하는데 시간이 많이 걸리게 됩니다.

    Good Design : 품질이 높은 소프트웨어는 기능을 추가하는데 더 낮은 시간만으로 해결할 수 있습니다.

     

    이러한 이유가 바로 좋은 품질의 소프트웨어를 100달러를 더 주고 사야 하는 이유입니다.

     

    만약 낮은 품질의 소프트웨어를 고른다면 그 당시에는 좋을지 모르지만 장기적인 관점으로 보았을 때는 개선이 힘들어지게 됩니다.

     

    즉, 낮은 품질의 소프트웨어는 우리의 시간을 지속적으로 소모하며 경제적으로 더 손해를 보게 됩니다.

     

     

    댓글

Designed by Tistory.