본문 바로가기
책 리뷰/개발서적

[개발서적] 소프트웨어 장인정신 리뷰

by 아년규 2023. 12. 15.
반응형

리뷰 시작에 앞서, 이 글은 2021년 전 직장에서 근무할 당시 스터디를 진행 하면서 작성한 스터디 리뷰로 사내 아지트에만 작성 되어있었던 글이다. 다시 보면서 2년 전 느꼈던 점을 지금 실천하고 있는지 돌아보는 계기가 되었던거 같다.

 

소프트웨어 장인 정신 표지

 
이 책은 평범한 개발자가 개발자로서 수십년을 살아오면서 겪은 경험담과 조언들을 정리한 책이였다.
사소한 부분부터 시작하여 장인이 되기 위한 방법, 장인으로서의 태도 등 여러가지 내용들을 알려준 알찬 책 이였다. 그 중에서도 기억에 남는 부분 몇가지를 정리 해보았다.
 

"대장장이가 온 힘을 다해 공예품을 만들듯이 개발자도 부끄럽지 않은 소프트웨어를 만들어야 한다."

 
이 책에서 나왔던 문구 중 하나이다. 유지보수가 어렵고 알아보기 힘든 쓰레기가 아닌, 장인으로서 작품으로 만드는 것이 우리의 사명이라고 하였다.
 
소프트웨어 장인정신이란 무엇인가? 소프트웨어를 일종의 공예 작품으로 보아 소프트웨어 개발자를 중세 대장장이에 비유한다. 장인에 밑에서 배우는 도제(연습생)는 숙련된 대장장이 밑에서 배우면서 장인의 수준에 오르게 된다. 개발자가 스스로 선택한 커리어에 책임감을 가지고, 지속적으로 새로운 도구와 기술을 익히겠다는 마음가짐이다.
 
소프트웨어 장인은 스스로가 만든 것에 대한 애정과 자부심을 가져야 한다. 더 나은 개발자가 되기 위해 일 평생을 가져야 한다.
 
내 커리어의 주인이 되자
 
스스로 발전 시키기 위해 시간과 돈을 투자해라. 이 부분에서 살짝 반성하는 계기가 되었다. 지난 일년간 나는 발전하기 위해 최선을 다했는가? 물론 노력 했지만 최선을 다했는가에 대한 질문에는 대답을 못할 것 같다.
 
커리어의 주인이 되기는 어려운 일이다. 소프트웨어 장인으로서 성공적인 커리어를 가지려면 결단력과 열정이 필요하다. 집중하지 못하면 많은 노력들이 낭비된다. 새로운 것을 배우고, 시대에 뒤쳐지지 않으려면 시간을 효율적으로 사용해야 한다.
 
'아니요'라고 말하는 방법
 
불합리한 일정이 잡힌 일에 대하여 아니라고 말할 수 있어야 한다. 상급자에게 반박하는 것이 무서워서 또는 모든 기능을 구현하여 영웅이 될 수 있다는 망상에 사로 잡히는 것은 장인으로서의 태도가 아니다. 아닌 것은 아닌 것이고 아니요 라고 말할 수 있어야 한다.
 
리펙토링
 
매 스터디 마다 리펙토링에 대한 내용은 한번씩 나왔던 것 같다. 이 책에서는 실용주의적 관점에서 리펙토링을 언급했다. 리펙토링을 위한 리펙토링은 시간낭비다. 할 일이 없어서 시간이 남아 도는 것이 아니라면, 특별한 이유도 없이 코드를 열어서 재정리 하는 일은 아무런 의미가 없다.
 

"떠날 때는 찾을 때 보다 캠프장을 더욱 깨끗이 하라."

 
보이스카웃 원칙이다. 처음 발견했던 것 보다 더 깨끗하게 하라는 뜻이지 캠프 전체를 혀로 핥아도 될 정도로 반짝반짝하게 만들라는 뜻은 아니다. 레거시 코드를 발견 한다면 실용주의적 관점에서 리펙토링 하는 것이 중요하다.
 
소프트웨어 장인의 길
 
책에서는 장인이 되는 길에 대하여 한 문구로 말하였다. "열정" 소프트웨어 장인은 개발과 자신의 직무에 대하여 또 문제를 쉽게 풀기 위하여, 초보를 가르치며 자신의 경험을 공유하는 모든 것의 열정적이여야 한다. 또 몇년이 지나도 겸손해야 한다. 항상 배울 자세를 지녀야 한다.
 
새로운 것의 대한 도전을 두려워 하지 않으며 코드 작성이 아닌 문제 해결에 집중해야 한다.
장인은 자신이 떠난 후 스스로 부끄러울 일들을 남기지 않는다. 자신 외에는 아무도 이해할 수 없는 코드로 하여금 남은 사람들에게 지탄을 받을 일을 만들지 않는다.
반응형