
274
#ifdef
문을 사용하여 코드에서 변형을 구현했고, 이러한 변형을 처리하는 프
리미티브 분리를 적용하기 위해 변형을 별도의 함수에 넣었다. 이 프리미티브
는 변형을 메인 프로그램 흐름에서 분리하여 메인 프로그램을 잘 구조화하고
이해하기 쉽게 만든다.
#ifdef
처리해야 할 변형이 많아지면 단일 함수에서 모든 종류의 변형을 처리하기
어려워진다. 예를 들어 단일 함수가
#ifdef
문을 사용하여 서로 다른 하드웨어
유형과 운영 체제를 구별하는 경우, 운영 체제 변형 하나를 추가하는 순간 해
당되는 모든 하드웨어 변형도 추가해야 하므로 작업이 어려워진다. 각 변형을
더 이상 한 곳에서 처리할 수 없다. 그 대신 다양한 변형의 수만큼 필요한 노력
은 늘어난다. 이게 문제점이다. 코드의 한 곳에서 새로운 변형을 쉽게 추가할
수 있어야 한다.
이러한 ...