Clean Architecture - 1부

1장 설계와 아키텍처란? 우리가 생각하는 설계와 아키텍처는 다른 것은 다르지 않다. 같은 의미라고 생각하고 받아들여야 한다. 앞으로 두 단어를 혼용해서 사용해도 같은 의미로 받아들이기 바란다. 그렇다면 아키텍처란 무엇이고 그 목표는 무엇인가? 이 책에서는 다음과 같이 설명하고 있다.  "소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는데 투입 되는 인력을 최소화 하는 것에있다." 고객의 요구를 만족시키기 위해 드는 비용이 좋은 설계와 나쁜 설계를 구분하는 단순 명료한 척도이다. 좋은 설계는 수명이 갈수록 요구사항을 적용하는데 비용이 적게드는 반면 나쁜 설계는 점차 비용이 증가한다. 이렇게 꾸준히 낮아진 생산성은 전적으로 개발자의 책임이다.  나쁜 설계를 원하는 개발자는 아무도 없을 것이다. 하지만 대부분의 개발자는 위와 같은 상황에서 허우적대고 있을거라 생각한다. 그렇다면 도대체 무엇이 잘못된 것일까?  책에서는 토끼와 거북이를 예시로 들고 있다. 토끼가 가졌던 과신이 나쁜 설계를 만드는 주요 원인이라 설명하고 있다. 그렇다면 많은 개발자들은 다음과 같이 말할것이다. "잠도 못자고 누구보다 많은 시간을 투자하는데 무슨 소리냐", "많은 노력을 하고 있다." 이렇게 노력하는데도 왜 나쁜 설계로 빠져들고 있는것인가? "코드는 나중에 정리하면 돼. 당장은 시장 출시가 먼저고 배포가 먼저야"  우리들이 놓치고 과신하고 있는것은 바로 이것이다. 위와 같은 생각을 하지 않은 개발자는 없다고 본다. 이것이 개발자들의 과신이다. 이렇게 속아 넘어간 개발자들은 이후 코드를 정리할 수 없게 된다. 그 이유는 시장의 압박은 끝나지 않는데에 있다. 시장엔 항상 경쟁자가 있고 뒤쫒고 있기 때문이다. ... 수정중