티스토리 뷰

 

실용주의 프로그래머
데이비드 토머스, 앤드류 헌트 (지은이)
정지용 (옮긴이)
김창준 (감수)
인사이트, 2022

 

2023년 작년, 운 좋게 개발자가 되었다.

아니다, 아직 문과 진학을 선택하기 전이었던 고등학교 1학년 이전에도 꾸준히 컴퓨터를 가지고 놀았던 기억이 있고, 전공을 포기하고 과감히 진로를 바꿨던 대학교 4학년 때부터는 본격적으로 취업을 위한 코드를 짰다. 그러니 정확히 말하면 운 좋게 개발로 돈을 벌 수 있게 되었다고 해야할 것 같다.

돈 받는 개발자가 된 지 4개월 차, 나는 '눈치'주의 프로그래머가 되었다. 책이나 강의를 통해 알기 어려운 것이 꽤 많고, 개인 프로젝트를 할 떄와는 환경도 많이 달라졌다.

우리 팀 서비스는 쪼개져 있어서 모놀리식 아키텍쳐라고 할 수는 없지만, 분명한 것은 MSA도 아니다. 다이어그램으로 그려보면 헥사고날보다는 쪼그라진 타이어에 가까울 것이다. (보통 이런 경우 이렇게 된 납득할 만한 사정이 있다) 이렇게 복잡한 서비스는 쿠버네티스와 Helm의 힘을 빌려서 간단하게 배포된다. (그치만 나는 쿠버네스트를 잘 몰라서 어떻게 배포되는 건지 아직도 정확히는 모른다)

그냥 재밌고 흥미로워 보이는 것을 만드는 게 아니라, 고객이 원하는 제품을 만들어야 한다. 이 말은 내 코드의 고객이 있고, 기한이 있고, 개발자 뿐 아니라 PM, 기획자, QA 분들과 함께 일한다는 것이다. (고객의 요구사항은 가끔 아주 창의적이어서 현재 DB 스키마와 비즈니스 로직을 떠올리며 얼어붙을 때가 있다. 팀장님과 PM님이 적절하게 조율해주시기는 하지만. 앗 두 분의 시각이 다를 떄도 있다.)

이것저것 눈치보면서 적응하기 급급한 요즘 우연히 마주친 책이 바로 <실용주의 프로그래머>였다. 이 책은 특정한 기술이나 설계 패러다임 자체에 대해서 설명하는 전문 서적이라기 보다는, 오히려 빠르게 변화하는 트렌드나 패러다임에서 벗어나 개발이라는 직무를 잘 '수행하는'데 있어서 필요한 공통적인 팁과 지식을 소개한다. (저자는 1판 서문에서 실용pragmatic이라는 말을 어떤 맥락에서 사용한 것인지 직접 의미를 풀어내고 있다.)

이 책은 여러 개의 짧은 항목들로 구성된다. 이를테면 능숙한 시니어 개발자가 쓴 탈무드 같은 구성이다. 1장 "실용주의 철학"에서는 개발자로서의 기본적인 마인드셋을 가르쳐주고 있다. 예컨대 "Topic 2 고양이가 내 소스코드를 삼켰어요"에서는 팀원간 신뢰와 자신이 작성한 코드에 대한 책임을 다룬다ㅡ코드가 날아가버렸을 때 말해서는 안되는 무책임한 핑계를 소제목으로 하고 있다.

"Topic 6 지식 포트폴리오"에서는 끊임 없는 배움의 필요성과, 최근 블로그 쓰기가 유행인 것처럼 지식을 포트폴리오의 형태로 수집하고 관리하는 팁을,  "Topic 7 소통하라!"에서는 개발자로서 다양한 사람과 다양한 목적의 소통을 하는데 필요한 팁을 제시한다. 전반적으로 실제 현장에서 경험할만한 사례를 바탕으로, 실제 시도해볼만한 현실적인 팁으로 구성되어 있어서 실질적인 도움이 된다.

후반으로 갈수록 설계와 코딩에 관한 직접적인 이야기들이 나온다. 쉘과 에디터를 능숙하게 다루는 것의 중요성부터, 디버깅과 테스트, 이벤트 드리븐, 함수형 프로그래밍 등. 개발하면서 경험하게 될 넓은 스펙트럼에 걸친 토픽들이 짤막하게 제시된다.

각 항목이 실제 사례를 들며 제안되는 경우가 많기 때문에, 공부하거나 시도해야하는 이유와 목적을 자연스럽게 이해하게 되고, 토픽 당 분량이 짧아 읽으면서 지치거나 늘어지지 않아서 좋다. 자칫 어렵고 따분해질 수 있는 이야기를 오히려 이러한 '탈무드'식으로 구성한 것이 이 책의 장점이자 이 책에서 말하는 실용주의 프로그래머의 정체성이기도 한 것 같다. 빠르게 훑으며 읽다가 내 상황에 도움이 되는 내용이라면, 그 토픽만 뽑아 더 자세하고 정확한 정보를 찾아보면 되는 것이다. 예제 코드의 경우 자바스크립트나 루비, 엘릭서 등 다양한 언어로 되어있는 것도 인상적이었는데, 이 역시 특정 기술에 종속되지 않고 핵심을 놓지지 않는 실용주의 정신과 맞닿아있는 것이 아닌가 싶다.

마지막 두 개의 토픽은 주니어 개발자로서의 열정에 불을 지핀다. "... 진정한 여러분의 직함은 문제 해결사다. 이것이 우리가 하는 일이고, 실용주의 프로그래머의 본질이다. 우리는 문제를 해결한다. (p. 404)" "실용주의 프로그래머는 책임을 회피하지 않는다. (...) 설계 혹은 코드를 맡는다면 자신이 보기에 자랑스러운 작품을 만들어 낼 것이다. 옛 장인들은 자신의 작품에 서명하는 것을 자랑스러워했다. 여러분도 그래야 한다. (pp. 404-405)" 다소 교조적인 어투로 쓰여졌지만, 실용주의라는 신조는 적어도 눈치주의 프로그래머로 4개월을 보낸 나에게 의미있는 울림을 준다. 2024년에는 1인분은 하는 개발자라는 소리를 들을 수 있도록.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함