웹표준을 지키는 것은 실력의 문제입니다.

2005-05-10

표준을 지키는 것은 실력의 문제라고 봅니다. 정확히는 ‘공부’의 문제입니다.

과거 C의 소스 코드를 보면 아래와 같은 코드가 많이 보입니다.

main()
{
}

이 코드를 무리 없이 작동합니다만 보다 표준에 가깝게 쓰려면 아래와 같이 써야합니다.


int main(int argc, char *argv[])
{
}

첫번째의 경우 왜 그렇게 썼을까요? 타이핑을 적게 하려고 그리 친 경우가 많지 않습니다. 대부분 후자가 더 표준적인 코드라는 것을 몰라서입니다.


// TODO 표준을 지키자

누가 이런 코드를 C 언어에서 본다면 표준을 지키지 않았거나 – 특정 컴파일러의 확장기능이거나 – C++의 표준을 따르고 있다고 말할지 모르지만, C99 표준에 따라 //를 새로 생긴 표준 주석 표시입니다. C99 표준을 따르는 컴파일러라면 // 를 아주 잘 지원합니다. 표준인지 아닌지 표준을 사용하려면 어떻게 해야하는지 아는 것은 실력에 따르는 문제입니다.

대부분의 웹에서 표준을 어긋나는 경우는 정확히 표준을 모르기 때문입니다. 개발일정 때문에 표준에서 어긋날 이유는 하나도 없습니다. 적어도 표준을 지키겠다는 생각이 있다면 표준 문서를 읽어보고 표준에 따를 것입니다.

고객이 XML이나 Javascript가 아닌 Active-X를 요구했다구요? 고객을 설득하는데 실패했다구요? 그것은 또 설득의 실력 문제이니, 모든 것은 실력의 문제입니다.

이게 개발자들은 더 어렵죠. :-)

14 Comments
2005-05-10 @ 1:33 오후

맞습니다. 결국 공부를 해야 실력이 느는 것이죠. 설득 또한 실력이 있으면 쉽고요.
저도 전공이 아닌 분야에 대해서 시간 나는대로 조금씩 책과 문서를 읽으면서 새로운 것을 배우고 있는 중입니다. 한 번에 해결은 안되겠지만 몇 년 동안 공부하다 보면 조금씩 나아지겠죠.

응답
2005-05-10 @ 9:29 오후

main()은 C++에서는 표준에 적합한 코드이며 C언어에서는 선언이 아닌 정의로만 쓰인다면 맞는 것으로 알고 있습니다.

위의 코드보다는 void main(void)를 쓰는 개발자가 더 문제겠지요. (..) 실력이 없어서라는 말에는 동감합니다.

응답
2005-05-10 @ 10:07 오후

CN// main()이 꼭 표준에 어긋나는 코드가 아니지만 추천 할 코드는 아니라고 생각합니다. xhtml도 표준에 어긋나지 않지만 추천하는 문법이 따로 있는 경우가 있지요.

응답
2005-05-10 @ 10:19 오후

예. C99에서 main() 형태를 비추한다고 들었습니다. :-)
올바른 코드가 훌륭한 것이라는 주장에 동의합니다.

응답
  • Pingback: 김중태문화원 블로그

  • 2005-05-10 @ 11:07 오후

    학교에서 지금 C언어를 배우고 있지만… 학교에서는 main()을 쓰지말고 int main(void)만 쓰게 합니다…

    응답
    2005-05-10 @ 11:08 오후

    int main(int argc, char argv[])
    {
    } →이 것 오늘 배웠습니다…

    응답
  • Pingback: CN의 낙서장

  • 2005-05-10 @ 11:39 오후

    Ego// int main(void)도 가능한 문법이라고 생각합니다. 다만 코딩 스타일의 문제에서 가능한 argument로 여러가지 값을 조절하는 것을 추천하기 때문에 최대한 command line argument는 받아주도록 코딩하는 것이 좋을 듯 싶습니다.

    CN// 이 땅의 인터넷 평등은 언제쯤 이뤄질지 걱정입니다.

    응답
    2005-05-11 @ 1:54 오전

    저희 학교에서는 void main()이 int main()과 같다고 가르치고 있습니다.
    http://www.postech.ac.kr/class/cs101/faq/faq.html
    엄청나게 위화감이 듭니다.

    응답
    2005-05-11 @ 1:04 오후

    Bopy// “main 함수는 main 함수를 call한 OS(operating system)에 값을 return하는데, 그 값이 사용되는 일은 거의 없습니다.” 이 부분이 최고군요. Unix에서는 이 리턴 값으로 모든 것을 파악하는데 말입니다. 글을 쓰신 분이 아직 Unix 쪽 C 프로그래밍 경험이 부족하셨던게 아닐까 싶네요. 그런데 void main(), int main()이 같다고 설명하는 일은 다소 의외군요. ;-)

    응답
    2005-07-04 @ 8:55 오후

    최근에 웹접근성과 관련한 보고서가 출간되었습니다.

    논의의 단계에서 벗어나 현재 나오고있는 자료라도 알려나갔으면 합니다. 즉 끼리끼리 논의이나 배타적인 논쟁 단계에서 공감의 장을 만들 수 있도록 정보 공유작업이 되었으면 합니다. 일단은 이에 관심있는 사용자층이 홍보에 나서주었으면 합니다.

    아래 3개 파일은 웹개발자들에게 유익한 정보가 될 것입니다.

    ▶ 윤석찬님의 [크로스브라우징 지침서]
    http://www.mozilla.or.kr/docs/web-developer/standard/index.html

    ▶ 행정자치부의 [행정기관홈페이지 구축·운영 표준 지침서]
    http://www.mogaha.go.kr/warp/webapp/board/notice/view?id=424691

    ▶ 웹 접근성을 고려한 콘텐츠 제작 기법(PDF파일)
    http://www.mozilla.or.kr/docs/web-developer/content_authoring_for_accessibility.pdf

    응답
    오창민
    2005-10-02 @ 2:34 오후

    char argv[] => char *argv[]

    가 되어야 하지 않나요…??

    응답
    2005-11-09 @ 2:39 오후

    오창민// 앗! 이런 기본적인 실수를… 지적 감사합니다.

    응답

    답글 남기기

    이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.


    *