개발&Development/프로그래밍 일반

텝팔과 텝사...

겐도 2005. 3. 28. 19:28
C 프로그램 들여쓰기 크기 논쟁 from KIDS - slowxslow님의 블로그

1999년도에 이런 일이 있었다니... 중간에 나오는 학부생은 꺼져라는 말에 약간 가슴이 아팠습니다만... 아무튼 Coding Style에 대해 몇자 적어 볼까 합니다.

Quantum Leaps C/C++ Coding Standard

다른 자료들도 들고 있습니다만 이 자료도 상당히 재미있습니다. 특히 TAB과 관련해서는 이 문서에서 이야기하는 요소도 있구나 하는 생각을 들게 해 주었으니까요. 그래서 KIDS의 이야기를 봤을때 문득 떠오르는 문서기도 하였습니다. 뭐 자세히 읽어 보지 않을 분들을 위해 몇군데 발췌를..

In General Rules
No tabs are allowed in the source code because tabs are rendered differently on different devices and bring only insignificant memory savings. Preferably, tabs should be disabled at the editor level. At the very least, they should be replaced by spaces before saving the file.

3.2 Indentation
All indentations must be exactly four (4) spaces to indicate scope.

저 문서에서 "텝사주의"를 주장하는 것은 중요하지는 않습니다. 그보다는 General Rules에서 이야기하는 No Tabs 이야기가 재미있죠. 2005년에 업데이트 되었다고는 하는데 환경에 따라 Tab이 부적절하게 보일 수 있다고 지적하고 있습니다. 그래서 탭을 쓰지 마라고 제가 이야기 하는 것은 아닙니다. 환경에 따라 정하는 것이라고 하고 싶군요.

우선 탭이 8이 되면 사실 프로그래밍을 하면서 너무 쑥쑥 들어가는 경향이 큽니다. 언어에 따라 keyword들이 좀 길면 8정도 들어가도 상관이 없지만 C/C++의 if나 for 같은 statement를 보면 8씩 하기 보단 4가 이쁘긴 합니다. 탭문자의 사용과 관련해서는 한 Statement가 길어질때 들여쓰기를 어쩔수 없이 Space의 도움을 받는 경우가 있는데 이것이 환경에 따라서 어긋날 수가 있는 것이죠. 그래서 No Tabs의 의견은 상당히 흥미롭습니다.

허나 코딩 스타일에서 이 문제를 다룰때 텝8/텝4를 정하는 것이 하나가 다른것 보다 무조건 좋다라는 것 보다는 상황에 따라 정하기 나름이 아닌가 생각이 듭니다. 개발 언어를 어떤 것을 쓰고 개발 툴이나 에디터가 무엇이냐에 따라 이런 부분들이 가변적이라 보는 것입니다. 가령 모든 사람이 같은 에디터를 쓴다면 Tab 문자를 사용해도 무방할 것입니다. 좀더 이야기를 발전 시킨다면 스타일은 스타일일뿐 무엇이 좋다 혹은 KIDS의 논의글에서 이야기 했던 그런 것들이(텝8이는 블라블라 하다, 텝4가 정답이다 등등) 전적으로 적용되지는 않는 다는 것입니다.

오히려 우리가 생각할 것은 프로젝트를.. 혹은 개발팀이나 개발 그룹 등을 유지할때 코딩 스타일을 동일화 하는 것은 중요하다는 점입니다. 텝이나 인덴테이션에 대해 만약 누군가 질문을 한다면(KIDS의 이야기의 시작이죠) "개인적으론 2+2를 선호합니다만 개발그룹의 표준에 충분히 따를 수 있습니다"가 오히려 정답이 아닐까 합니다. (저는 VS 디폴트 셋팅에 따릅니다. --;) 반대로 팀장이라는 사람은 저딴 질문이나 생각할 시간에 Coding Style에 대해 체계적으로 정리하고 있어야 겠죠.

~~~~~
참고. KIDS는 kids.kornet.net 주소로 Telnet을 이용하여 접근할 수 있는 BBS입니다. 특히 원글의 어노니보드에는 간간히 재미있는 글들이...