C 프로그래머가 알아야 할 것들 - Chapter 6 자료 구조 김성훈 (sunghun84@nate.com) (1) 자료 구조란? 프로그램이 어떤 일을 할 때에는, 그 일을 하기 위해 필요한 데이터가 존재 합니다. 예를 들어, 비디오 대여점 관리 프로그램을 작성한다고 생각해 봅시다. 우선 비디오 정보들이 필요합니다. 비디오의 정보에는, 비디오에 담긴 미디어의 작품 명, 감독, 출연진 (혹은 성우) 등과, 비디오의 위치, 대여료, 대여기일 등의 정보를 포함합니다. 그리고, 회원 정보도 필요합니다. 회원 정보에는, 회원의 이름, 나이, 주소, 전화번호, 대여한 비디오 정보가 포함 될 것입니다. 이 정보들이 있어야만, 비디오 대여 관리를 프로그램으로 처리 할 수 있습니다. 이런 정보들을 어떻게 저장하고 관리 ..
C 프로그래머가 알아야 할 것들 - Chapter 5 메모리와 포인터 김성훈 (sunghun84@nate.com) (1) 메모리를 알자 우리가 계산을 할 때에 일반적으로 데이터와 연산자가 필요합니다. 예를 들어, 1 + 2 라는 식을 계산 하기 위해선, 1과 2라는 데이터가 필요하고, + 라는 연산자가 필요하죠. 우리가 노트에 계산을 할 때에는 계산 결과를 노트에 표기 합니다. 계산 결과를 기록해 두는 이유는 그 계산 결과를 가지고 다른 연산을 해야 하거나, 그 결과 자체가 의미를 갖기 때문입니다. 컴퓨터에서 계산된 결과를 위해서 어떻게 해야 할까요? 바로 변수에 저장하면 됩니다. int a = 1 + 2; 이렇게 하면, 1 + 2 의 결과가 변수 a에 저장 됩니다. 아쉽게도(?) 변수 a도 결국 어딘가..
C 프로그래머가 알아야 할 것들 - Chapter 4 프로그램 언어 김성훈 (sunghun84@nate.com) (1) 왜 문법을 배워야 하는가? 한국어를 할 줄 모르는 독일인과, 독일어를 할 줄 모르는 한국인과 대화가 가능할까요? 바디 랭귀지로 하면 되지 않느냐는 분도 계시겠지만 그것도 어느 정도 한계가 있기에, 제대로 된 의사소통은 불가능할겁니다. 컴퓨터는 0과 1 (2진수)밖에 인식하지 못한다고 배웠습니다. 컴퓨터에게 명령을 내릴 때, 00001110 01010101 이런 식으로 모든 명령을 내려야 한다면 프로그램을 만드는 데에 드는 시간이 막대할 것입니다. 그래서, 기계어에서는 16진수 (2진수를 4개씩 묶어서) 표현하고 있습니다. 00001110 01010101 -> 0x0E55 2진수일 때보다..
C 프로그래머가 알아야 할 것들 - Chapter 3 운영체제와 컴퓨터 원리 김성훈 (sunghun84@nate.com) (1) 운영체제란? 초기에 컴퓨터는 컴퓨터를 키자마자 프로그램이 담겨 있는 디스크를 삽입해야만 했습니다. 그리고 특별한 경우를 제외하고는 다른 프로그램 사용시에는 재 부팅 시켜야만 했습니다. 이 방법은 매우 불편했습니다. (비디오 게임기들은 이 방식을 채용하고 있는 경우가 많습니다) 그래서 유닉스, MS-DOS등의 운영체제가 나오게 됐습니다. (참고로 MDIR은 운영체제가 아닙니다. 인터페이스를 제공해주는 프로그램이죠) 각 운영체제하에 프로그램을 구동시킨 후, 프로그램 종료 시에는 그 운영체제로 돌아오게끔 하는 방식을 취한 것이죠. 이전에는 그래픽 카드나 프린터, 사운드 카드마다 출력..
C 프로그래머가 알아야 할 것들 - Chapter 2 비트의 법칙 김성훈 (sunghun84@nate.com) (1) 비트가 뭐지? 비트란 이진수(Binary Digit )의 약자로써 컴퓨터에서 제어 가능한 데이터의 최소단위입니다. 하지만, 컴퓨터에서 입 출력할 때 사용하는 최소 단위는 바이트죠. 둘 다 최소단위라는 건 알겠는데 정확한 차이가 뭐냐고요? 비트란 저번 강좌에서 배웠던 2진수 10 (10진수 2)을 2비트(2진수 2자리 수이기에)로 표현 가능하고 제어 가능하단 의미고, 바이트는 비트 8개가 모여서 구성된 것이 1바이트로, 파일이나 데이터 형의 최소단위로 쓰입니다. (2) 프로그래밍과 비트는 무슨 상관일까? 비트가 2진수를 의미한다는 건 알겠는데 도대체 프로그래밍에서 비트가 무슨 의미가 있는 ..
C 프로그래머가 알아야 할 것들 - Chapter 1 진법 김성훈 (sunghun84@nate.com) (1) 왜 진법에 대하여 배워야 하는가? 진법이란, 수를 세는 방법을 의미합니다. 수를 셀 때, 0부터 몇까지 세는지를 의미한다고 생각하시면 됩니다. 우리가 수를 셀 때, 0~9까지 세지요? 이 것을 10진법이라고 부릅니다. 시간에서 분, 초 등을 셀 때 쓰이는 0~59까지 세는 방법을 60진법이라고 합니다. 이와 달리 컴퓨터는 전류가 흐를 때(1)와, 아닐 때(0) 밖에 구분하지 못하기 때문에, 0과 1로써 수를 세는데 이를 2진법이라고 부릅니다. 게임과 메신저, 음악 재생과 같은 것들이 0과 1만으로 된다는 게 말이나 되냐며 못 믿으실 분들도 계실 텐데요, 이 것은 챕터2 비트의 법칙에서 자세히 설..
- Total
- Today
- Yesterday
- 디버깅
- 바로가기 프로그램
- 게임데브포에버
- 좋은 프로그래머
- 리버스 엔지니어링
- ftp
- 엘키
- 임백준
- SDL
- EasyExec
- ruby
- EzShortcut
- Ruby on Rails
- SQLite Spy
- perfmon
- c언어
- RoR
- 조엘 온 소프트웨어
- Rails
- 멀티스레드
- 루비 온 레일즈
- 루비
- 게임개발포에버
- TDD
- TraceRoute
- 디자인 패턴
- CppSQLite
- svn
- MS-SQL
- NDC2013
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |