brunch

좋은 코드란 무엇이라고 생각하시나요?

by 한별

개발자라면 한 번쯤 들어봤을 법한 질문이 있다. 면접에서도 자주 등장한다.

“좋은 코드란 무엇이라고 생각하시나요?”


누구나 고민해봤을 만한 질문이지만, 여기에 정답은 없다.

오히려 질문하는 사람의 의도와 대답하는 사람의 관점에 따라 전혀 다른 이야기가 나올 수 있다.


만약 내가 면접관이라면, 이 질문을 통해 단순히 코드를 잘 짜는 사람을 찾지는 않을 것이다.

그보다는 그 사람이 코드를 대하는 태도, 협업 속에서 중요하게 여기는 가치를 보고 싶을 것이다.


그래서 나는 이 질문이 기술적인 질문이라기보다는

개발자로서의 철학을 묻는 질문에 가깝다고 느낀다.


많은 사람들이 좋은 코드의 기준으로 ‘가독성’을 꼽는다.

읽기 쉬운 코드가 중요하다는 점에는 나도 동의한다.


하지만 가독성은 결과일 뿐이다.

좋은 코드의 기준이 되어야 할 것은 따로 있다.


나는 좋은 코드를 판단할 때

일관성, 단순함, 명확성 — 이 세 가지를 가장 중요하게 본다.


일관성은 코드의 리듬을 만든다.

규칙이 일관되면, 코드를 읽는 사람은 흐름을 예측할 수 있다.


예측 가능성은 익숙함을 낳고, 익숙함은 읽기 쉬운 코드를 만든다.

그래서 나는 ‘가독성’보다 ‘일관성’이 더 우선이라고 생각한다.


단순함은 유지보수의 기반이다.

코드가 단순할수록 이해하기 쉽고, 수정도 쉽다.


불필요한 추상화나 과도한 최적화는 오히려 코드를 약하게 만든다.

하나의 함수가 하나의 역할만 하도록 유지하려는 이유도 같다.


맥락 없이 바로 이해되는 코드, 그것이 단단한 코드다.


명확성은 최근 들어 더 중요하게 느끼는 요소다.

명확성은 단순히 변수명이나 주석의 문제가 아니다.


코드를 읽는 순간, “무엇을 하려는지”가 분명하게 드러나야 한다.

명확하지 않은 코드는 오해를 낳고, 오해는 버그로 이어진다.


의도를 분명히 드러내는 코드는

오해를 줄이고, 팀 내 커뮤니케이션을 줄인다.


이 세 가지는 서로 맞물려 있다.

일관성이 있어야 단순함을 유지할 수 있고,

단순함 속에서 명확성이 드러난다.


그리고 명확한 코드는 다시 일관성을 강화한다.

좋은 코드는 이 세 가지가 균형을 이루는 지점에 있다고 생각한다.


물론 이 기준은 내 경험에서 비롯된 생각일 뿐이다.

다른 팀에서는 다른 기준을 중요하게 여길 수도 있고,

어떤 상황에서는 복잡한 코드가 더 나은 선택일 수도 있다.


하지만 내가 팀 안에서 코드를 대할 때,

이 세 가지를 떠올리면 방향을 잃지 않고 판단할 수 있었다.


좋은 코드가 무엇인지 여전히 명확히 정의하기는 어렵다.

다만 시간이 지날수록 나는

일관성, 단순함, 명확성이라는 세 단어로 이 질문을 생각하게 된다.


시간이 지나도 낯설지 않은 코드,

읽을 때마다 새로운 해석이 필요하지 않은 코드,

누가 수정하더라도 흐름이 깨지지 않는 코드.


그런 코드가 좋은 코드 아닐까.

keyword
매거진의 이전글그 기술을 선택한 이유는 무엇인가요?