독후감

심플 소프트웨어

SambaLim 2020. 4. 29. 22:45
  • Author: 맥스 카넷 - 알렉산더
  • Date: Apr 29, 2020
  • Publisher: 길벗
  • Score /5: ⭐️⭐️⭐️⭐️
  • Status: Finished
  • Summary: 코드의 단순성·가독성·안정성·유지보수
  • Type: Development
http://image.yes24.com/goods/80749963/800x0

올해 첫 번째로 읽은 기술서가 아닌 서적이다.

이 책을 읽음으로써 내가 그동안 어떠한 관점들을 가지고 개발을 해왔는지 그리고 그 관점들을 꿰뚫는 하나의 철학은 무엇인지에 대해 생각해보게 되었다.

내가 개발을 시작했던 이유는 정말 재밌어서이다. 그리고 그 즐거움은 개발의 구현에서 왔다. 더 많은 기능이 추가되더라도 구현해냈으면 그만이었고 코드의 확장성, 다른 개발자와의 협업 등과 상관없이 구현에 초점을 맞췄었다.

하지만 구현에만 초점을 맞춘 개발을 하다 보니 나는 이 책에서 말하는 '나쁜' 프로그래머가 되어있었다. 더 나은 코드가 필요한 이유 그리고 그 방법들에 관해 이야기하기 보다는 주어진 기능에 대한 구현에만 갖혀있었다.

이러한 생각에 변화가 일어나기 시작한 것은 배포했던 어플에서 추가 기능적 요구사항이 생겨 내가 내 코드를 수정해야 하는 일이 생겼을 때부터였다. 내가 작성한 코드임에도 불구하고 같은 코드가 몇 번이고 반복되었고 기능을 수정해야 하는 일이 생겼을 경우 어느 곳을 수정해야 할지 한참을 쳐다봐야 했다.

그래서 변화를 시작하였다. 나만 알아볼 수 있는 코드(코드를 작성하고 있는 당시 나만 알아보는 코드)를 누구나 알아볼 수 있도록 함수명, 변수명 등 이름을 짓는데 더 고민하였고 플로우와 함수의 기능에 대해 주석을 달거나 Document를 만들었다. 같은 코드가 반복되지 않도록 리팩토링하고 추가될 기능을 고려하며 디자인 패턴을 공부했다.

모든 변화는 '나쁜' 프로그래머에서 '친절한' 프로그래머가 되기 위함이었다. 나중에 내가 아닌 누구라도 내가 작성한 코드의 의도를 쉽게 파악하고 기능을 추가하거나 수정할 수 있었으면 했다.

이 책의 가장 주요한 철학인 Simplicity 단순성은 내가 지금까지 '친절한' 프로그래머가 되는 길에 새로운 이정표가 되었다.

개발자의 입장에서 단순하게 작성한 코드는 코드의 목적을 명확하게 보여준다. 이러한 코드는 안정성이 높고 유지보수하기 좋다.

사용자의 입장에서 단순하게 만들어진 프로그램은 보다 직관적이고 사용자가 가지고 있는 목적에 알맞게 반응한다. 사용자가 문제를 제기한 것에 대해 수정할 때는 사용자의 시각에서 사용자가 생각하는 반응을 생각하며 해야 한다. 지난날을 돌이켜보면 빠르게 문제를 해결하기 위해 개발자의 시각에서 문제를 해결하는 데만 초점을 맞췄던 적이 많았었다. 시간을 갖고 사용자 입장에서 문제를 해결해야 한다.

이 책에는 "무엇을 배워야 할까?"에 대한 답이 적혀져 있다. 나는 이 질문들의 핵심은 "단순히 구현에만 초점을 맞출 것이 아니라 내가 만드는 소프트웨어에 대해서 정확하게 설명할 수 있어야 한다"라고 생각한다. 앞으로 정확하게 설명할 수 있도록 많은 공부가 필요하다.

마무리하자면, 앞으로 개발자로 살아감에 있어서 새로운 관점을 얻은 책이었다. 나는 사용자에게 유용하고 개발자에게는 쉬운 개발을 하는 것을 목표로 삼고있는데, 이를 위해서는 많은 고민이 필요하고 열심히 공부해야겠다는 생각이 다시한번 들었다.

'독후감' 카테고리의 다른 글

지적 허영을 위한 퇴근길 철학툰  (0) 2021.05.18
소프트웨어 장인  (1) 2021.01.23
1cm 다이빙  (0) 2020.05.30