불필요한 Indirection을 없앨 것

소프트웨어 개발에서 많은 부분이 indirection을 통해 해결됩니다. 그런데 때로는 indirection을 지나치게 남용해서, 프로그래밍을 더 복잡하게 할 때가 많습니다.

이렇게 indirection이 불필요하게 등장하는 주된 이유는, 프로그래머가 상황을 미리 대비하려고 하거나 좀 더 우아한 설계를 추구하기 때문입니다. 지금 할 수 있는 일만 잘 할 수 있게 코드를 최소한으로 짜 놓으면, 군더더기 indirection 코드는 생기지 않습니다.

간단한 예를 들어 보겠습니다. A 클래스가 B 클래스의 함수를 호출하는데, 호출 전에 B의 정보에 따라 어떤 처리를 해야 할 때가 가끔 있습니다. 그 처리를 A나 B에서 하는 게 맘에 들지 않는 프로그래머라면, A와 B 사이에 중개인 역할을 하는 C 클래스를 만들어 A가 C를 거쳐 B에 명령을 내리려고 할 것입니다. 그러나 C가 실제로 하는 일이 거의 없다면, C는 단지 명령을 전달하는 역할을 할 뿐이고 B가 바뀔 때마다 C도 바꿔야 하는 불편함만 따릅니다. 이럴 때엔 그냥 A나 B에서 C의 역할을 하는 게 코드 양을 줄일 수 있습니다.

문제는 가능한 한 쉽게 해결해야 합니다. 따라서 indirection은 꼭 필요할 때만 사용해야 합니다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중