‘포사(POSA)’라는 약칭으로 널리 알려진, 이 번역의 원서인『Pattern-Oriented Software Architecture, Volume 1: A System of Patterns』는 지금으로부터 11년하고도 반년 전인 1996년 8월에 출간되었습니다. 2007년 ‘POSA 5’에 해당하는『Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages』의 발간으로, 모두 다섯 권분량의 POSA 시리즈는 약11년 동안의 긴 노정을 끝으로 대단원의 막을 내립니다. POSA 5의 서문에서 저자들은, POSA 1 집필 당시 언급했던 ‘패턴 언어(pattern language)’라는 시도를 전체 시리즈를 통해 보여 주었으며 최초 기획했던 목표를 달성했음을 밝히고 있습니다. 물론 저자들의 성과에 대해 동의하는 독자도 있는 반면, 동의하지 않는 독자도 있으리라 생각됩니다. 저자들의 목표는 이 세상에 있는 모든 소프트웨어 패턴을 사전처럼 수집하거나 관련 담론들을 모조리 정리하는 데 있지 않았습니다. 개별 패턴에 대한 구체적인 설명보다는 ‘패턴 간의 관계’와 ‘패턴의 개념’에 주목하면서 ‘패턴 언어’라는 세계를 입증해 내려는 시도가 그들의 목표였습니다.
지금 이 글을 쓰고 있는 2008년 벽두, ‘GoF의 디자인 패턴’을 낯설게 여기는 IT 업계 종사자는 거의 없으리라 생각합니다. 에리히 감마(Erich Gamma)를 위시한 소위 ‘GoF(Gang-of-Four)’라는 네 거장의 의기투합으로 1994년 『디자인 패턴(Design Patterns)』이 세상에 선보인지 어언 13년이지 났습니다. 이『디자인 패턴』의 한글 번역서가 출간된 2002년부터 계산해보더라도 벌써 5년 반이 되어옵니다. 이제는『디자인 패턴』의 내용을 다룬 설명서나 응용서도 서점 서고의 한 코너를 차지할 만큼 여러 종류가 나왔습니다. 결정적으로『디자인 패턴』을 쉽게 접근하는 데 가장 성공한 초유의 베스트셀러, 『Head First Design Patterns』의 출간은 바야흐로 디자인 패턴의 대중화 시대를 열었다고 평가할 만합니다. 영어권의 많은 독자들, 그리고 원서로 POSA 시리즈를 접한 국내 독자 대부분은 ‘POSA 1’과 ‘GoF의 디자인 패턴’을 비교하곤 합니다. 이 두 책을 두고서 우열을 가리기도 하고 선후를 따지기도 합니다. 혹은 상호보완을, 혹은 비교불가를 주장하기도 합니다. 평가의 다양한 시각은 대체로 개인의 학습경험과 목적에 따라 다양하게 나타납니다. 어떤 비교의 시각이 옳은지에 대해서는 잠시 접어두고서 이런 비교 심리의 근저에 주목한다면, 그 만큼 두 책이 가진 영향력과 파장이 강력하다는 사실을 반증한다고 하겠습니다. 마치 이종격투기에 열광하는 심리처럼 비교 자체가 불공정함에도 불구하고 기어이 양자를 한 자리에 대결구도로 세우려는 욕망을 부추길 정도로 말입니다. 논거가 불공정하면 불공정할수록, 분위기가 극단적이면 극단적일수록, 관람객이 많으면 많을수록, 논쟁은 빠르게 양자의 차이를 드러내주면서도 다시 접점을 향해 치닫습니다. 영어권에서 거의 10여년에 걸쳐 진행된 두 책에 대한 비교평가 과정을, (비록 과격 양상을 보이고 인신공격성 발언이 난무하더라도) 국내에서는 소모적인 갑론을박을 10개월 정도로 압축해준다면 더 할 나위없을 것입니다. 그런 양상의 논쟁 흐름은 (그야말로 누군가가 심하게 상해를 입는 경우만 아니라면) 차라리 생산적이고 패턴에 대한 우리의 성숙도를 한 단계 올려 줄 것이기 때문입니다.
‘고전(classic)’이라 칭송되는 지적 업적들은 그것이 받아들여지는 시기마다 다양한 관점에서 상이하게 평가됩니다. 기본적으로 고전의 주요한 특징 중 하나로 우선 보편성을 꼽습니다. 하지만 지나치게 보편성에 무게가 실릴수록 개인의 상상력과 창조력을 억제시키기 마련입니다. 해석의 다양성마저 거세된 보편적 지식은 수용자의 입장에선 수동적인 숙지(熟知)의 대상일 뿐이지 능동적인 반성(反省)의 대상은 아닙니다. 진정한 고전은 (고전의 저자가 내심 그런 의도를 가지고 작성했든 그렇지 않고 작성했든 여부와 상관없이) 각 시기의 정신적 패러다임이 변해감에 따라 풍부하게 반성될 여지를 지니고 있어야 합니다. 고전의 내용은 시대마다 국가마다 문화마다 각기 다른 수용 여건에 따라 스스로 생명력을 얻어 자가발전과 자가증식을 해나가며, 유사한 해석을 시도하는 수용자들끼리 담론을 형성하고 각기 다른 해석을 하는 수용자들 간에 대해 논쟁을 유발시킵니다. 결국 최초 내용 자체는 수용자들의 능동적인 해석과 그에 따른 행동을 촉발시키는 계기가 되며 새로운 무엇인가를 생성시키는 창조력의 근원이 됩니다. 고전의 이런 특징을 가리켜 ‘열린(open) 텍스트’라고 합니다. 대게 런 고전들은 그 자체로 명징하게 ‘뼈대’를 이루었음에도 불구하고 수용자의 시각과 의도에 따라 풍부한 ‘살’을 붙여나갈 수 있는 상상력의 여지를 남겨줍니다. 그러므로 진정한 고전에 대한 평가는 항상 현재진행형입니다. 지속적으로 회자되고 재해석되며 재평가됩니다. 어제 내려진 평가는 오늘 다시 재고되고 내일 다시 비판됩니다.
이 책에서 다루고 있는 패턴들 중 일부는 이미 자가발전과 자가증식의 과정을 거치면서 원형으로부터 그 유사성을 파악할 수 없을 만큼 무섭게 발전해가고 있습니다. 어떤 일부는 특정 소프트웨어 시스템 내의 기본 구성요소처럼 혹은 특정 프로그래밍 언어에서 제공하는 기능처럼 인식될 만큼 보편화되었습니다. 이렇듯 출간된지 11년 반이 되어오는 이 책의 내용 자체를, 현재 시점에서 액면가 그대로 접근하는 시각은 분명 시대착오적인 태도일 것입니다. 그렇다고 반대로 '고고학적' 시각으로 접근해야 한다는 의미는 아닙니다. 적극적으로 과거와 질문하고 대화하면서도 현재 각자 나름의 목표, 위치, 수준에 맞게 능동적으로 상상력과 창조력을 발휘하는 태도야말로, 패턴의 창시자인 크리스토퍼 알렉산더가 주창하는, 그리고 POSA 저자들이 시도했던 ‘패턴 언어’를 구사하는 수사법이라 생각합니다.
소프트웨어 세계에서 패턴이 본래 한 개인의 창조물이나 소유물이 아니듯 이 번역서 역시 제 개인 혼자만의 작업이 되지 않기를 기대했습니다. 번역 의뢰를 받았을 당시부터 공동작업을 진행하기 위해 회유와 협박으로 주변 지인들을 집요하게 괴롭혔으나, 아쉽게도 조기 무산되거나 중도 하차를 겪고 말았습니다. 악전고투 끝에 번역 초벌을 마무리한 시점에 이르러서야 데브피아(www.devpia.com)의 아키텍처(Architecture) 포럼 내 Eva 팀과 인연이 닿았습니다. 첫 단추를 제대로 끼웠어야 옳았겠지만 마지막 단추에서라도 다시 추스를 수 있었으니 천군만마를 얻은 심정이었습니다. 손영수님을 필두로 한, 아키텍처 포럼 내 Eva 팀에서는 그동안 수차례 POSA 1 원서를 가지고 스터디를 진행해왔습니다. 이분들을 중심으로 POSA 감수팀이 구성되었고 그동안 쌓인 공력을 여실히 발휘하면서 제 번역의 문제점들을 꼼꼼히 지적해주셨습니다. 모래에서 사금을 ‘모조리’ 채취해내는 일보다 쌀을 일어 쭉정이를 ‘남김없이’ 걷어내는 일이 어쩌면 더 불가능에 가까울지 모릅니다. 제 번역 초벌 속에 흩뿌려진 오역들을 ‘완전히 ’걷어내는 일은 감수팀에게 맡겨진 본래 역할은 분명 아닙니다. 엄밀히 말해 검수자(檢收者)란 품질의 수준을 평가하는 역할을 맡고, 감수자(監修者)는 책 전체의 방향을 지도하고 감독하는 역할을 맡는 것이지, 품질의 수준을 상향시키는 역할은 어디까지나 번역자의 책임입니다. 그럼에도 불구하고 POSA 감수팀 여러분은 역자와 함께 품질 향상에 직접 노고를 들였으니, 독자이자 검수자, 감수자, 심지어 공역자의 역할까지 감내해주셨습니다. 책에서 다루는 주제의 깊이와 폭에 허우적대다 자맥질 끝에 수차례 마셔버린 오역의 물을 게워내도록 도와주신 Eva의 POSA 감수 팀 여러분께 감사의 말씀을 전합니다. 결과적으로 책이 간직한 원석을 잘 세공해 매끄럽게 전달한 부분들은 모두 이분들의 공로입니다. 그럼에도 원석의 거친 단면을 그대로 드러내 불쾌함을 전달한 부분들은 어디까지나 제 불찰입니다. 행여 오역으로 인해 제가 받아야할 비난의 화살이 Eva 팀원들게 돌아가는 누를 끼치지 않길 바랍니다
--- 역자의 말