사회 생활을 처음 시작하면 가장 힘든 것은 내가 잘하고 있는지, 아닌지 알 수 없다는 점이다. 옆에서 가르쳐주고 이끌어줄 수 있는 사수가 있다면 조언과 피드백을 받을 수 있겠지만 내 경우는 그렇지 못했다. 이번에 읽은 한빛미디어의 책은 <육각형 개발자>다. 나는 코딩을 하는 개발자는 아니지만 이 책에서 말하는 개발자들과 일해보기도 했고, 일의 흐름은 같기 대문에 많은 부분 공감을 할 수 있었고, 내가 주니어 시절에 이 책을 읽었다면 일을 하면서 조금 덜 스트레스를 받았을 것 같다.
책 <육각형 개발자>는 제목 그대로 개발자가 하나의 영역이 아닌 개발 전반에 걸쳐 시야를 넓히고 성장할 수 있는 방법을 본인의 경험을 기반으로 설명한다. <육각형 개발자>는 11개의 장으로 구성되어 있는데 첫 번째 장의 인트로를 제외한다면 각 장에서 주니어 개발자가 알아두어야 할, 필요한 정보들을 주제별로 이야기를 한다.
그 중에 내게도 좋았던, 인상 깊었던 장들을 몇 가지 소개를 하고자 한다.
2장 구현 기술과 학습
프로그래밍을 비롯하여 프레임워크, 플랫폼, 운영체제 등 개발자가 배워야 할 구현 기술이 무엇이고, 그 중 무엇을 배워야 할 지, 어떻게 배우면 좋을지 본인의 경험에 빗대어 설명한다. 단순히 배우는 것은 누구나 할 수 있지만 저자가 선배로서 효율적인 학습전략을 제시하여 수 많은 기술들 중 무엇을 어떻게 취해야 할 지 이야기한다.
4장 코드 이해
개발자는 보통 기능 변경이나 구현을 위해 기존 코드를 보는데 개발 시간의 60% 정도를 할애한다고 한다. 개발 시간을 줄이기 위해선 코드를 이해하는 시간을 줄이는 것이 효율적인 방법인데, 그러기 위해선 1) 코드를 제대로 이해하는 능력, 2) 이해하기 쉬운 코드를 작성하는 능력이 필요하다.
이를 위해 코드 시각화 도구인 다이어그램이나 함께 모여 보기, 이해하기 쉬운 코드를 작성하는 추상화 수준을 맞추거나 변수를 줄이는 등의 팁을 다룬다.
6장 리팩터링
오랜 시간 라이브 중인 서비스를 담당 중이라 공감이 많이 갔는데, 레거시에 대한 정의와 어떻게 받아들여야 하는지, 그리고 리팩터링을 할 때 어떤 점들을 주의해야 하는지 이야기를 하면서 클래스 추출, 클래스 분리, 파라미터값 정리와 같은 본인이 알고 있는 팁들을 다루고 있다.
9장부터는 프로그래밍 뿐만 아니라 회사에서 일을 하면서 누구에게나 적용될 수 있는 마인드셋과 노하우들을 다루고 있다. 9장은 업무 관리고, 10장은 정리하고 공유하기, 11장은 리더와 팔로워다.
흔히 개발자라고 하면 코딩만 하는 것을 상상할 수 있는데, 어쨌든 혼자 일을 하지 않는 이상 큰 궤는 회사에서 일하는 일반적인 근로자와 같다. 본인에게 주어진 업무를 적당한 스케줄로 구성할 줄 알아야 하고, 중간중간 변경되는 요구사항도 유연하게 대응할 수 있어야 한다. 또한 동료나 상사에게 업무 내용을 공유, 보고할 수 있도록 페이퍼워크도 요구된다. 어느 정도 경력이 차면 팀장과 같은 관리자가 아니더라도 주니어를 관리해야하는 상황이 생기는데 이건 혼자 잘하는 것과는 또 다른 영역이다. 각각의 내용에 대해 세밀하진 않지만 책의 취지 자체가 육각형 개발자가 되기위해 전반적으로 뭘 해야 하는지 알려주는 것이라 무엇을 알아야하는지에 대해선 충분히 설명이 될 듯 싶다.
코딩을 하는 개발자는 아니지만, 같은 업계에서 일하는 입장에서 알아두면 좋고, 배워두면 좋을 내용들로 구성된 책이었다. 그들이 무엇을 고민하고 있는지, 해야 하는지 알게된다면 주니어 기획자 입장에서도 큰 도움이 되리라 생각한다.