-
-
내 코드가 불안한 개발자를 위한 좋은 코드의 기준 - AI 시대에도 변치 않는 코드 선별과 유지보수 원칙
모리 아츠시 지음, 안동현 옮김 / 프리렉 / 2026년 2월
평점 :
코드를 작성할 수는 있지만, 내가 만든 코드가 정말 좋은 코드인지에 대해서는 늘 확신이 부족했다. 기능은 문제없이 동작하는데도, 시간이 지나 다시 보면 이해하기 어렵거나 구조가 마음에 들지 않는 경우가 많았다. 특히 코드가 점점 길어지고 복잡해질수록, 이 코드가 정말 신뢰할 수 있는지에 대한 의문이 자연스럽게 따라왔다. 이런 막연한 불안을 가지고 있던 상황에서 이 책은 좋은 코드란 무엇인지, 그리고 어떤 기준으로 코드를 바라봐야 하는지를 정리해 주는 역할을 했다.
책을 읽기 전까지는 좋은 코드와 안전한 코드를 어느 정도 분리해서 생각했던 것 같다. 좋은 코드는 가독성과 유지보수성을 중심으로 평가하고, 보안은 그 위에 추가로 고려해야 하는 요소라고 생각했다. 하지만 책을 읽으면서 이 둘이 사실상 같은 방향을 바라보고 있다는 것을 깨달았다. 구조가 명확하고, 의도가 드러나며, 책임이 잘 분리된 코드는 단순히 읽기 쉬운 것을 넘어서, 실수를 줄이고 취약점이 생길 가능성까지 낮춘다. 코드가 복잡하고 불명확할수록 예상하지 못한 동작이 발생하기 쉽고, 이런 부분이 실제 문제로 이어질 수 있다는 점에서 두 영역은 깊이 연결되어 있다고 느꼈다.
특히 인상 깊었던 점은 읽기 쉬운 코드가 얼마나 중요한지에 대한 부분이었다. 코드를 이해하는 과정은 단순히 읽는 행위를 넘어서, 흐름을 추적하고 의도를 파악하는 과정이다. 데이터가 어떻게 들어오고, 어떤 처리를 거쳐 결과가 만들어지는지를 자연스럽게 따라갈 수 있어야 한다. 하지만 코드가 복잡하거나 의도가 드러나지 않으면 이 과정을 이해하는 데 큰 부담이 생긴다. 이는 단순한 불편함을 넘어, 중요한 로직을 놓치거나 잘못 해석할 가능성까지 높인다. 결국 좋은 코드는 단순히 보기 좋은 코드가 아니라, 읽는 사람이 정확하게 이해할 수 있도록 돕는 코드라는 점을 실감하게 되었다.
이 책을 통해 불안한 코드의 의미도 더 구체적으로 이해하게 되었다. 이전에는 단순히 나중에 다시 보면 이해하기 어려운 코드 정도로 생각했다면, 이제는 예측하기 어려운 코드라는 개념으로 다가온다. 예측하기 어렵다는 것은 특정 상황에서 어떤 동작을 할지 확신하기 어렵다는 뜻이고, 이는 곧 의도하지 않은 결과로 이어질 수 있다. 조건문이 복잡하게 얽혀 있거나 하나의 함수가 여러 역할을 동시에 수행하는 구조는 이러한 문제를 쉽게 만들어낸다. 결국 불안한 코드는 단순한 가독성의 문제가 아니라, 코드의 신뢰성과 직결된 문제라는 점이 인상 깊었다.
가장 크게 와닿았던 부분은 사람이 실수하지 않게 만드는 코드라는 개념이었다. 많은 문제는 복잡한 기술적인 요소보다는 작은 실수에서 시작된다. 입력을 제대로 검증하지 않거나, 특정 조건을 빠뜨리거나, 로직의 흐름을 일관되게 유지하지 못하는 경우가 그렇다. 이 책에서 말하는 좋은 코드는 이러한 실수가 발생할 가능성을 구조적으로 줄여준다. 즉, 단순히 읽기 좋은 코드를 넘어서, 잘못된 사용이나 오해를 최소화하는 방향으로 설계된 코드라는 점에서 큰 의미가 있었다.
또한 좋은 코드는 검증하기 쉬운 코드라는 점도 중요하게 느껴졌다. 코드가 복잡하고 구조가 뒤섞여 있으면 특정 부분을 따로 확인하거나 테스트하기 어렵다. 반대로 역할이 명확하게 나뉘고 흐름이 단순하면, 각 부분을 독립적으로 확인하기 쉬워진다. 이는 코드의 신뢰성을 높이는 데 직접적인 영향을 준다. 결국 좋은 코드는 작성하기 쉬운 코드가 아니라, 이해하고 검증하기 쉬운 코드라는 생각이 들었다.
이 책을 읽으며 내 코딩 습관도 돌아보게 되었다. 그동안은 기능이 정상적으로 동작하면 어느 정도 만족하고 넘어가는 경우가 많았다. 하지만 이제는 코드가 읽히는지, 의도가 드러나는지, 다른 사람이 봤을 때도 같은 방식으로 이해할 수 있는지를 더 중요하게 생각하게 되었다. 특히 변수명이나 함수 구조처럼 사소해 보이는 요소들이 전체 코드의 이해도를 크게 좌우한다는 점을 체감하게 되었다.
이 책은 특정 기술이나 언어에 국한되지 않고, 코드를 바라보는 기준 자체를 정리해 준다는 점에서 의미가 크다. 정답을 제시하기보다는, 어떤 기준으로 고민해야 하는지를 알려준다. 덕분에 단순히 규칙을 외우는 것이 아니라, 코드를 평가하고 개선하는 사고방식을 익힐 수 있었다.
전체적으로 이 책을 통해 좋은 코드란 단순히 깔끔한 코드가 아니라, 예측 가능하고, 이해하기 쉬우며, 실수를 줄이고, 신뢰할 수 있는 코드라는 점을 분명히 깨닫게 되었다. 그리고 이러한 기준은 앞으로 코드를 작성할 때 계속해서 기준점이 될 것이라고 생각한다.
이 책을 읽고 나서 가장 크게 남은 생각은, 좋은 코드는 특별한 기술이 아니라 꾸준한 고민과 기준에서 나온다는 점이다. 단순히 동작하는 코드를 넘어서, 읽히고 이해되며 신뢰할 수 있는 코드를 만들기 위해 계속해서 노력해야겠다는 생각이 들었다.