|
자바나 C++ 같은 프로그래밍 언어를 사용하다가 루비나 얼랭(erlang) 같은 동적인 언어를 사용하면서부터 늘 하게되는 생각 중 하나는 "이보다 더 나은 방법은 없을까?" 하는 것입니다. 객체지향 언어를 사용하면서부터 전가의 보도처럼 여겨온 GoF의 디자인 패턴도 그 중 하나일 것입니다. 왜 꼭 이 방법이어야 할까? 뭔가 다른 방법이 있지 않을까? 그렇지만 나름대로 다른 방법들을 찾아 사용하다가도 갑자기 예전의 방식이 떠오르거나, 문득 누군가 다른 사람이 짜놓은 코드 속에서 GoF의 흔적을 발견할 때면, 지금 내가 가고 있는 길이 정도(正道)를 벗어난 것이라는 불안감과 의구심에 휩싸이곤 하죠. 그 이면에 자리잡고 있는 게 바로 "지혜의 간극(wisdom gap)" 이라네요. 무언가 새로운 것이 출현하고 그게 사람들 사이에 받아들여져 최선의 사용 패턴이 생겨나기까지의 시간 격차를 그렇게 부르는군요. 그런 의미에서 Russ Olsen의 Design Patterns In Ruby는 지혜의 간극을 발견하고 좁혀나가는 길을 열어준 책이라 할 수 있습니다. 무엇보다도 책의 마지막 결론이 맘에 들어 인용해 봅니다.(이 책이 아직 국내에서 출간되지 않은 관계로, 그리고 아마 앞으로도 오랫동안 번역되어 출간될 가능성은 없을 거란 판단에, 임의로 번역하여 인용하였습니다. 혹 저작권과 관련하여 문제의 소지가 있을 경우에는 언제든 내리도록 하겠습니다.)
"긴 여정이었다. 우리는 이 책에서 Template Method 패턴이 제공하는 메서드 오버라이딩부터 시작하여 관례(convention)에 따라 동적으로 클래스를 로드하는 법까지 살펴 보았다. 그러는 가운데 우리는 오리-타입에 기반한 루비 언어의 동적인 특징들이 많은 프로그래밍 문제들을 해결하는데 있어 어떠한 변화를 가져다 주는지 보았다. 만약 우리가 어떤 클래스 속에 깊숙이 자리잡고 있는 알고리즘을 다양하게 가져가려 한다면, Strategy 객체를 구현할 수도 있지만 단지 그냥 코드 블럭에다 던져넣을 수도 있다. 위임(delegation)에 상당 부분 의존하고 있는 Proxy나 Decorate 패턴을 구현하는 것도 더는 상투적인 코드들을 기계적으로 만들어 내는 것이 아니다. 루비의 동적이면서도 반영적인 특징들은 전통적인 Abstract Factory와 Factory Method 패턴의 상속과 연관된 한계들을 뛰어 넘는 팩터리 개념을 제공한다. 아무데서나 인터페이스를 조정할 수 있는 언어에서 Adapter는 더 이상 문제가 되지 않는다. 루비에서도 외부 반복자(external iterator)를 이따금씩 사용하기는 하지만, 대세는 내부 반복자(internal iterator)이다. 내부 도메인 특정 언어(internal domain-specific language; 역주 - external DSL에 대응하는 개념) 기법 덕택에 우리는 루비 인터프리터 그 자체를 인터프리터를 만들 때 파서로서 사용할 수 있다.
|
by thinkr 카테고리
최근 등록된 덧글
음 제 경우 지금 메모리..
by 서울비 at 10/25 새 버전이신가 보네요,.. by 연안부두 at 10/22 CPU 사용량이 엄청나군.. by 오스카 at 10/22 드롭박스 깔고 팬이 자주.. by 백일몽 at 10/22 다른 개발자분이 작업하.. by GreatDG at 10/22 최소 3대는 해봐야겠더.. by 펭도 at 10/21 browsershots 같은 .. by thinkr at 10/21 예전에 그런 서비스를 .. by 몰아저씨 at 10/21 예. 물론 그 방법도 있.. by thinkr at 10/21 vmware나 virtual box .. by 이상훈 at 10/21 최근 등록된 트랙백
라지엘의 느낌
by laziel's me2DAY 우리는 언제나 창작과 .. by 시답잖은 지식과 개똥철학 월아, 알고리즘 by Read & Lead 우엉의 생각 by oldtype's me2DAY 졸음을 깨우기 위해 재미.. by jack in the box 이젠 업그레이드인가.. ra.. by Always Renewal 제로안의 생각 by zeroan's me2DAY 아샬의 생각 by ahastudio's me2DAY 구글사이트 접속차단 by P-camp & 대안언어축제.. 펭도의 생각 by pengdo's me2DAY 메모장
| |||