개발_프로그래밍

클린 아키텍처 - 2장. 두 가지 가치에 대한 이야기

_랄프_ 2022. 8. 28. 06:39
728x90

■ 2장 두 가지 가치에 대한 이야기

여기서 두 가지 가치란 행위 behavior 와 구조 structure 이다.

행위는 개발자가 코드를 작성하고 디버깅하는 것을 말하며 보통 프로그래머는 이 활동이 자신의 일의 전부라고 생각하지만 틀린 생각이다.

소프트웨어는 말 그대로 soft 하기 때문에 변경이 자주 발생한다. 이러한 변경사항을 적용하는 데 드는 어려움은 변경되는 범위 scope 에 비례해야 하며 형태 shape 와는 관련이 없어야 한다. 새로운 요구사항이 발생할 때마다 적용하는 것이 더 힘들어지는데, 이것은 시스템의 형태와 요구사항의 형태가 서로 맞지 않기 때문이다. 개발자는 사각형 마개를 동그란 구멍에 밀어 넣도록 강요하는 느낌(다른 형태에 억지로 넣는 느낌)을 받는다. 여기서 중요한 것이 아키텍처인데 아키텍처는 형태에 독립적이어야 하고 그럴수록 더 실용적이다.

그럼 어떤 게 더 가치가 높은가. 기능인가 아키텍처인가. 소프트웨어가 동작하도록 만드는 것이 중요한가, 더 쉽게 변경할 수 있도록 하는 것이 중요한가. 당연히 후자라고 말해야 한다. (업무관리자가 아니라면)

 

 

728x90

 



개발자라면 자신이 만드는 소프트웨어를 더 효율적으로 만들기 위해 다른 이해관계자들과 투쟁할 수 있어야 한다. 소프트웨어를 안전하게 보호해야 할 책임이 있다. 아키텍트라면 더더욱 그렇다. 아키텍트는 시스템이 제공하는 특성이나 기능보다는 구조에 더 중점을 두어야 한다. 이러한 기능과 특성을 쉽게 개발하고, 간편하게 수정하고, 쉽게 확장할 수 있는 아키텍처를 만들어야 한다.

아키텍처가 후순위가 되면 개발 비용이 더 들고 때로는 변경이 불가능해 질 수도 있다. 이러한 상황이 발생하도록 두었다면, 이는 결국 개발팀이 스스로 옳다고 믿는 가치를 위해 충분히 투쟁하지 않았다는 뜻이다.

<3장에서 계속>

 

 

 

728x90
반응형