본문 바로가기
클린아키텍처

[클린아키텍처] 1장 설계와 아키텍처란? 2장 두가지 가치에 대한 이야기

by bzerome240 2022. 2. 27.

 

 

 

설계와 아키텍처의 구분은 무의미하다. 고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐이다.

 

 

소프트웨어 아키텍처의 목표는
필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 데 있다.

 

 

"코드는 나중에 정리하면 돼, 당장은 시장에 출시하는 게 먼저야!" 라는 거짓말에 속는다.

이렇게 속아 넘어간 개발자라면 나중에 코드를 정리하는 경우는 한 번도 없는데, 시장의 압박은 절대로 수그러들지 않기 때문이다.

-> 공감하며 반성하게 되는 말! 다음에 만들어야 할 기능은 계속 나를 기다리고 있다...

 

 

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

 

자신을 과신한다면 재설계하더라도 원래의 프로젝트와 똑같이 엉망으로 내몰린다.

 

 

비용을 최소화하고 생산성은 최대화할 수 있는 설계와 아키텍처를 가진 시스템을 만들려면,

시스템 아키텍처가 지닌 속성을 알고있어야 한다.

 


 

소프트웨어 개발자가 높게 유지해야하는 책임을 가지는 "행위""구조" 라는 2가지 가치

-> 한가지 가치에만 집중하고 나머지 가치는 배제하곤 한다.

-> 혹은 덜 중요한 가치에 집중하는 경우가 있다.

 

 

행위

: 요구사항을 기계에 구현하고, 버그를 수정하는 일

-> 프로그래머가 이것만 자기 일이라고 생각하는데 틀렸다.

  • 긴급하지만 매번 높은 중요도를 가지는 것은 아니다.

아케텍처

: 소프트웨어(soft부드러운+ware제품)라는 단어와 관련이 있다. = 변경사항을 간단하게 적용할 수 있어야한다.

-> 아키텍처는 형태에 독립적이어야 실용적이게 된다.

  • 중요하지만 즉각적인 긴급성을 필요로 하는 경우는 없다.

 

소프트웨어 시스템이 동작하도록 만드는 것 < 소프트웨어 시스템을 더 쉽게 변경할 수 있도록 하는 것

ex) 변경 요청이 들어올 떄 "비용이 너무 커 현실적으로 적용할 수 없다" -> 변경 불가능한 상태에 처할 떄까지 시스템을 방치한 것

 

 

소프트웨어 개발자의 책무

: 소프트웨어를 안전하게 보호해야 할 책임이 있으므로 이해관계자들과 동등하게 논쟁해야한다.

 

소프트웨어 아키텍트의 책무

: 기능보다는 시스템 구조에 더 중점을 둔다. 개발하기 쉽고, 간편하게 수정가능하며, 확장하기 쉬운 아키텍처를 만들어야한다.

 

728x90
반응형

댓글