1 … 들어가는 글
55
시키는 도구들이라고 할 수 있겠다. 그러므로 이런 경우에는 패턴을 적용할
때 당신이 선호하는 종류의 문제들을 선택하게 만드는 것이 요령이다.
이 책은 ‘패턴 언어’의 틀로 구성되어 있다. 패턴 언어란 특정한 분야에서
흔히 발생하는 문제를 다루는 한 묶음의 서로 연관된 해법들을 일컫는 말
이다. 패턴 언어의 기원은 크리스토퍼 알렉산더
Christopher Alexander
가 쓴 『 A
Pattern Language』라는 책인데, 거기서 그는 부엌, 집, 도시, 심지어는 사회
체계에 이르기까지 어떤 것이든지 설계할 때 참고할 수 있는 250여 개의 패
턴들을 기술하였다. 1990년대에 워드 커닝엄과 켄트 벡이 이런 패턴 언어
를 소프트웨어 업계로 도입하였는데, 그 결과로 디자인 패턴에 대한 수많
은 글과 책이 쏟아져 나왔고, 컨퍼런스들이 개최되었다. 소프트웨어 디자
인 패턴에 대한 책 중 가장 유명한 것은 ‘The Gang of Four’가 쓴 『Design
Patterns』
20
이지만, 패턴 ‘언어 ’ 의 예로는 마틴 파울러의 『Refactoring』
21
이 더
나은 것 같다. 분명, 당신이 지금 읽고 있는 이 책은 소프트웨어 설계에 대한
책은 아니다. 이 책은 당신이 소프트웨어 개발 분야에서 어떻게 경력을 시작
할지 설계하고 이 분야에서 탁월한 개발자가 될 수 있도록 자기 자신을 세
우는 일에 관한 책이다.
패턴들은 어디서 비롯되었는가?
좋은 소프트웨어 프레임워크를 설계하는 원칙 중 하나는 실제로 작