결국은 가독성이 높은 코드가 좋은 코드다. 그래야 나도 나중에 쉽게 다시 기억을 되살릴 수 있고, 다른 사람들이 쉽게 이해하고 내가 그만두거나 다른 일로 넘어갈 때 유지보수가 쉬워진다.
단 코드를 작성할 때 본인이 하는 맡은 업무를 명확히 이해하는 것이 중요하다 ("문제 정의"). 그래야 맡은 일에서 정말 중요한 것들 중심으로 구현을 할 수 있기 때문이다. 문제의 복잡도와 들어가는 시간에는 다른 모든 것들처럼 보통 20:80 법칙이 적용된다. 마지막 20%를 해결하는데 보통 80%의 시간을 쓰게 되기에 20%를 단순하게 해결할 방법을 생각해보는 것이 필요하며 의사 소통을 통해 문제 정의를 잘 한다면 이 부분이 쉬워진다. 내 생각을 정리해보자면
가독성이 높은 단순한 코드를 작성하자 (The simpler the better). 그래야 코드 리뷰부터 시작해서 모든 것이 쉬워진다. 불필요하게 복잡한 코드를 작성하면 본인도 나중에 다시 이해하려면 고생한다.
모듈화 등을 통해 유지보수가 쉬운 코드를 작성하는 것이다. 예를 들어 비슷한 코드가 게으름이나 시간 압박으로 인해 하드코드 형태로 여기저기 흩어져 있다고 하면 유지보수에 큰 어려움을 겪게 될 가능성이 높다.
문제 정의를 잘하는 것이 가장 중요하며 선행되어야 한다. 하지만 주의할 점은 처음 만드는 거라면 요구 조건이 시간을 두고 바뀔 가능성이 높기에 유연하게 만들고 너무 빠르게 최적화하지 않을 필요가 있다.
마지막 20%를 해결하는데 들어가는 노력이 80%임을 인지하고 이 20%의 해결방법을 단순하게 할 방법을 찾아보자.
요약하자면 "읽기 쉽고 유지보수가 쉬운 코드를 작성해서 다른 사람들과의 협업이 쉽도록 만들자"
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 8월 27일 오전 12:03
결국 동료들과 협업하기 쉬운 글이 바로 좋은 글이겠군요!