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

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

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

 

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

 

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

 

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

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

반응형

넷플릭스에 공개된 다큐멘터리 <디터람스>에 나온 말 중에서 내 마음속으로 들어온 말들..

 

  • 좋은 디자인이란?
    • 제품 디자인: 형태, 색상, 재질, 구조 같은 제품의 전체를 구성하는 것
    • 인간을 이해하지 못한다면 좋은 디자인을 이해할 수 없음.
    • 모든 사람이 이해할 수 있는 디자인은 가능한 한 단순해야 함 생각 없는 소비를 위한 생각 없는 디자인의 시대는 끝났음. 냉철함과 합리성에 주목해야
    • '최소한의, 그러나 더 나은'의 철학을 10가지 원칙으로 정리.본질적인 요소를 압축하고 산만해질 수 있는 요소를 제거하는 것
      • 디자인은 항상 혁신적인 기술과 병행된다
      • 좋은 디자인은 목적에 부합하지 않거나 반대하는 모든 요소를 무시하고 유용성을 극대화시킨다
      • 좋은 디자인은 드러내지 않는다.제품의 구조를 쉽게 이해하도록 한다. 더불어 이것은 제품을 말하게 할 수 있다. 디자인 그 자체로 설명되도록 한다.목적이 명확한 제품에는 도구의 특성이 드러난다
      • 좋은 디자인은 마지막 디테일까지 철저하다.철저함과 신중함은 곧 사용자를 존중하는 것이다
  • 매너리즘을 극복하는 방법
    • 좋은 사람들을 찾아서 그들과 일해야
    • 실제로 협업을 통해 무언가를 성취할 수 있고 각자의 책임 범위 이상의 것들을매일같이 고민하는 사람들
    • '미래 우리 사회는 어떨까'하고 생각하는 사람들
    • 동료 디자이너들과의 협업. 항상 팀으로 인식되어야 했고 모두로 인식되어야 함.
  • 삶에 대하여
    • 그의 일은 곧 그의 삶이고 그의 인생은 곧 그의 일입니다
    • 디자인도 정치의 일부. 더 좋고, 더 민주적인 세상을 만들어 가는 것에 열정
    • 모든 것은 상호 작용하며 다른 것들에 의존. 우리가 하고 있는 일 그 일을 하는 방법
      그리고 왜 그 일을 하는지를 더 철저하게 생각해야.
    • 우리는 단순히 자원을 고갈시키는 것이 아니라 지구에 가치를 더하는 무언가를 생산하고 있는가?

넷플릭스 다큐: https://www.netflix.com/watch/81050038

 

디터 람스 | 넷플릭스

거물급 제품 디자이너 디터 람스를 다룬 다큐멘터리. 그의 작업이 미친 지대한 영향과 미래에 대한 그의 비전을 탐구한다.

www.netflix.com

나무위키: https://namu.wiki/w/%EB%94%94%ED%84%B0%20%EB%9E%8C%EC%8A%A4

 

디터 람스 - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

 

반응형

+ Recent posts