과격한 저자씨;

학교 도서관에서 「C++를 이용한 객체지향 프로그래밍(저자 : 강맹규)」라는 책을 빌렸다. '기운없음'과 이유를 알 수 없는 여러가지 정신적인 질병으로 인해 신체 및 정신 건강이 황폐해졌음에도, 느릿느릿, 지금 '제3장 함수' 부분까지 어거지로 읽어보았다.

그 중에서 인상적인 비유가 있어서 한번 올려볼까 한다. 참고로 이 비유는 fuction에서 call-by-value, call-by-reference, call-by-name(혹자는 call-by-value, call-by-reference라고만 하더라. 표현하기 나름인걸까.)에 대하여 설명하다가 나온 비유라서, 더더욱 인상적이었다.

참조자나 포인터를 전달하는 것이 좋은 경우에는 그 중에서 참조자를 사용하는 것이 바람직하다. 포인터는 위의 프로그램 예에서 보듯이 다소 복잡해 보이기 때문이다. (참조자는 함수에 변수나 객체를 전달할 때, 그리고 함수의 결과를 변수나 객체로 리턴할 때 주로 사용하게 된다. 포인터 대신 참조자를 사용할 수 있는 경우에는 참조자를 사용하는 것이 바람직하다. 포인터는 매우 강력한 능력이 있는 만큼 오류 발생 소지가 많으므로 반드시 사용해야 하는 곳에만 사용하도록 해야 한다. goto 문의 폐해를 막기 위해 제한적인 break 문을 사용하듯이 참조자도 포인터의 능력의 일부분만 사용하도록 고안된 것이므로 참조자를 애용해야 한다. 참조자로 충분한 곳에 포인터를 사용하는 것은 손톱 깎으려고 전기톱 사용하는 격이고, 전기톱으로 나무도 자르고 종이도 자르고 손톱도 깎고 머리도 깎는 격이다.)


과연 누가 전기톱으로 저런 일을 할까 싶을 정도로 끔찍한 비유랄까. 뭐, 저자가 아주 그른 설명을 한 것은 아니지만, 뭔가 이건 아니라는 생각이 든다.

덧>
이 책의 저자인 강맹규씨,
현재 한양대학교 안산배움터 공학대학 정보경영공학전공 소속 교수님이시란다 [..]
이런 과격한 교수님이 안산배움터에 계시다는 것이, 웬지 안심을 하게 하는 이유는 뭘까?;