서평

[남독] 이제 프로그래밍 문법 좀 할 줄 아는 것 같은데, 뭘 해야 하나?

작삼심일 2022. 4. 2. 11:22

쉽게 배워 바로 써먹는 디자인 패턴

처음 개발자는 어떻게 될 수 있을까를 생각해본다면, 당연히 프로그래밍 언어를 익히는 것이 1순위 일 것이다. 기본적인 변수의 타입을 시작으로 수많은 프로그래밍의 기본적인 지식을 익혔다면 과연 다음 단계는 무엇일까? 우리가 외국어를 배울 때를 생각해보면, 프로그래밍 언어에서의 문법은 외국어의 문법과 기능적으로는 비슷하다고 볼 수 있다. 사람과 의사소통을 위해선 공통된 약속인 알파벳으로 시작해서 의미를 제대로 표현할 수 있도록 단어를 나열하는 법 등등을 알아야지만 하나의 언어를 활용할 준비가 되었다고 볼 수 있다(물론 사람이라는 인터프리터, 해석가, 는 매우 유능하기에 적당히 틀려도 잘 알아듣기 때문에 완벽할 필요는 없다.) 문법만 다 익히면 과연 언어를 유창하게 활용할 수 있을까?

구글에서 영어 공부에 대한 검색 이미지 결과

구글에서 "영어 공부"라고 검색을 해보면 수 많은 검색 결과와 더불어 연관 검색으로는 "영어 표현", "영어자막", "영어문장", "영어회화"와 같이 실제 외국인들이 사용하는 영어를 따라 해 볼 수 있는 방식의 공부법이 많이 나오게 된다. 즉, 언어를 유창하게 하기 위해선 자주 사용되는 패턴을 익혀 내가 원하는 상황에 적절히 바꿔가며 사용하는 것이 나름의 방법이라고 볼 수 있다. 이러한 상황은 개발자들에게도 동일하게 적용이 된다. 혼자 개발하는 자그마한 프로젝트들은 크게 신경 쓰지 않아도 된다. 하지만, 카카오톡이나 배달의 민족, 쿠팡과 같이 수많은 사람들이 사용하는 복잡한 시스템을 갖는 프로젝트의 경우에는 유창한 프로그래밍 실력이 필요하게 된다. 이를 위해선 프로그래밍의 고수들이 제안해 놓은 디자인 패턴을 익혀 원하는 상황에 따라 유연하게 적용한다면 프로그래밍을 유창하게 잘해 보일 수 있지 않을까?

디자인 패턴에 대한 책들은 시중에 상당히 많이 나와 있지만 어디서부터 시작하면 좋을지 고민을 많이 해 보았다. <GoF의 디자인 패턴>, <모던 C++ 디자인 패턴>과 같이 바이블 같은 책들 부터 시작해서 최근에 한빛미디어에서 나온 <헤드 퍼스트 디자인 패턴>까지 하나하나 읽어보기엔 방대한 양의 도서가 있어 지인에게 추천받은 <쉽게 배워 바로 써먹는 디자인 패턴>으로 처음 접근해보기로 했다. 이 책의 경우 주로 백엔드에서 많이 사용한다고 알고 있는 php라는 프로그래밍 언어를 베이스로 디자인 패턴 실습 예제들로 구성되어 있다. 인공지능과 자율주행 필드에서 일하고 있는 나에겐 상당히 낯선 영역의 언어였지만, 그 이유로 이 책을 선택하게 되었다. 아무래도 낯선 언어를 베이스로 한 코드를 보며 나의 필드에 맞게 해석하는 연습을 하는 것이 기초를 익히기엔 더 좋아 보였기 때문이다.

책의 구성은 카탈로그 형식으로 24개의 디자인 패턴들을 생성/구조/행동 패턴이라는 세개의 카테고리로 먼저 구분해 놓고, 하위 패턴들을 열거해 놓았다. 각각의 패턴들에 대한 관계도도 언급하여 큰 그림을 보며 이해할 수 있었다. 또한 패턴이 등장하게 된 문제 상황으로 시작해 왜 이 패턴이 필요한지 충분히 납득이 갔고, 단계적으로 구현해 나가는 것을 따라 쳐보며 체득하기 좋은 구성으로 되어 있다.

<쉽게 배워 바로 써먹는 디자인 패턴>은 기본적으로 객체 지향 프로그래밍을 베이스로한 프로그래밍 언어의 기초적인 문법을 충분히 익힌 개발자가 그다음 단계로 넘어가고자 한다면 읽어보기 좋은 책이라 생각이 된다. 카탈로그 형식으로 되어 있지만, 각 패턴의 열거된 순서는 점진적으로 확장되기 때문에 첫 장부터 시작해 차근차근 실력을 키우기에도 좋다. 어느 정도 공부가 끝난 경우라면 익숙하지 않은 패턴에 대해선 필요한 부분만 찾아가면서 읽을 수 도 있다. 다만 php라는 낯선 언어가 필드에서 바로 적용해 보기엔 어렵겠지만, 디자인 패턴의 본질은 언어에 있는 것이 아니기에 스터디의 목적을 둔다면 충분히 유용하게 활용할 수 있을 것이다.

728x90
반응형