소프트웨어 디자인: 결합도와 비용🤝

결합도를 줄인다는 건 단순히 객체 하나의 동작을 변경할 때 생기는 문제라고 보기엔 너무 클 수 있습니다. 하나의 동작을 변경할 때 예상치 못한 사이드 이펙트가 곳곳에서 발생하는 것도 큰 문제이지만 그 정도 문제라면 느슨한 결합의 중요도는 그리 크지 않을 것입니다. 높은 결합도의 더 큰 문제는 사용자의 만족도를 망가뜨리게 되고, 결함을 찾아 수정하고 사용자에게 사과하는 데 드는 비용이고, 이는 서비스의 크기에 따라 엄청나게 지급됩니다. 결국 높은 결합도는 실수의 비용, 수정의 비용과 고객 대응의 비용이 포함됩니다. 하지만 하나의 비용이 더 존재하는데, 실수의 비용이 두려워서 높은 결합도는 낮추려는 시도조차 하지 않을 때 생기는 비용입니다. 결합도를 소프트웨어 공학 관점으로만 본다면 문제가 없지만, 사업의 영역으로 나오면 문제가 커집니다. 아무리 뛰어난 서비스라도 어느 순간 ‘리팩터링 vs 사업’의 대립이 점철됩니다. 대부분은 사업과 시장 경쟁력으로 인해 리팩터링은 무기한(?) 연기됩니다. 이렇게 서비스가 굳어지어 가는 것 역시 비용이 커지는 시간이 될 수 있습니다. 그런데도 개발자는 높은 결합도를 줄이려고 노력해야 합니다. 작은 청크를 정해서 스스로와 동료들에게 챌린지를 걸 수 있는 용기가 필요합니다. 끝내, 결합도를 줄이는 것의 열매인 테스트 가능성 높일 수 있는 모든 개발자가 되기를 바랍니다👍

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 2월 21일 오후 10:01

 • 

저장 8조회 2,021

댓글 0