토요일, 12월 29, 2018

[B급 프로그래머] 소프트웨어 엔지니어들이 읽기 어려운 코드를 만드는 이유는?

Quora를 읽다보니 Why do competent software engineers sometimes write code that is difficult to understand?라는 재미있는 글이 올라와서 소개드리겠다.

뛰어난 소프트웨어 엔지니어들은 일반적으로 깨끗하고 이해하기 쉬운 코드를 작성한다. 하지만 종종 이런 엔지니어들이 이해하기 어려운 코드를 작성하는 이유는 무엇인가요?

  1. 풀기 어려운 문제: 문제가 복잡하면, 당연히 이를 풀기 위한 코드도 복잡해지며, 복잡한 코드는 따라가기 어려울 수 있다.
  2. 시간 제약: 종종 관리자는 많은 코드를 빠르게 만들도록 요구한다. 빠르게 코드를 작성하면, 코드를 완벽하게 편집할 시간이 부족하다.
  3. 영감 부족: 심지어 훌륭한 개발자조차도 종종 문제에 부딪힐 때 해법을 미리 알지는 못한다. 작업을 시작해서 완료할 무렵이면 코드는 엉망진창이 된다. 나중에 문제나 코드에 대해 통합되고 단순화된 해법을 찾을지도 모르고, 코드를 단순하게 만든 핵심적인 추상화를 핵심 추상화를 이해했을지도 모른다. 하지만 세익스피어 작품의 모든 행이 최고는 아니다. 코드도 마찬가지다.

이 글을 작성한 저자도 아주 오래동안 진행하는 프로젝트에서 코드를 (심지어 세 번까지) 재작성한 경험이 있다고 말한다. 최종 버전은 깨끗하고 간결하고 올바르게 돌아가지만 첫 버전은 보통 엉망 진창일 가능성이 높다. 따라서 엉망진창인 버전을 계속해서 다시 작성한다.


헤밍웨이는 <노인과 바다>를 작성하면서 수 십 번 고쳐썼다는 이야기가 있다. 만 권 이상 팔리면서 (보헤미안 랩소디도 아닌데) 최근 판매량에서 역주행까지 하면서 스테디셀러로 자리를 굳힌 클린 코드의 엉클 밥도 코드를 깨끗하게 만들기 위한 보이스카웃 규칙까지 제시하면서 개발자들이 코드를 이해하기 쉽게 만드는 개발문화를 독려한다. 처음부터 완벽한 코드는 존재하지 않으므로 시간이 걸리고 귀찮고 어떻게든 돌아간다고 코드를 내버려 두지 않기 바란다.

EOB

댓글 없음:

댓글 쓰기