더북(TheBook)

아주 먼 옛날, 최초로 등장한 배열 루프문은 어떤 모습이었을까? 다음 코드는 (goto 문이 있는 거로 봐서) 자바스크립트 문법에는 맞지 않지만, 더 나은 패턴이 출현하기 전에 사람들이 흔히 코딩하던 방식이다.


ix=0;
the_test:
if (ix >= myArray.length) {
goto the_end;
}
doSomething(myArray[ix]);
ix = ix+1;
goto the_test; // 자바스크립트에 goto 문이 있다고 치자.
the_end:

goto 문이 있으면 코드를 읽어 내려가기 힘들어서 결국 이런 식으로는 잘 사용하지 않게 됐다. 마침내 goto는 사용이 금지되어 오늘날 자바스크립트에서는 자취를 감추었다. 그리고 이를 개선한 패턴이라 할 수 있는 for 루프문이 언어에 장착됐다.


for (ix=0; ix<myArray.length; ++ix ) {
doSomething(myArray[ix]);
}

for 루프문은 코드를 한결 짧고 분명하게 밝히고 무슨 일을 하는 코드인지 한눈에 쉽게 알 수 있다. goto 문을 썼던 코드와 견주어보면 오류 가능성이 확 줄어든 것 같다.

하지만 여기서 끝이 아니다. 경험과 패턴이 축적되는 지금도 현재 진행형이다. 배열 원소를 순회하는 루프는 너무 자주 쓰이는 코드라서 ECMAScript 5 언어 설계자들은 더욱 간결한 구문을 고안해냈다.

myArray.forEach(doSomething);

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