귀퉁이 서재
[산드로 만쿠소] 소프트웨어 장인 본문
이 책은 제목 그대로 소프트웨어 장인이란 무엇이고, 소프트웨어 장인이 되기 위해서는 어떤 자세를 취해야 하는지에 대해 말해준다. 기술적인 부분뿐만 아니라 이념과 태도에 대해서도 다루고 있다. 소프트웨어 엔지니어로서의 삶의 자세에 대해 광범위하게 언급하고 있다. 저자인 만쿠소의 경험에 빗대어 설명을 하니 내가 직접 경험해보지 못했어도 실제처럼 느껴지는 부분이 있었다.
저자는 소프트웨어 엔지니어로서 굉장한 사명감과 자부심을 가지고 있다. 소프트웨어 엔지니어는 단순히 코드를 작성하는 코더, 월급 받는 노동자와는 다른 차원이다. 끊임없이 자기 계발을 하고 더 나은 프로그램을 만들기 위해 고심하는 사람이다. 누구나 쉽게 읽을 수 있는 코드를 작성하여 협업을 도모하고, 코드 생태계를 더 발전시키는 사람이다. 돌아가는 코드를 작성하는 것뿐만 아니라 소프트웨어의 품질을 향상하기 위해 고군분투하는 사람이다. 한 줄의 코드를 작성하더라도 나와 너와 우리 모두에게 기여하기를 좋아하는 사람이다. 장인 정신을 가지고 한 땀 한 땀 코딩을 하는 사람이다. 이러한 조건을 갖춘 사람을 소프트웨어 장인이라고 한다. 연차가 낮다고 소프트웨어 장인이 될 수 없는 것도 아니고, 연차가 높다고 장인이 되는 것도 아니다. 누구에게나 열려있지만 누구나 되기는 힘든 것이 소프트웨어 장인이다. 이런 소프트웨어 장인이 되기 위해 저자는 어떤 길을 걸었는지, 어떻게 문화를 바꿨는지, 어떻게 코드를 짜기 위해 노력했는지, 어떻게 성장했는지를 이 책에서 설명하고 있다.
기록을 위해 몇 가지 좋은 글귀를 옮겨보겠다.
오래 전에 작성했던 코드를 지금에 와서도 고칠 부분이 없어 보인다면, 그것은 그동안 배운 것이 없다는 뜻이다.
사실 당장 작성한 코드라도 다시 보면 고칠 것 투성인 경우가 있다. 변수명을 더 생각해볼 수도 있고, 함수를 좀 더 추상화할 수도 있고, 구조를 더 명확하고 체계적으로 바꿀 수도 있다. 지금 당장 작성한 코드에도 고칠 부분이 있을 텐데 하물며 오랜 시간이 지나고 난 뒤는 말할 것도 없을 것이다. 가령 지금 당장 공을 들여 코드를 완벽하게 짰다고 해도 시간이 지나면 고칠 부분이 보여야 한다는 말이다. 그 사이에 더 많은 코드를 짜고, 더 좋은 코드를 봤을 테니까.
시간은 걱정하지 말고 변수, 메서드, 클래스들의 이름을 가장 이해하기 쉽고 의미를 포괄할 수 있도록 최선을 다해 네이밍한다. 가장 적합한 이름을 부여했다면 소요된 시간이야 어떻든 훌륭한 것이다. 훈련할 때는 그 훈련이 완벽하도록 노력해야 한다.
이 문장에서 네이밍의 중요성에 대해 배웠다. 사실 지금까지 네이밍을 크게 신경쓰지 않았었다. 이상하지 않는 이상 적당한 이름을 짓고 넘어갔다. 하지만 만쿠소는 시간은 걱정하지 말고 최선을 다해 네이밍 하라고 한다. 네이밍만 잘해도 코드가 깔끔해 보이긴 한 것 같다. 마치 글을 읽듯이 읽히는 코드를 보면 대부분 네이밍이 훌륭한 코드였다. 앞으로 더 공을 들여 네이밍을 해봐야겠다.
백로그에 기술적 부채를 더하는 행위는 개발자가 코딩을 하던 당시에 아무런 죄책감 없이 잘못된 코드를 그대로 반영했다는 것밖에는 설명이 안된다.
백로그를 써본 경험 자체가 없지만, 무슨 말인지 여실히 공감이 된다. 기술적 부채가 있더라도 구현만 하면 된다는 마음은 장인 정신에 어긋난다는 것이다.
시스템 개발에 필요한 상당수의 업무들이 알고리즘에 대한 깊은 이해를 필요로 하지 않는다. 그럼에도 불구하고 "지원자의 문제 해결 능력을 보아야 한다."라고들 이야기한다. 물론 틀린 이야기는 아니지만 알고리즘 문제 대신 회사의 실제 프로젝트와 가까운 다른 연습문제를 통해서도 '문제 해결 능력'을 평가할 수 있다.
알고리즘이 중요하지만 실제 문제에 큰 도움이 되지 않는 경우가 많다고 저자는 말한다. 중고등학교 때 국영수 위주의 공부를 강조하지만, 막상 사회에서 큰 도움이 되지 않는 것과 비슷하다고 볼 수 있겠다.
책을 다 읽고 저자인 산드로 만쿠소에게 '소프트웨어 장인에 감명을 많이 받았다'고 메일을 보냈다. 그러자 '감명을 받았다니 자기도 기쁘고 고맙다'라는 답신을 주었다. 워낙 바쁜 사람이고, 이런 자질구레한 메일을 보내는 사람도 많을 텐데 답신을 주었다는 것에 감사했다.
'책과 사유' 카테고리의 다른 글
[로버드 C.마틴] 클린 코드 (0) | 2019.07.23 |
---|---|
[노자] 도덕경 (0) | 2019.07.08 |
[제롬 데이비드 샐린저] 호밀밭의 파수꾼 (0) | 2019.05.30 |
[한스 로슬링] 팩트풀니스 (0) | 2019.05.16 |
[프리드리히 니체] 짜라투스트라는 이렇게 말했다 (0) | 2019.04.26 |