Debasish Ghosh가 ‘if는 위로, for는 아래로’라는 설계 원칙을 대수적 변환과 연결해 설명했다. 호출부에서 조건을 걸러 하위 함수의 책임을 좁히고, 반복 작업은 묶어서 실행해 호출 비용을 줄이는 방식이다. 다만 필터를 연산 앞으로 옮기려면 입력에서 동등한 조건을 표현할 수 있어야 하고, 반복문 밖으로 빼는 계산은 반복 중 값이 바뀌지 않아야 한다. 원칙을 제안한 글도 배치 처리와 전제조건의 명확화를 강조한다.
Tech
코드 이동은 모양보다 의미 보존 조건과 실제 비용을 먼저 확인해야 한다.
Debasish Ghosh가 ‘if는 위로, for는 아래로’라는 설계 원칙을 대수적 변환과 연결해 설명했다. 호출부에서 조건을 걸러 하위 함수의 책임을 좁히고, 반복 작업은 묶어서 실행해 호출 비용을 줄이는 방식이다. 다만 필터를 연산 앞으로 옮기려면 입력에서 동등한 조건을 표현할 수 있어야 하고, 반복문 밖으로 빼는 계산은 반복 중 값이 바뀌지 않아야 한다. 원칙을 제안한 글도 배치 처리와 전제조건의 명확화를 강조한다.