더북(TheBook)

함수 안에서도 DRY함이 물씬 풍긴다. line함수가 전형적인 예다.


var d;

while (++i < n) {
  d = data[i];
  points.push([+getX.call(this,d,i), +getY.call(this,d,i)]);
}

 

다음 코드와 비교해보라.


while (++i < n) {
  points.push([+getX.call(this, data[i],i),
               +getY.call(this, data[i],i)]);
}

 

코드는 후자가 더 짧지만, data[i]를 처리하는 ‘지식 조각’이 반복되어 DRY하지 않다. getX 호출부에서 한 번, getY 호출부에서 한 번 더 반복된다.

DRY함은 여타 언어와 비교했을 때 자바스크립트에서 특별히 중요하다. 코딩 실수는 늘 하기 마련인데, 자바스크립트는 잘못 코딩한 특정 클래스를 컴파일러가 미리 알려주지 않으니 자칫 그대로 운영 환경에 노출될 가능성이 크다. 참사를 예방하려면 될 수 있는 대로 빨리 실수를 인지하는 게 상책이다. ‘지식 조각’을 한 번에 한 개씩 입력하면 에러는 사방에서 손을 들 것이다. 아주 아주 바람직한 현상이다!

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.