[GPG 1 글 1.1] [s1.1] 코딩 스타일 - 탭 간격을 8로!

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

이 글은 예전 GPG 스터디 포럼에 gryu 님이 올리신 주제와 그에 대한 답글들입니다. 원본(Ezboard)은 "<a href="http://pub32.ezboard.com/fgpgstudyfrm2. ... D=14.topic" target="_blank">[s1.1] 코딩 스타일 - 탭 간격을 8로!</a>"입니다.
<div class="imported">
<div class="sep"><span class="cfs">제목: <img src="http://www.ezboard.com/images/posticons/pi_smile.gif" align=absmiddle> [s1.1] 코딩 스타일 - 탭 간격을 8로!
</span></div>
<div class="r">글쓴이: gryu , 글쓴때: 1/5/01 11:24:41 pm</div>

리눅스의 창시자 라이너스(리누스?) 토발즈는 '코드 편집기의 탭 간격은 8이 좋다'라고 말했다고 합니다.

보통 4를 많이 사용하지 않나요. GPG의 코드들은 2에서 4 정도인데, 원래 저자들이 그렇게 하는지 아니면 편집 상의 문제인지 모르겠군요. 어쨌든 탭 간격을 8로 하는 사람은 별로 없는 것 같습니다.

왜 하필 8일까요... 제 생각은 이렇습니다.

코드 편집창 너비를 대충 70칸이라 할 때, 첫 번째 문장에서 탭을 하나 띄우죠. 다음처럼요..


void main(void) {
....첫번째 문장


그리고 if나 for, while 등등 { } 블럭이 하나 내포될 때마다 다시 탭을 띄웁니다.

void main(void) {
....int i=0;
....while(i<10) {
.........루프 안의 문장
....}

만일 한 줄의 문장이 평균 40 글자들로 이루어져 있다고 한다면(DX 예제들 보면 데이터형 이름 하나가 거의 10글자 정도 되더군요..), 남은 빈칸 개수는 70 - 40 = 30, 따라서 탭을 4번 이상 사용하면 코드가 편집창 너비를 넘어가 버립니다(4*8=32).

특히 vi나 Emacs 같은 텍스트 기반 편집기인 경우 코드가 가로 너비를 넘어가면 무척 지저분해지구요. 윈도우 기반이라 해도 수평 스크롤을 해야 하니 불편해 지고 등등등...

탭을 4번만 쓴다고 했을 때... 첫 문장에서 탭을 하나 썼으니, 결론적으로 말하면 {} 블럭이 3번 이상 중첩되어서는 안된다는 뜻이 됩니다...

어쨌든... 탭 간격을 8로 하라는 것은, 8이라는 숫자 자체가 중요하기 보다는 {}를 너무 중첩시키면 안 된다, 더 간단히 말하면 코드의 구조를 간결하게 만들어야 한다... 라는 뜻인 것 같습니다...

실제로 사람이 동시에 기억할 수 있는 것은 5가지 뿐이라는 말도 들어보았습니다. if { for {while { if { if }}}}}이런 식으로 { }들이 중첩되면 엄청 머리가 아파지죠...

코드를 짜다 보면 자기도 모르게 복잡한 코드를 만들어 내게 되죠... 요즘 탭을 8로 하고 코드를 만들어 봤는데 사실 엄청 불편합니다... 그러나 불편하기 때문에 자동적으로 코드의 구조를 생각하게 되더군요...

<p><center>
/*************************
as simple as possible,
but not simpler
*************************/
</center>

<br></p>
<div class="sep"><span class="cfs">제목: <img src="http://www.ezboard.com/images/posticons ... htbulb.gif" align=absmiddle> 음.... 그렇군여...
</span></div>
<div class="r">글쓴이: crc12 , 글쓴때: 1/6/01 3:12:06 pm</div>

<pre>

저는 단순하게
void 함수()
명령어1
명령어2
명령어3

이렇게 나가는데.. ㅡ,.ㅡ 그리고 전부들 풀스크린으로
코딩하지 않나여? ㅡ,.ㅡ 나.. 나만 그런가?
CTRL+F6을 풀스크린단축키로 바꾸어서 풀스크린으로 하고
플밍하다가 다른파일로 가려면 Ctrl+Tab 또는
Ctrl+Shift+Tab 이거.. 데브니아까에 올라왔던
거 있잖아여.. 파일 밑으로 나오게 하는거.. 그거
쓰니가 정말 편하던데. 그래서 코딩은 신경을 안쓰고
짠다는 무책임한 ㅡ,ㅡa

</pre>

<p></p>
<div class="sep"><span class="cfs">제목: <img src="http://www.ezboard.com/images/posticons ... htbulb.gif" align=absmiddle> Re: [s1.1] 코딩 스타일 - 탭 간격을 8로!
</span></div>
<div class="r">글쓴이: makefile , 글쓴때: 1/7/01 1:53:38 am</div>

오래전 kldp geek에 올라왔던 예기인데...

탭간격 8은 들여쓰기를 적게 사용하게 유도하기 위해서 말한겁니다. 저도 예전에 들여쓰기 엄청 써먹을려고 간격 2를 일부러 사용한 적이 있어서 잘 알죠 <!--EZCODE EMOTICON START :smile: --><img src=http://www.ezboard.com/intl/aenglish/im ... /smile.gif ALT=":)">

들여쓰기가 많아지면 한 함수의 라인수가 많이 증가하고 그 코드를 보는 사람에겐 상당히 부담이 됩니다.

"보기 쉬운 코딩을 하자." 중 하나의 방법입니다.

여러 코딩가이드라인을 참고하시면 왜 그러는지 감이 잡히실겁니다.

<p></p>
<div class="sep"><span class="cfs">제목: <img src="http://www.ezboard.com/images/posticons ... htbulb.gif" align=absmiddle> 그런 거였군요...
</span></div>
<div class="r">글쓴이: gryu , 글쓴때: 1/7/01 11:21:56 pm</div>

그래도 저는 제 해석이 더 마음에 듭니다 ^^

그리고... 저는 다시 4로 돌아왔습니다 --;. 8은 도저히 적응이 안 되네요...

참... 파이썬이라는 언어는 아예 들여쓰기가 구문 규칙에 포함되어 있더군요... 들여쓰기가 틀리면 구문 오류가 되는..

파이썬요즘 관심을 많이 끌고 있던데.. 킹덤 언더 파이어가 스크립트 언어로 사용하기도 했다죠 아마...

그나 저나... KLDP는 정말 부럽습니다... 자발적인 참여, 공유 정신 등등등....
<p><center>
/*************************
as simple as possible,
but not simpler
*************************/
</center>

<br></p>
<div class="sep"><span class="cfs">제목: <img src="http://www.ezboard.com/images/posticons ... htbulb.gif" align=absmiddle> Re: 그런 거였군요...
</span></div>
<div class="r">글쓴이: ahastudio , 글쓴때: 1/10/01 10:20:14 pm</div>

음... 들여쓰기의 규제라..
솔직히 저는 외국 애들이 짠 소스보면 머리가 띵하던데..
( 나만 그런 건가.. 내가 구한 소스들만 그런 건가.. T_T )
내 소스를 누군가를 보여준다는 게 꼭 필요한가부터 시작해서.. 과연 Viewer가 무엇인가..의 문제까지..
( 제 경우엔 모든 편집기와 Viewer가 Tab이 4로 정해져있고, 절대로 스페이스 등으로 들여쓰기를 하지 않죠. 모두 Only Tab.. -_-; )
( DX 예제나 MFC 등을 보면 가끔씩 스페이스로 된 게 꽤 있더군요. 이러면.. Visual Studio가 아닌 메모장에서 열어보면 엽기적으로 된다는.. T_T )
뭔가 모르게 얘기가 이상하게 갔는데...
어떤 표준적인 것도 중요하겠지만...
외국 애들 소스 보면서 느낀 게...
내가 아무리 소스를 예쁘게 꾸미려고 해도
그 지저분한 소스보다 좋은 결과물이 나오는가...라는
문제가 있더군요.
그렇다고 그 친구들이 유지보수를 못하는 것도 아니고... -_-;
어느정도 권유를 받아들일 필요는 있지만.. 그래도 중요한 건 편한 대로 하는 거겠죠.
어짜피 들여쓰기 규제도 결국엔 보기 '편한' 걸 위한 거니까여.. ( 음.. 아키텍처에도 관련이 있나..? 그럴 수도 있겠군.. T_T )
그냥.. 쓰다보니.. 앞뒤가 안맞는다는... 좌절.. 털썩..
하여튼.. Viewer에 따라 Tab이 다르다는 얘기를 하고 싶었다는..
물론.. Tab을 8로 하라고 한 분(내게 이름을 외울 것을 기대하지 마라.. -_-<!--EZCODE EMOTICON START :wink: --><img src=http://www.ezboard.com/intl/aenglish/im ... s/wink.gif ALT=";)"> 의 의도는 '작업할 때'였겠지만여.. ^^;


개인적 발언 - 발췌/근거/인용/기사화 될 수 없음.
<p></p>
<div class="sep"><span class="cfs">제목: <img src="http://www.ezboard.com/images/posticons ... htbulb.gif" align=absmiddle> Re: 그런 거였군요...
</span></div>
<div class="r">글쓴이: ahastudio , 글쓴때: 1/10/01 10:24:45 pm</div>

으음.. 여담인데..
Tab을 4로 놓고 써도 4번 이상 Tab이 들어가게는 못쓰겠더군여.. -_-;
제가 특성상 Full Screen이나 Bar의 분리를 하지 않고 에디터 창을 도스 시절과 비슷한 크기로 두기 때문에.. 쿨럭...
가로로 길어져서 화면 밖으로 나가는 걸 불안해서 못보는 성격이라... Tab이 자연히 많이 들어갈 수가 없더군여.. -_-;
오히려 들여쓰기보다 화면 밖으로 못나가게 다음 줄로 넘긴 글자들을 오른쪽으로 밀기 위해 Tab을 더 많이 쓰는 듯.. -_-;
그냥.. 잡설이었습니다. T_T


개인적 발언 - 발췌/근거/인용/기사화 될 수 없음.
<p></p></div>