디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

어떡해 일기 #18 :: C언어를 해야하는 이유

어떡해갤로그로 이동합니다. 2009.12.28 22:37:18
조회 1139 추천 0 댓글 36


어떡해 일기는 제가 \'쓸만한 프로그래머\'가 되기까지의 하루하루를 기록해 나갈 것입니다.
이것은 제가 그날 하루동안 프로그래머가 되기 위해 노력한 사항과 에피소드를 만천하에 공개하여,
저 스스로 나태해지지 않도록 채찍질 하기 위함과 동시에 선배님들에게 조언을 구하고자 함입니다.
자유분방한 DC에서 올라가는 글인 만큼 그날의 기분에 따라 존칭, 돌연 막말 등 일관성 없는 말투가 있을 수 있습니다.

길다는 의견이 많아 앞으로는 되도록 일기를 짧게 쓰도록 합니다.
더 많은 형들과 이야기를 공유하기 위해서입니다.

+++++++++++++++++++++++
현재 사용중인 교재+++++++++++++++++++++++++++++

주교재 : 세계제일 C 언어 시작하기(베스트북)
교양 교재 : 생각하는 프로그래밍(인사이트)

3주차 : C언어 기초 정리 및 자료구조 습득

==========================================시작

프로젝트도 파토났겠다.
열혈강의 C에서 배운 내용을 정리하는 시간을 가졌습니다.
저번 프로젝트에서 부족한 면을 많이 깨달았기 때문에 다시 한번 기초를 돌아보는 시간을 갖기로 한거죠.
처음에는 열혈강의C를 다시보고 예제를 풀고 있었습니다.
이미 한번 풀었던 문제임에도 신기하게도 몇시간을 투자해도 잘 안풀리는 문제가 있는가하면,
예전에 했던것이 생각나서 슥슥 풀리는 문제도 있더군요.

결국 열혈강의 책 조차도 겉핥기로 공부가 되었다는 뜻이겠죠.
그나마 처음 C를 접했을 때와는 달리 문법적 오류도 적고 문제를 대하는 데에 있어서
차분하게 머리속으로 어떤 식으로 구현해야하는지 떠오르는 것은 장족의 발전이라 할 수 있었습니다.

다만, 열혈강의 C를 다시한번 끝내고 나서 마지막으로 다른 종류의 C 책을 보기로 했습니다.
본래라면 바로 자료구조로 넘어가기로 되어 있었지만, 열혈강의 C 이외에 다른 관점에서 보는 초보자용 C언어를 알고 싶었습니다.
만약 전혀 다른 출판사의 전혀 다른 저자가 쓴 C언어 교재를 수월하게 이해할 수 있다면.
C언어에 대해서 기초는 잡혔다고 판단할 수 있겠다고 생각했거든요.

선택한 책은 세계제일 C언어 시작하기라는 베스트북의 책이었습니다.
집에 있더군요. 아마도 프로그래밍이 하고 싶어서 충동적으로 산 책중 하나일겁니다.
이때까지만 해도 몰랐죠. 이 책을 펼치는 순간 8시간동안 이 책에서 손을 뗄 수 없을 거라는 사실을 ㄱ-;

첫페이지 펼치자 마자 쇼킹했습니다.
열혈강의 C가 문법적으로 프로그램을 짜는 것을 방법적으로 제시하고 있는 것에 비해서.
세계제일 C언어 시작하기는 C언어의 문법이 가지는 의미, 그리고 메모리상에서 일어나고 있는 일을 상세히 설명해주고 있더군요;

우연찮게 책을 잡는 순서를 잘 잡은거 같았습니다.
만약 열혈강의를 보기전에 이 책을 봤더면, 이게 뭔소린지 몰라서 집어던졌을 책이었겠지만,
우습게도 열혈강의를 본 시점에서 이 책을 보니, 열혈강의에서 놓쳤던 점을 참 많이 알게 되더군요.

가령.... 열혈강의 C에서는 int 자료형이 메모리상 4byte를 차지하고 과거 터보 c의 경우 2byte를 차지하는 이유는
컴파일러의 차이라고 짧막하게 이야기합니다.

그런데 이 녀석은 컴파일러의 차이라기 보다는, 터보c가 구현될때의 환경 즉, 당시 주력 컴퓨터가 16bit 였고, 32bit로 넘어오는 과정에서 일어난
메모리 관리 체계의 차이라는 점을 서술해 놨더군요. 가령 16bit 컴퓨터의 경우 cpu가 한번에 처리할 수 있는 데이터량, 즉 word의 크기가
2byte(8bit*2=16비트), 그리고 현재 제가 컴파일하는 32bit 환경의 경우 word의 크기는 4byte가 되는거죠.
int는 컴파일상에서 기본형으로 연산을 수행하니 당연히 word에 영향을 받게 되고 거기에 따라서 int의 데이터 크기가 정해지는 거였습니다.
따라서 기본 환경이 64bit로 완전히 전환되면 컴파일러 상의 int는 4byte가 아닌 8byte가 될 수 있는 가능성을 보여줍니다.
때문에 결국 컴파일러의 문제라기 보다는 사용하는 시스템의 환경이 중요한 요인이 된 것이죠.
이에 8bit와 16bit로 넘어오게 되면서 메모리상의 관리 변화도 거론을 하더군요.
세그먼트:오프셋.
비트를 구현하게 되었을 때는 하위 비트 그리고 상위비트 순으로 구현.
재미있게도 제가 왜 늅늅들이 C언어로 프로그래밍을 시작해야하는지, 그리고 C언어 가치와 활용. 포인터의 역할이 얼마나 중요한지를
열혈강의 보다는 이 책에서 배운 것 같습니다.
이 책에 비교하면 열혈강의는 아무래도 C++이나 다른 언어로 넘어가기 위한 과정으로서 C언어를 배운다는 느낌으로 서술한 책인것 같습니다.
물론 완전초보용 책은 아니네요.
(이 책이 500페이지를 조금 넘기는데 포인터가 80페이지에 거론되고 있습니다. C와 포인터는 뗄레야 뗄수 없다는 서술을 하고 있기 때문이죠.)

이책을 훑어보다시피 공부를 하면서 느낀 것은.
C로 프로그래밍을 시작해야하는 이유가, C언어가 가진 언어적 특성이 JAVA나 C++ 을 포함한 대부분의 언어를 활용하는 데에 있어
기초적인 부분들을 모두 익힐 수 있다는데에 있는것 같았습니다.

머리로는 알고 있었지만, 실제로 이런식으로 뒤통수를 맞으니까 확실히 와닿네요.
그리고 알면 알수록 내용이 깊어집니다.
정말 공부하면 할수록 두근두근함이 멈추질 않는데, 한편으로는 끝이 없는 공부가 될 것 같아서 걱정도 앞서네요.
하지만, 당분간 기초가 생길때까지 C언어를 파고 들고 싶습니다.
돈이 안되는 언어를 잡고 있다는 생각을 하실수도 있지만, 정말 이녀석을 어느정도 활용할 줄 알고 이해하면
다른 언어를 다룸에 있어 정말 이해력이 빨라질 것 같습니다.

어?

오늘 길군요 ㅋ

아직 공부가 끝나지 않았습니다. 조금 강행군을 해볼까 합니다 ㅋ

그럼 횽들 수고하세용.


오늘 일기 끄 ㅌ








추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 외모와 달리 술 일절 못 마셔 가장 의외인 스타는? 운영자 24/07/01 - -
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2