본문 바로가기

책을 보다

[리뷰] 느슨하게? 유연하게! <쉽게 배워 바로 써먹는 디자인 패턴>

디자인 패턴.
유명하지만 실제로 읽어본 사람을 만나는 게 쉽지 않은 고전처럼, 많이 들어 봤고 몇몇 패턴은 실제로 사용하지 있지만 24개 패턴을 모두 접해본 사람은 많지 않다고 생각합니다.

많은 경우 몇 가지 패턴 사용에 익숙하다고 생각합니다. 자신이 사용하는 코드가 디자인 패턴에 분류되어 있는지 모르더라도 말이죠.
왜 그렇게 사용하지는 어렴풋이 알고 있고, 어떻게 사용하지는 알고 있으며 잘 쓰고 있는 겁니다.


우리는 자신을 계발하고자 하는 욕구가 있습니다. 좀 더 나아지고자 합니다. 경험을 통해 앞으로 나아가지만 한편으로는 늘 아쉬움을 느낍니다.
그래서, 다른 사람들은 어떻게 하고 있는지, 내가 사용하는 방식이 맞는지, 모르는 부분은 어디인지, 조금 더 잘하려면 어떻게 해야 하는지 알고 싶어 합니다.

다들 비슷한 생각을 가지고 있는 가운데 생각을 행동으로 옮기신 분들이 계십니다. 그들 덕분에 우리는 디자인 패턴이라는 개념을 만날 수 있게 되었습니다.
그들이 찾아서 모아놓은 24가지 패턴.
먼저 만나본 이들은 그 패턴들로 인해 감탄하였고, 개발과 유지보수가 훨씬 우아해졌습니다. 그리고 자신의 그러한 경험을 나누고자 하는 이들이 많아지면서 디자인 패턴은 유명해졌습니다.

너무 유명해졌기 때문일까요, 디자인 패턴이 개발자가 넘어야 할 허들이나 퀘스트처럼 인식되기도 합니다.
알고 싶어 하면서 동시에 부담스러워하는 이름이 되어 버렸습니다.

지켜야 하는 규칙이라면 행동에 제약을 받을 수밖에 없습니다. 하지만, 시각을 조금 바꾸어 따라야 하는 규칙이 아니라 추구하는 가치라고 인식하면 어떨까요?


너무 깊이 들어가지 않습니다. 이제 슬슬 알고자 하는데 너무 깊이 있는 설명이 추가되면 질리거나 거부감을 느낄 수 있는데 그런 부분이 없습니다.

기본이 되는 개념을 계속 상기시킵니다. 조금 반복이 있다고 느낄 수 있으나 각각의 패턴을 설명한다고 생각하면 이해가 가는 부분입니다. 
디자인 패턴을 설명하는 책의 특성상 특정 패턴을 골라서 읽는 경우가 많을 수 있습니다. 그렇기에 이 정도는 알고 있다고 가정하고 해당 부분에 대한 설명을 생략하고 패턴 설명에만 집중하면, 패턴이 디디고 서있는 객체 지향의 해당 부분이 단단하지 못해 패턴마저도 흔들리는 상황을 만날 수 있기 때문입니다. 각 패턴을 독립된 하나의 강의 노트라고 보시는 것도 괜찮을 것 같습니다.

비슷한 패턴과 비교하는 부분을 두어 헷갈리지 않도록 합니다. 패턴을 접하다 보면 비슷하다는 느낌을 많이 받습니다. 이렇게 비교하는 부분이 해당 패턴을 더욱 이해할 수 있게 해 줍니다. 차이가 본모습을 또렷하게 만듭니다.

간단한 샘플이나 실무에서 만날 법한 코드를 예로 들어 설명합니다. 설명만으로는 이걸 어디에 쓸지 막막하더라도 코드를 보면 어떻게 활용할지 감을 잡을 수 있습니다.


24개의 패턴을 본 뒤 책을 덮으면 객체 지향의 또 다른 원칙인 SOLID를 다시 보게 됩니다.
단순히 머릿글자만 모아놓은 게 아니라 그 순서에서도 의미를 보실 수 있으리라 생각합니다.


객체 지향하면 떠오르는 단어들이 있습니다.
책임, 관계, 의존, 상호 작용, 느슨한 결합 등.

이 책에서는 ‘느슨하게’를 반복하여 얘기합니다. 
관계의 결합을 느슨하게,
구조의 확장을 느슨하게,
상호 작용을 느슨하게.

‘느슨하게’는 딱 와 닿지 않습니다. 개념으로만 봤을 때, 우리말에서 맞는 말을 찾기가 어렵습니다.

제가 생각하는 ‘느슨하게’는 풀어헤쳐져 널브러져 있는 상태에 가깝습니다. 어쩌면 유연하게 가깝지 않나 생각합니다.
흐물흐물한 것을 유연하다고 하지 않습니다. 오히려 힘을 가진 가운데 부드러운 상태를 유연하다고 생각합니다.

힘을 나름의 규칙이라 생각할 때,
부드럽다는 건 규칙을 가지고 상황에 대응하는 것이라 볼 수 있습니다.
그래서, 전체를 봤을 때 그 규칙이 보입니다.
마치 카드 섹션이나 콘서트의 떼창처럼.


느슨하기보다 유연하게

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형