가독성

에디터에서 탭이라는 것은 정말 C 언어에서의 "{"의 위치만큼이나 논란의 대상입니다. 왜냐면 가독성 같은 문제와 연결되어 있기 때문이죠.
탭 사이즈의 디폴트 값은 8 이라는 것은 잘 알려진 사실입니다. 그런데 이 크기가 왜 문제를 일으킬까요? 제 나름대로의 생각을 정리하자면, 두 가지입니다.
  • 모니터가 작았습니다.
  • 자동들여쓰기가 안되었습니다.
모니터의 크기가 작던 시절 8 칸을 옮긴다는 것은 화면상에 공백을 가져오는 요소를 가져옵니다. 이것은 모니터의 오른쪽 반에만 코드가 나오는 형국이 발생하게 됩니다.
들여쓰기를 많이 해야하는 상황에서, 지금처럼 엔터만 누르면 되는 자동 들여쓰기가 안되는 상황에서 매 행마다 공백을 넣어야하는 작업을 탭으로 했습니다. 이런 경우에서도 미세 조정을 하고 싶은 생각이 들게 되었습니다.
지금과 같이 모니터가 큰 상황에서도 탭가지고 문제가 생기는건, 아마도 netsted if, netsted loop 등을 남발하는 코드가 많기 때문이 아닐까 생각합니다.
와이드 모니터에서 작업하다가, 탭사이즈 2짜리를 보면, 모든 코드가 다 왼쪽에 몰려 있습니다. . :)

문제

탭을 굳이 구분하자면, 세 가지가 있습니다.
  • 들여쓰기 탭: 행의 맨 앞에 사용하는 탭
  • 주석, 인자등의 위치를 조절하는 탭: 행의 중간에 사용되는 탭
  • 행이 길어져 나눌 때, 두번째 행의 시작 위치를 맞추는 탭
이 중에서, 탭사이즈가 다른 상황에서 보게 되는 경우 문제가 생기는 경우,
  • 들여쓰기 상황에서는 탭과 스페이스가 섞이는 경우
  • 중간의 탭은 거의 모든 상황에서
  • 긴 행을 나누는 두번째 행의 상황에서는 거의 모든 상황에서
문제가 생기게 됩니다. 또, 코드 외적인 환경에서 문제를 보면
  • 이메일로 코드 변경 내역을 받아 볼 때 달라 보입니다.
  • 웹 기반으로 코드를 볼 때 문제가 생깁니다.
  • 탭조절 안되는 위와 같은 환경에서 프린터를 할 때도 문제가 생깁니다.
  • 가끔, 워드 프로세서로 코드를 옮길 일이 있을 때도 문제를 일으킵니다.

제안

탭을 사용하는 환경이 다양한 사람이 존재하게 되는 팀에서는 다음과 같은 방법을 제안합니다.
  • 개발자 에디터의 옵션들을 모두 맞춰 탭사이즈를 일치 시킵니다.
  • 탭을 네 번정도 누르면 되는 정도로 코드를 작성합니다. 
  • 들여쓰기는 탭으로만 하고, 긴행을 나누거나, 중간의 인자를 맞추는 일은 스페이스로 합니다.
  • 또는 들여쓰기까지 모두 스페이스로 합니다.
저는 탭사이즈를 어떻게 쓰냐고요? 저는 사실 귀찮아서 8로 씁니다. 동시에 많은 프로젝트의 소스를 건드릴일이 있을 때, 프로젝트마다 tabsize를 바꿀 수 있으면 좋겠습니다만, 그게 에디터 전역 설정이라 잘 안되더라고요. 

재미로 오래된 글을 살짝 읽어 보시면...
여기 말투가 좀 격한 것은 원래 그러려니 하세요.
신고
  1. daybreaker 2008.11.10 02:25 신고

    그나마 vim에서는 주석문 형태로 해당 파일에만 적용되는 에디터 설정을 넣을 수 있어서 편리한데, 프로젝트 단위로 적용하려면 모든 파일에 손대야 하므로 좀 귀찮은 면이 있습니다. 프로젝트 디렉토리에 별도의 vimrc를 넣어두면 그 하위 디렉토리에 있는 파일을 열 때는 자동으로 그걸 인식한다든지 이런 기능이 있으면 좋을 것 같네요.

+ Recent posts