직교성Orthogonal 이란?
- 두 직선이 직각으로 만나는 경우를 직교 한다고 한다. 하지만 두개의 선은 독립적이다.
- 컴퓨팅 용어에서는 결합도 줄이기를 의미한다.
- 하나가 바뀌어도 나머지에 어떤 영향도 주지 않는다면 직교한다고 할 수 있다.
장점
- 비 직교적인 시스템은 본질적으로 변화와 조정을 하기 복잡하다.
- 시스템의 컴포넌트들이 고도로 상호의존적인 경우, 특정 부분만 수정하는 방법이란 없다.
- 컴포넌트들이 각각 격리되어 있으면, 어느 하나를 바꿀 때 나머지 것들을 걱정하지 않아도 된다.
- 생산성 향상
리스크 감소
- 감염된 코드는 격리됨.
- 시스템이 잘 깨어지지 않음.
- 직교적인 시스템은 테스트를 설계하고 실행하기 쉬움. → 더 많은 테스트가 가능하다.
설계
협력하는 모듈들의 집합으로 구성되어야 하고, 각 모듈은 다른 부분과 독립적인 기능을 구현해야 함.
때로는 이런 컴포넌트들이 레이어로 조직됨. 각 레이어는 하나의 추상화 층을 이룸.
레이어식 접근은 직교적 시스템을 설계하는 강력한 방법이 됨. → 모듈간의 종속성이 빨리 늘어나는 위험을 감소시킴.
코딩
코드를 작성하고 있다면, 언제나 애플리케이션의 직교성을 떨어뜨릴 수 있는 위험에 노출되어 있다.