요즘은 모듈/패키지/프레임워크를 이용하여 기능을 구현하는 경우가 많다. 생산성을 위해서는 그럴 수 밖에 없다고 생각한다. 그러다보니 그냥 동작하는 것처럼만 보이면 OK인것처럼 인식하는 경우도 많다. 하지만 문제와 해결방안, 그 원리를 이해하지 않으면 작성된 코드들이 결국 유지보수하는 과정에서 복잡도가 증가하여 오래 살아남기 힘들다.

이런 문제의 해결 방법은 의도를 가지고 코드를 작성하는 것이라 생각하는데.. 의도를 가지려면 본인이 해결하고자 하는 문제를 인식하고 그에 대한 해결 방안에 대한 이론과 가설을 세워야 한다. 문제를 어떻게 인식하고 접근할 것인가에서는 세상을 바라보는 사상이나 철학이 반영된다고 생각한다. 중요한 것은 자신의 접근방식 모델을 세운 다음 코드를 작성해야 한다는 점!

즉, 자신이 해결하려는 문제를 인식하여 과제로 정리한 후, 문제에 대한 이해를 바탕으로 나름의 이론과 가설을 세워 해결방안 또는 접근방안을 만들고, 이를 코드로 녹여내려는 의식적인 흐름이 필요하다. 이런 생각을 가지고 있던 중 실용주의 프로그래머 20주년 기념판 288쪽-289쪽에 좋은 내용이 나와있어서 핵심 문구만 소개한다.

 

  • 코드를 마주 찍어내는데에 드는 시간을 줄이고 싶고, 가능한 한 개발 주기 초기에 오류를 잡아서 고치고 싶고, 애초부터 오류를 더 적게 만들고 싶다면 의도적으로 프로그래밍 해야 한다.
  • 언제나 지금 무엇을 하고 있는지 알아야 한다.
  • 더 경험이 적은 프로그래머에게 코드를 상세히 설명할 수 있는가?
  • 자신도 잘 모르는 코드를 만들지 마라
  • 계획을 세우고 그것을 바탕으로 진행하라
  • 신뢰할 수 있는 것에만 기대라
  • 가정에 의존하지 마라. 무언가를 신뢰할 수 있을지 판단하기 어렵다면 일단 최악의 상황을 가정하라
  • 가정을 기록으로 남겨라
  • 코드 뿐만 아니라 여러분이 세운 가정도 테스트 해보라.
  • 추측만 하지 말고 실제로 시험해보라
  • 중요한 것에 먼저 시간을 투자하라. 중요한 부분이 가장 어려운 부분이기도 한 경우가 많다
  • 더는 적절한 코드가 아니라 싶으면 어떤 코드라도 교체할 수 있다. -> 리팩토링

 

실용주의 프로그래머 20주년 기념판/인사이트

 

사족> 실용주의 프로그래머 20주년판 2/3 정도 읽었는데, 정말 세월의 흐름에 상관없이 읽어볼 책이다. 저자는 20년동안 정체된 것이 아니라 발전하는 개발자의 모습을 보여준다.

사족#2> ChatGPT를 개발에 많이 활용해 보고 있다. ChatGPT가 주는 답이 기존 구글링보다 좋은 검색결과라기 보다는 내 머리속에 혼재되어 있는 생각들을 ChatGPT와 대화하면서  모델로 만들 수 있기 때문에 큰 도움이 된다고 생각한다. 그 모델에 확신을 더해 의도를 명확하게 하여 코드를 작성하는 것!

반응형

+ Recent posts