개요

유튜브에 올라온 소프트웨어 아키텍처의 중요성 번역 동영상 살펴보기.

  • 해당 동영상은 데브원영님이 번역해주었다.
  • 동영상보고, 내용을 정리해서 글로 작성하였다. (잘못된 의견일 수 있으나, 개인 블로그라 남긴다.)

출처

youtu.be/4E1BHTvhB7Y

프로젝트의 어디에 핵심 가치를 둘 것인가. 그리고 아키텍처에서는 이러한 핵심가치를 프로젝트에 올바르게 달성하기 위해서 아키텍처를 어떻게 설계할 것인가에 대한 결정이 중요하다.

 

여기서 더불어서 아키텍처의 중요성을 이야기할 때 단지 개발자로서 올바른 기술 수준을 가지고 제대로 적용해야 한다는 장인정신도 있지만, 이것보다 더 중요한 것은 경제라는 개념이고 아키텍처의 중요성을 설파할 때 경제와 같이 접목시켜야 한다. 

 

일반적으로 우리가 재화를 필요로 할 때, 가령 값 싼 재화를 구매하지 않는다. 나름의 품질(quality) 를 고려하며 구매하게 된다. 이 때 그 품질이 높은 것에 대해선 좀 더 큰 금액을 지불하고 해당 재화를 구매한다. 마틴 파울러는 소프트웨어의 품질은 일반적인 재화의 품질과는 전혀 다르다고 이야기한다.

 

품질을 평가하는 사람은 내부의 사람들이 아닌 외부에서 구매한 사람들이 평가한다. 소프트웨어가 좋은 아키텍처 및 디자인을 가지고 있다고 하더라도 외부의 사람들은 내부의 품질을 직접적으로 살펴보지 못한다. 그래서 완전 동일한 기능의 소프트웨어를 내부적 품질이 좋은/나쁜 둘 중에 무엇을 구매할 것이냐고 묻는다면 대답은 품질이 나쁘지만 가격은 저렴한 소프트웨어를 구매하겠다고 말할 수도 있다.

 

이 때, 왜 내부적 품질이 좋은 소프트웨어를 구매해야하는지에 대한 설득이 필요하다.

  • 장기적인 관점을 바라본다.
  • 단순한 기능적인 추가에도 아키텍처가 잘 구축된 소프트웨어는 부가적인 리소스가 상대적으로 적다.

결과적으로 프로젝트를 꾸준하게 리팩토링하고, 기술부채를 줄여나가 좋은 아키텍처를 설계하는 것들이 중요한 이유는 경쟁사에 비해 고객에게 더 좋은 품질 (이 때의 품질은 내부/외부를 포함한 품질) 의 서비스를 꾸준하게 제공할 수 있는 것이다. (만일 기능하나 추가하는데 몇 주가 걸리는 문제가 아키텍처를 등한시하여 몇 달이 걸리면 그 서비스는 경쟁사의 서비스에 비해 상대적으로 외부에 노출되는 품질이 떨어진다고 할 수 있기 때문이다.)

 

단기적인 관점이 아닌 꾸준하게 좋은 서비스를 지속적으로 제공하는 하기 위함이 아키텍처의 핵심이다.

Posted by doubler
,