jc.jang

개발자, 한 달에 책 한권 읽기 2019년 12월 모임 후기 본문

개발/행사 후기

개발자, 한 달에 책 한권 읽기 2019년 12월 모임 후기

jangstory 2019. 12. 25. 01:10

심플 소프트웨어

책 읽기 모임

한 달에 한 권씩 개발자의 성장을 돕는 책을 읽습니다. 12월에 읽을 책은 '심플 소프트웨어'입니다.

 

책 읽은 후기

대부분의 자기 계발서는 '밥을 먹으면 배가 부르다.'와 같은 이견을 내놓기 힘든 말들을 주로 한다. 이 책도 어느 정도 비슷하다고 본다. 하지만 이 책을 읽으면서 과거의 나를 꾸짖는 대목들을 많이 발견하게 되었다. (이 책의 표현을 빌리자면, 그만큼 내가 개떡 같은 개발자라는 것일지도 모르겠다.) 흥미롭게 읽었던 부분은 6부 '소프트웨어 이해하기', 7부 '나아지기'였다. 앞장은 소프트웨어 설계와 복잡성에 관한 이야기를 한다. '열심히 공부하면 좋은 결과가 있다'같은 느낌으로 이야기를 해서 크게 와 닿는 부분은 없었다. 그리고 5부 '엔지니어링 팀에서 일하기'는 내가 엔지니어링 팀에서 일한 경험이 길지 않아서 공감하기는 어려웠다.

 

전체적으로 좋은 이야기들을 해주고 있고 역시나 자기계발서구나 라는 생각이 들었다.

 

기억에 남는 대목 몇가지를 추려봤다.

 

17장 '디버깅의 기본 철학'

디버깅은 크게 다음 4단계로 볼 수 있다.
1. 정상 시스템이 어떻게 작동하는지 알아낸다.
2. 문제의 원인을 아직 모른다는 사실을 인정한다.
3. 문제를 일으키는 원인이 무엇인지 알아낼 때까지 데이터를 살펴본다.
4. 증상이 아닌 원인을 고친다.

  꽤 간단한 원칙이지만, 사람들은 이런 원칙을 수시로 어긴다. 내가 겪은 프로그래머 대부분은 버그가 생기면 자리를 잡고 앉아서 버그에 관해 생각해보거나 원인이 무엇일지 이야기하고 싶어 한다. 둘 다 결국은 추측이다.
  시스템에 관한 정보나 디버깅에 도움이 될 데이터를 알려주는 사람과 대화하는 건 괜찮다. 하지만 다른 사람들과 둘러앉아서 버그의 원인이 무엇일지 단체로 추측하는 건 그냥 혼자 앉아서 추측하는 것과 별반 다르지 않다. 동료를 좋아하고, 다 함께 잡담을 나누는 게 즐거울 수는 있다. 하지만 보통은 자신의 시간뿐 아니라 동료들의 시간까지 낭비하는 데 그치는 경우가 많다.

  '그러니 다른 이들의 시간을 빼앗지 마라. 코드 베이스를 필요 이상으로 복잡하게 만들지도 마라. 방금 소개한 디버깅 방법을 써라. 이 방법은 모든 시스템, 모든 코드 베이스, 모든 시점에 통한다.'

 

37장 '프로그래밍의 비결: 생각하지 않기'

  내가 개발자들에게 코드 복잡성에 대해 이야기하면 다음과 같이 말하는 개발자가 꽤 많다. 본인도 단순한 코드를 쓰고 싶기는 하지만 마감 압박이나 시스템에 내재된 근본적인 문제 때문에 정해진 시간 내에 일을 완수하는 동시에 코드를 단순하게 다듬을 시간을 내거나 그에 필요한 지식을 갖출 수 없다고 말이다.

  글쎄, 개발자가 시간 압박을 느낄 때 코드가 복잡해지는 경향이 있다는 말이 사실이긴 하다. 하지만 그렇다고 마감이 꼭 복잡성으로 이어져야 하는 건 아니다. 이런 상황을 "마감 때문에 단순한 코드를 쓰지 못한다."라고 하지 않고 "나는 이 코드를 간단하게 작성할 만큼 빠른 프로그래머가 아니다"라고 표현할 수 있다. 즉, 프로그래밍 속도가 빠르면 시간제한이 코드에 미치는 영향을 줄일 수 있다는 뜻이다.

 

모임 후기

모임은 각자 기분 점수, 모임을 통해 기대하는 바를 이야기하며 시작했다. 책에서 좋았던 점, 아쉬웠던 점을 하나씩 이야기했다. 그리고 더 이야기를 나눠보고 싶은 내용에 대해 투표를해서 많은 득표를 얻은 주제에 대해 이야기했다. 그리고 다시 기분 점수, 소감을 이야기하며 모임을 마쳤다.

 

내가 책에서 좋았던 점을 발표하는 순서가 거의 마지막이라서 안겹치는 걸 하려다 보니 다음과 같이 말했다. 43장 '훌륭한 소프트웨어' // '훌륭한 프로그램은 사용자의 명령을 정확하게 따른다. 사용자가 예상한 대로 작동한다. 사용자의 의도 전달을 막지 않는다.' 원래는 위에 적은 17장, 37장 내용을 말하고 싶었는데 이미 다른 분이 말씀하셨다. 43장 이야기를 하면서 최근에 이메일 앱을 사용하다가 이메일 전송에 실패하여 바로 그 앱을 삭제한 경험을 말했다. 역시 훌륭하다는 건 기본에 충실한 것 같다. 아쉬웠던 점은 자기 계발서이기 때문에 이견의 여지가 없었다는 점이었다. 나는 책을 읽으면서 멈춰가며 생각을 많이 하는 편인데 이 책은 그럴만한 여지가 없어서 아쉬웠다.

 

심플 소프트웨어는 과거의 나에게 팩트폭행을 날리는 책이었다.

Comments