더북(TheBook)

이렇게 구조가 없는 시스템을 테스트하는 유일한 방법은 모든 변경 작업에서 매번 시스템 전체를 테스트하는 것입니다. 하지만 어느 정도 규모가 있는 시스템을 다루는 팀이라면 이 방식을 계속 유지하기란 거의 불가능할 것입니다.

복잡성은 개발 속도도 저하시킵니다. 변경 작업이 시스템에 미치는 영향을 빠르고 정확하게 판단할 수 있어야 개발 속도를 유지할 수 있습니다. 따라서 빠른 개발 속도는 몇몇 소수의 패턴으로 관리되는 단순한 시스템에서 더욱 쉽게 달성될 수 있습니다. 반면에 복잡한 시스템에서 변경 작업을 할 때는 모든 기존 구성 요소와 관계에 대한 영향을 평가해야 합니다. 이는 품질 테스트의 부담과 마찬가지로, 대부분의 팀이 감당할 수 없는 비용입니다. 이러한 이유로 복잡한 시스템에서는 변경 작업이 느리게 진행되거나 전혀 진행되지 않으며, 변경 작업 후 시스템이 손상되기도 합니다.

현재 불완전한 가정을 기반으로 설계를 변경하고 있다면 이는 시스템 복잡성이 증가하고 있다는 또 다른 신호입니다. 예를 들어 서비스에 캐시를 추가하는 경우를 살펴보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.