예전에 어떤 프로그래머와 대화를 하다, 자신이 사장이라면 C 프로그래머를
뽑을 때, 인덴트로 이용할 탭크기가 8이 아니면 무조건 불합격을 시키겠다는
이야기를 들은 적이 있습니다.
이 양반의 논리는, 탭 8 보다 작은 인덴트를 쓰는 사람들은 불필요한 네스팅을
많이 하기 때문에, 머리가 나쁜 사람들이라는 것입니다. 불필요한 if/for 등을
남발한다는 것이지요.
꼭 탭 8을 사용해야 한다는 것에는 동의하지 않지만, 탭크기를 얼마나 주느냐 하는
문제는 단순한 코딩 스타일의 문제만은 아니라고 생각합니다.
탭크기가 코딩 스킬을 대변해 주는 면이 있다는 것이지요.
단, 이 논쟁은 사실 Java 나 C++에는 적용되기가 어렵습니다. 아무래도 객체지향적
특성때문에 C보다 코드가 옆으로 많이 퍼져나갈 수 밖에 없기 때문입니다.
[4칸 탭]

[8칸탭]

제 경험상 탭 8칸 주의자들은 특징은 대체로 다음과 같습니다.
1. 두뇌 회전이 빠르고 기억력이 좋은 편입니다.
2. 결벽증 같은 것이 있어 보기 좋은 코드를 쓰는 데 많은 노력을 들입니다.
3. 경력이 길거나 비 윈도우 계통 OS에서 개발을 시작했습니다. (아마도 VC++ 내장
에디터의 기본 탭이 4이기 때문이라고 추정합니다.)
하지만 아무래도 네스팅을 최소화 해야하다 보면, 코드와 알고리즘이 1:1로 대응하기가
어려워집니다. 또 할당/해제 또는 열기/닫기의 쌍을 맞추기가 어려워지는 경우가 생기고요.
이런 문제들을 머리 속으로 해결해야 하다보니 머리가 좋아야 겠지요.
저도 아무 생각없이 네스팅을 하는 것에 대해서는 반감을 가지고 있지만,
8칸 탭은 구조적 프로그래밍이 불편해진다고 봅니다.
코드 블럭의 블랙박스화가 어려워지고, 변수의 스코프가 넓어질 수 밖에 없지요.
One entry, One exit 규칙을 지키기도 어렵습니다.
여러분들은 또는 여러분의 팀은 과연 몇칸 탭을 사용하고 계신가요?
참, 여기서 탭은 자기 마음대로 에디터 설정을 바꾸면 되는게 아닌가라는 분이 계실텐데요,
4칸 탭으로 작업하던 코드는 8칸으로 바꾸면, 80칼럼을 훌쩍 넘어가버리는 문제가 생기기
때문에 간단한 문제만은 아닙니다.

댓글을 달아 주세요
3칸탭을 쓰는 저는 뭘까요 ㅠㅠ
3칸은 놀랍군요. ㅎㅎ
특별한 이유라도 있으신지? 두칸은 저도 본적이 있습니다만.
갓 학교에서 프로그래밍을 조금씩 배우기 시작한 저로써는 뭔지 모르겠군요 ㅡ,ㅡ
처음 배우시는 것이라면, 8칸 탭으로 시작해 보는 것도 나쁘지 않다고 생각합니다.
아무래도 불필요한 네스팅 (루프, 조건 블럭 등)을 많이 할 때 이기 때문에 탭을 넉넉하게 쓰면, 금방 문제를 알아차릴 수 있지요.
또 현업에서 많은 분들이 4칸 탭을 사용하기 때문에, 탭 크기에 대한 고민을 해 볼 수 있는 기회도 생길 터이구요.
8칸 탭으로 된 소스를 심심치 않게 봤는데....VC만 몇년을 써와서 그런지...적응이 안되더군요-0-;
아무래도 4칸에 익숙하다 8칸을 보면 휑하게 느껴지지요.
탭에 대한 고민을 저도 많이 했었는데, 꽤 의미가 있군요...탭8칸이 결벽증이 있다는거는 동의합니다...ㅋㅋㅋ
4칸탭 주의자 입니다. 8칸탭이 아니면 네스팅을 많이 하게 된다는건 근거가 없는 말 같은데요. 아무리 생각해봐도 논리적 연관성이... -_-; 네스팅을 많이 못하게 되서 배수의진 때문에 그렇게 된거라면 모르겠습니다만..
8칸탭이 아니면 네스팅을 많이 하게 된다기 보다는, 8칸탭은 네스팅을 많이 하기가 힘들어 지니까 (80 칼럼을 쉽게 넘으니까) 4칸탭 보다는 네스팅에 더 예민해 지겠지요.
저도 3칸 쓰긴 하는데^^;
예전에 다른 곳에서 위 내용의 글을 봤을 때는 몰랐는데
위에 4칸과 8칸의 코드를 비교해서 보니 8칸도 먼가 매력이 있어보이네요-_-!
3칸 쓰시는 분들도 많은가 보네요.
혹시 어떤 계기로 3칸탭을 쓰시게 됬는지 알려주실수 있나요?
소프트웨어 엔지니어에게 2의 배수가 아닌 수들은 왠지 익숙하지 않은 것 같아서 ㅎㅎㅎ
아직 학생이라 코딩 스타일이 정해지지는 않았는데
딱히 이유가 있는 것은 아니고 가로 세로 비율이 맞지 않는다는 느낌을 받아서요~=ㅁ=;
글자 크기보다 인덴트 간격이 넓은거 같아서 3칸으로 설정했어요^^;
우리 과 교수님께서는 3칸을 강요하시더군요 그 이상 띄게되면 가독성이 떨어진데나 어쩐데나-_-;
4칸과 8칸의 차이점은 분명 존재하겠지만 단지 그 이유 하나만으로 인재를 채용하지 않겠다고 발언하는 것은 무슨 심보일까요? 그렇게 독단적이고 융통성이 없어서야-ㅁ-;
가독성이 좋게 느껴져서 3칸을 쓰신다면, 그것만으로도 훌륭한 이유라고 생각합니다.
인력난에 시달리며 회사를 운영하는 입장에서는, 탭사이즈에 대한 자기 생각을 이야기 할 수 있는 정도의 인재라면 언제라도 환영입니다. ㅎㅎ
솔직히 경력을 시작하는 프로그래머의 경우 MSVC의 디폴트 탭인 4칸이 아닌 다른 사이즈를 써 본 것만으로도 가점을 주고 싶은 심정이에요. 아무래도 자기 생각이 있거나, 모험심이 있다는 반증일 테니까요.
저희 회사의 경우는 코딩 스타일 가이드 라인이 없습니다. 너무 스타일을 지키려 딱딱하게 굴다보면 독선적으로 될 수 있기 때문이며, 스타일이 다른 사람의 코드를 읽지 않으려 하게 될 가능성이 크기 때문입니다.
전 프로그래머는 아니지만 가끔 코딩을 할때는 6칸탭을 씁니다. --;
4칸으로 하면 탭 부분이 한눈에 보이지 않는 경우가 꼭 급할때 생기더군요. 그렇다고 8칸으로 하면 가로스크롤 문제도 있거니와 너무 삭막해서. :)
요즘은 80컬럼 이상을 쓰는 경우가 많으니까 8칸도 크게 문제될건 없을 것 같기도 하네요. 터미널 환경에서 작업을 해도 80컬럼 이상 표기되니까요.
여튼 4컬럼은 중요한 순간에 잘 보이지 않는다가 결론. ㅋ
6칸은 많은 K&R을 비롯한 전산 관련 서적들이 사용하는 탭이지요.
책에서는 예제 코드들이 많기 때문에 실제 사용하는 코드들 보다는 네스팅이나 가로로 퍼져나갈 요소들이 적지만, 책이라는 특성상 가로폭이 넓지 않아서 채택한 탭사이즈가 아닐까라고 감히 추정해 봅니다. ㅎㅎ
80컬럼은 관습이 무섭다는 말 밖에 ㅎㅎ 저는 코딩 시트를 사용해 본 적도 없고, 80칼럼 터미날을 사용한것도 4-5년 정도 밖에 되지 않습니다만, 아직도 80칼럼을 넘기면 안될것 같은 강박이 있습니다.
8칸이라....흐미....전 2칸씁니다. 제가 보기 힘든 케이스가 된건가요? 2칸으로 해서 wrap 사이즈를 132로 세팅해놓고 작업하는데...텔넷도 그렇게 ....전 어떤 성격일까요..ㅎㅎ
참고로, 전 2칸 강박이 있는 것 같네요. 다른 분의 소스를 분석할때도 2칸으로 만들어놓고 분석한다는;;;;;
Wrap을 132 쓰시면서, 2칸탭을 쓰시면 오른쪽이 많이 남지 않나요?
2칸탭을 쓰는 분들을 종종 봤지만, 132칼럼에서 2칸탭은 생소하군요. ㅎㅎ
전 탭안씁니다. 특히 VC쓰는 사람들 소스 보면 탭썼다 스페이스로 했다하는 사람들이 있는데--자기도 모르게 쓰는지 아니면 남의 코드에 약간 덧붙이다 그리 됐는지 몰라도-- 인덴트가 맞지않아 들쭉날쭉됩니다. Editor를 U-Edit 썼다가 J-Edit 썼다가 다른거 썼다 하면 몽땅 들쭉날쭉됩니다. 그래서 탭 안씁니다.. 그냥 스페이스로 2칸.. 잘 안보인다구요? 쓱 훌터봐서 되는일이면 Edit할 일 없습니다. 자세히 보면 한칸도 잘 보입니다. 전 특히 길게 한줄 쓰는거 싫어합니다. 보기좋은게 결국 생산성도 좋은것 같아요.
재미있는 주제인 듯 하네요. 요즘은 직접 개발하는 일보단 봐주는 입장이지만 ( 실력은 뛰어나진 못합니다 :D )
4탭, 8탭은 본인의 기호 아닐까요?
전 눈이 나쁘지만 안경을 잘 안쓰는 편이라 VS에서 폰트를 24정도로 하고 4탭으로 작업 했던 기억이 나네요.
하지만 모니터등 작업 환경에 따라 조금씩 틀리게 썼던 것 같네요.
그리고 개인적으로 예전에 {} 를 어떻게 놓을까로 고민을 많이 한 적이 있었는데
while문은
while(1)
{
}
if문은
if ( ){
}
이렇게가 보기가 좋더라구요.(지극히 개인적입니다)
아 결론은 개인의 기본적인 스타일이 있어야 하겠지만 회사내에선 기본 적인 코딩 가이드라인이 있어야 된다고 생각됩니다. 나중에 동료들과의 커뮤니케이션을 조금 더 도와 준다고 생각하고 있으니까요.
KLDP의 글을 읽다가 여기까지 왔네요.. ^^
전에는 8칸탭을 썼었는데 가독성 때문에 4칸탭으로 바꿨습니다. (저는 똑똑한 편은 아니라..)
대신 80칼럼에는 좀 민감한 편입니다.
신입사원이 들어오면 80칼럼으로 갈구기 놀이도 종종해서 이상한 취급을 받긴 하지만.. ㅎㅎ
저도 KLDP의 글을 읽다가 오게 되었네요 ㅎ;
전 스페이스로 띄워진 텝이 아니라면 텝 넓이를 개인이 어떻게 쓰든 자유라고봅니다.
텝 칸수 만큼 또 중요한건 블럭 규칙을 어떻게 쓰느냐 로 생각됩니다. if다음에 공백을 넣건 안넣건 실제 불편함은 없지만 블럭을 어디에 두느냐는 눈에 확 들어 오기 때문이죠 ㅎ;
여담이지만 씨샵이 기본으로 스페이스로 된 공백이 텝을 누르면 들어가기 때문에 맘에 안들었었는데 그냥 그런대로 쓰니 씨샵에서 만큼은 신경 안쓰게 되네요.
암튼 2칸 4칸 좋은데 8칸은... 블럭이 3~4개만 되도 저 멀리서 부터 시작 되는 코드 때문에 싫더군요. 그리고 특정한 IDE를 정하고 사용 한다면 아무래도 텝 칸수를 기본 그대로 쓰는게 더 득이 되지 않나 싶습니다.
씨샵을 예로 들어도 어느 개인이 스페이스로 된 텝을 전부 텝문자로 바꾸게 된다면.. 나중에 메모장으로 보게 되면 종종 썪이는 스페이스 텝 때문에 보기 힘들더군요.
그런데 가장 중요한건 텝이든 블럭이든 팀 내에서 확실하게 정하고 코딩을 시작 하면 두가지가 개인의 취향이 어떻든 지장이 있나 싶네요 -0-;;
(그러고 보니 델파이 IDE에선 스페이스 2칸텝이 익숙하네요 =_=;;)