洪民憙 (홍민희) 블로그

이하의 글은 2011년에 쓴 것입니다. 오래된 글인 만큼, 현재의 생각과 전혀 다른 내용도 많이 포함되어 있고, 당시와는 상황이 많이 달라진 점도 있습니다. 또한, 그 당시에 잘못 알려졌던 정보도 포함되어 있을 수 있습니다. 어찌됐든 저는 제 오래된 글이 회자되는 것을 저어합니다. 읽기에 앞서 양해를 부탁드립니다.

소스 코드의 컬럼(폭)을 80자로 제한하는 것은 줄의 끝 부분 공간을 쓰지 못하게 만든다. 소스 코드에서 하드탭을 쓰고 그 폭을 전통적인 8자로 강제하는 것은 줄의 첫 부분 공간을 쓰지 못하게 만든다. 둘 모두 너무 깊은 들여쓰기를 하지 못하게 하는 효과를 갖는다는 점에서 동등한 제약이다. 둘 모두 들여쓰기가 깊어질 경우 새로운 함수를 만들도록 심리적 압력을 준다. 혼자 보는 소스 코드는 어떻든 상관 없지만 여럿이 보는 코드, 특히 오픈 소스 같은 경우 이런 낡고 오래된 관습이 약간이나마 평균적인 maintainability를 양호하게 만들기도 한다. 아직도 Linux 커널 소스 코드에서 하드탭 폭을 8자로 강제하거나, 많은 오픈 소스 프로젝트들이 컬럼을 80자에서 100자 정도로 제한하는 데에는 그런 이유도 있다고 생각한다.

나는 코딩을 처음 시작했을 때 하드탭 폭을 4자로 설정하여 컬럼 제한 없이 한 줄에 매우 긴 표현식을 매우 자주 썼었다. 지금은 오픈 소스 프로젝트들의 여러 관례를 내 습관으로 만들어서 하드탭을 쓰게 되면 폭을 8자로 맞추고 (하지만 그냥 소프트탭을 쓰곤 한다) 컬럼도 80자까지만 사용하고 있다. 대신 한 줄에 긴 문장을 쓰는 대신 짧은 여러 문장을 쓰고, 적은 함수 각각에 깊은 들여쓰기를 하는 대신 많은 함수에 적은 들여쓰기를 하게 되었다. (관례를 따르려니 어쩔 수가 없었다.) 여러가지 소스 코드 컨벤션을 써본 사람으로써 말할 수 있는 것은, 저런 제약도 경험해보지 않은 사람들이 막연히 생각하는 것만큼 멍청하거나 불편한 것만은 아니라는 점이다.