
25
0
장
도입
0.1
설계가 왜 잘못되는가?
카오스
chaos
라는 단어를 들으면 어떤 것이 떠오르는가? 아마도 시끄러운 증권 거래소나 여러분
의 아침 주방(모든 것이 뒤섞여서 혼란스러운 상황)이 생각날 것이다.
질서
order
라는 단어에 대
해 생각해보면 고요하고 평화로운 빈 방이 떠오를지도 모른다. 하지만 과학자들은 카오스를 균
일성 (같음 ), 질서를 복잡성 (다름 )이라는 특징으로 묘사한다.
질서도가 높은 시스템을 관리가 잘 된 정원으로 예를 들어보자. 정원사는 통로와 담장으로 경
계를 정의하고, 꽃을 심을 장소나 채소를 심을 장소를 표시한다. 시간이 지남에 따라 정원의 식
물들은 계속 자라면서 정원은 점점 더 풍부해질 것이다. 이때 정원사가 정원을 관리하지 않고
그대로 둔다면 정원은 잡초로 무성해진다. 잡초는 다른 식물을 조이고 통로를 뒤덮는다. 결국
엔 관리 되지 않은 정원은 야생의 상태가 된다.
소프트웨어 시스템도 혼돈 상태로 향하려는 경향이 있다. 시스템을 처음 구축할 때는 코드를
깔끔하게 질서 잡힌 상태로 유지하기 위해 원대한 계획을 세운다. 하지만 시간이 지남에 따라
잘못 구현한 부분이나 에지 케이스
edge
case
(잘 일어나지 않는 드문 경우)를 처리하기 위한 코드
가 점점 늘어나고 결국에는 관리자 클래스와 유틸리티 모듈로 이루어진 혼란스러운 ...