프로그래밍을 시작한 지 몇 년이 되었지만, 최근에야 코드를 쓰는 것과 글을 쓰는 것이 놀랍도록 비슷하다는 걸 깨달았다. 둘 다 생각을 구조화해서 다른 사람(또는 미래의 나)에게 전달하는 작업이다.

명확함의 중요성

좋은 코드는 읽기 쉬운 코드다. 변수명이 명확하고, 함수의 목적이 분명하며, 전체적인 구조가 논리적이다. 좋은 글도 마찬가지다. 문장이 명확하고, 단락의 목적이 분명하며, 전체 논리가 일관성 있게 흐른다.

복잡한 코드를 보면 머리가 아픈 것처럼, 복잡한 글을 읽으면 이해하기 어렵다. 둘 다 간결함과 명확함을 추구한다.

리팩토링과 편집

코드를 작성할 때는 일단 작동하게 만든 다음, 더 나은 방식으로 개선한다. 이를 리팩토링이라고 한다. 글쓰기도 마찬가지다. 첫 번째 초안은 생각을 정리하는 단계이고, 편집을 통해 더 명확하고 효과적인 글로 다듬어진다.

둘 다 완벽한 첫 번째 버전을 기대하지 않는다. 점진적 개선이 핵심이다.

추상화의 예술

프로그래밍에서 함수는 복잡한 로직을 하나의 이름으로 추상화한다. 글쓰기에서 제목이나 소제목도 비슷한 역할을 한다. 복잡한 내용을 간단한 표현으로 요약해서 전달한다.

좋은 추상화는 불필요한 세부사항을 숨기고 핵심만 드러낸다. 코드에서든 글에서든 마찬가지다.

독자를 위한 배려

코드를 작성할 때는 나중에 이 코드를 읽을 사람(미래의 나 포함)을 생각한다. 주석을 달고, 의미 있는 변수명을 사용하고, 복잡한 부분을 설명한다.

글을 쓸 때도 독자를 염두에 둔다. 독자의 배경지식을 고려하고, 이해하기 쉽게 설명하며, 필요한 맥락을 제공한다.

버전 관리와 기록

Git으로 코드의 변화를 추적하듯, 글의 변화도 기록할 가치가 있다. 어떤 생각이 어떻게 발전했는지, 어떤 부분을 수정했는지 기록하면 나중에 도움이 된다.

디버깅과 검토

코드에 버그가 있으면 차근차근 찾아서 고친다. 글에도 논리적 오류나 불분명한 표현이 있을 수 있다. 꼼꼼히 검토하고 수정하는 과정이 필요하다.

결국 코드와 글 모두 ‘생각을 명확하게 표현하는 기술’이다. 하나를 잘하게 되면 다른 하나도 늘어나는 이유가 여기에 있다.