1996년, OOPSLA 라는 이름의 객체 지향 프로그래밍 컨퍼런스에서는 아주 이상한 일이 벌어집니다. 소프트웨어 개발자들이 잔뜩 모인 이 컨퍼런스의 기조 연설을 한 건축가가 맡게 된 것입니다. 이게 얼마나 이상한 일이었냐면, 강단위에 선 그 건축가 마저도 자신이 이 자리에 서게 된 데에 어리둥절해하고 있었습니다.

“음, 이건 제게 정말 이상한 일인데요. 여기 계신 수많은 분 앞에서 제가 연설을 하고는 있지만 저는 여러분이 하는 일에 대해서는 아무 것도 아는 바가 없습니다.”

어째서 소프트웨어 개발과는 관련이 없는 건축가가 개발 컨퍼런스의 기조 연설을 맡게 된 것일까요?

사실 이 건축가의 이름은 크리스토퍼 알렉산더로, 1977년 <A Pattern Language> 라는 책을 출간한 적이 있었습니다. 이 책은 건물과 도시의 디자인을 설명하고 문서화하는 데에 패턴 언어라는 것을 사용하자고 제안하는 내용이었는데요. 그가 제안했던 패턴 언어를 한 문장으로 설명하면 ‘특정 컨텍스트(A)에서 어떤 문제(B)를 해결하기 위한 솔루션(C)‘을 정리해놓은 것입니다.

그리고 이 아이디어에 영감을 받은 커닝햄과 켄트 벡이 소프트웨어 개발에 패턴 언어를 접목시키면서 오늘날 개발자들이 말하는 디자인 패턴이 만들어지기 시작했습니다.

이 내용은 제가 이번에 집필하게 된 <시작하는 개발자들을 위한 기술 여행 가이드> 라는 책의 일부를 가져온 것입니다. 디자인 패턴에 대해 풀어놓은 4장에서 크리스토퍼 알렉산더가 건축 분야에서 처음으로 제안하게 된 패턴 언어에 대해 설명하고, 이것이 소프트웨어 개발 업계로 넘어오면서 어떻게 발전하게 되었는지, 왜 패턴이 유용하며 어떻게 사용해야 하는지를 가능한 쉽게 풀어내었습니다.

물론 디자인 패턴에 대해서만 다룬 책은 아닙니다.

책은 크게 3부로 나누었는데요.

1부에서는 코드에 대한 이야기를 주로 다루었습니다. 좋은 코드의 기준과 버그, 그리고 그 버그를 잡아내는 디버깅에 대해서 다루었고, 버전 관리 시스템과 여러 프로그래밍 언어에 대한 이야기로 구성했습니다.

2부에서는 환경에 대한 이야기를 풀어놓았습니다. 서버 환경과 클라우드, 웹, 데이터베이스가 어떤 흐름으로 오늘날에까지 이르게 되었는지를 이야기했습니다. 그리고 모니터링, 코드 파이프라인, 마이크로서비스 등에 대해서도 다루었습니다.

3부는 개발자라는 직업을 가지고 있는 우리의 이야기입니다. 우리는 왜 코드에 이토록 뜨거운 열정을 품고 있는지, 어떻게 성장하면 좋을지, 좋은 팀을 만들기 위한 방법, 오픈소스 정신, 그리고 마지막으로 경력직으로서의 이직에 대한 이야기도 담았습니다.


목차 소개를 보시면서 참 잡다한 주제들을 많이도 우겨넣었구나 싶으실지도 모르겠습니다. 실제로 다양한 주제를 다루고 싶었습니다. 이제 개발자로써 막 여행을 시작하는 주니어 개발자들이 앞으로 수도 없이 만나게 될 개발자로서의 여정에서의 키워드들을 가능한 넓고 다양하게 담았습니다.

다양한 주제를 담은 만큼 깊고 자세하게 파고들지는 않았습니다. 그 부분은 이 책을 읽는 독자들의 몫이니까요. 이 책은 그저 시작하는 개발자들이 성장하면서 만나게 되는 키워드들에 대한 흐름과 개념을 알려주는 책이 되었으면 좋겠다고 생각하며 원고를 써나갔습니다.


<시작하는 개발자들을 위한 여행 가이드>는 이제 막 예약 판매를 시작하여 11월 10일에 정식으로 출간됩니다. 예약 판매 링크는 아래를 참고해주세요.


당초 300페이지 정도로 계획하고 원고를 써내려가기 시작했지만 이런 저런 내용을 알차게 채워넣으려다보니 600페이지가 넘는 두꺼운 책이 되어버렸습니다.

처음으로 집필한 책이니만큼 새벽잠을 줄여가면서 열심히 썼고, 부디 많은 분들에게 읽히는 책이 되었으면 좋겠다는 생각이 들어 소개글을 주저리 주저리 써봅니다.