이미 소장하고 있다면 판매해 보세요.
|
Chapter_01. CPU를 알면 프로그래밍이 보여요!
Story 01. CPU의 내부를 자세히 살펴보자! Story 02. 레지스터로 이루어진 CPU의 세계 Story 03. 프로그램의 흐름은 프로그램 카운터가 책임진다! Story 04. 알고 보면 재미있는 조건 분기와 반복의 원리 Story 05. 함수 호출의 베일을 벗겨 보자! Story 06. 찰떡궁합! 베이스 레지스터와 인덱스 레지스터 Story 07. CPU는 단순한 작업만 수행할 수 있다? Chapter_02. 컴퓨터는 2진수만 사용한다구요! Story 01. 컴퓨터가 2진수로 변환된 데이터만 취급하는 이유 Story 02. 아리송한 2진수의 진정한 의미 Story 03. 자리를 자유자재로 옮겨 다니는 시프트 연산! Story 04. 보수는 1과 0을 바꾼 후 +1을 하라! Story 05. 논리?산술 오른쪽 시프트의 작지만 큰 차이 Story 06. 그림으로 풀어 보는 논리 연산! Column. 여러분이라면 어떻게 설명하시겠어요? _ 아무 것도 모르는 초등학생에게 CPU와 2진수를 설명한다면... Chapter_03. 컴퓨터도 계산을 잘못 할 수 있다! Story 01. 0.1을 100번 더해도 10이 되지 않는다? Story 02. 2진수 소수를 10진수로 변환하는 방법은? Story 03. 컴퓨터가 계산을 틀리게 하는 이유 Story 04. 부동 소수점 수 표현 방법을 알아보자! Story 05. 정규 표현과 익세스 표현 마스터하기 Story 06. 궁금했던 단정도 부동 소수점 수 표현 방법 찜하기 Story 07. 컴퓨터의 계산 실수를 예방하는 두 가지 방법 Story 08. 뚱뚱한 2진수 대신 날씬한 16진수를 사용하자! Chapter_04. 네모난 메모리를 동그랗게 사용하자! Story 01. 메모리 IC로 채워진 메모리 구조 살펴보기 Story 02. 메모리는 데이터를 저장하는 빌딩 Story 03. 메모리 어드레스를 저장하는 변수, 포인터! Story 04. 배열로 메모리를 효율적으로 사용하자! Story 05. 스택과 큐로 메모리를 렌트하자! Story 06. 리스트가 있어 데이터 추가 삭제가 쉬워진다! Story 07. 리스트의 업그레이드, 바이너리 서치 트리! Chapter_05. 메모리와 디스크의 친밀한 관계 Story 01. 프로그램은 디스크 → 메모리 → CPU 순으로 진행된다! Story 02. 디스크의 액세스 속도를 증가시키는 '디스크 캐시' Story 03. 디스크를 메모리처럼 사용하자! '가상 메모리' Story 04. 메모리를 절약하는 프로그래밍 기법 Story 05. 디스크의 하드웨어적인 구조를 알아보자! Chapter_06. 데이터 압축의 비밀을 파헤쳐라! Story 01. 파일은 바이트 단위로 기록된다! Story 02. '데이터×반복 횟수'로 압축하는 런 렝스 코딩 Story 03. 런 렝스 코딩의 단점을 알아보자! Story 04. 모스 부호를 닮은 허프만 코딩 Story 05. 허프만 코딩의 단점을 보완해 주는 허프만 트리 Story 06. 허프만 코딩으로 2배의 압축률을 체험하자! Story 07. 그림 파일을 압축할 때는 손실 압축을 사용하자! Column. 여러분이라면 어떻게 설명하시겠어요? _ 'Loading 뒤에 숨겨진 메모리와 디스크의 관계' Chapter_07. 프로그램은 어떤 환경에서 살아가는가? Story 01. OS와 하드웨어가 프로그램의 작동 환경을 결정한다! Story 02. 하드웨어의 차이를 뛰어넘은 윈도우 Story 03. API는 OS마다 다르다! Story 04. CPU의 차이에서도 극복한 Ports Story 05. 에뮬레이터로 다른 OS용 프로그램을 즐겨 보자! Story 06. Java가 어떤 OS와 하드웨어도 두렵지 않은 이유 Story 07. OS를 실행시켜 주는 부트 스트랩 Chapter_08. 소스 파일로부터 실행 파일이 만들어지기까지 Story 01. 컴퓨터는 네이티브 코드만 실행할 수 있다! Story 02. 네이티브 코드 자세히 들여다보기 Story 03. 소스 코드를 네이티브 코드로 번역해 주는 컴파일러 Story 04. 컴파일한 후 EXE 파일이 만들어지기까지 Story 05. 참 좋다! 스타트업과 라이브러리 파일 Story 06. 컴파일과 링크의 원리를 정리해 보자! (DLL 파일과 임포트 라이브러리) Story 07. EXE 파일이 실행되는 원리를 알아보자! Story 08. 프로그램을 실행할 때 만들어지는 스택과 힙 Q&A. 궁금증을 속 시원하게 풀어주는 Q&A Chapter_09. OS와 애플리케이션의 관계 Story 01. 역사를 통해 살펴본 OS의 기능 Story 02. 위대한 OS의 존재를 의식하자! Story 03. 시스템 호출과 고급 언어의 이식성을 알아보자! Story 04. OS와 고급 언어가 하드웨어를 간접 제어한다! Story 05. 윈도우의 일곱 가지 특징 제대로 분석하기 Column. 여러분이라면 어떻게 설명하시겠어요? _OS는 애플리케이션을 경영한다! Chapter_10. 어셈블리어에서 프로그램의 참모습을 발견하자! Story 01. 어셈블리어는 네이티브 코드와 1:1로 대응된다! Story 02. 컴파일로 어셈블리어 소스 코드 만들기 Story 03. 네이티브 코드로 변환되지 않는 의사 명령어 Story 04. 어셈블리어의 형식 = OP코드 + 오퍼랜드 Story 05. 어셈블리어에서 가장 많이 사용하는 mov 명령어 Story 06. push와 pop으로 데이터 저장?읽기를 해결하는 스택 Story 07. 함수 호출의 원리를 낱낱이 밝혀 보자! Story 08. 쿵탕쿵탕! 함수의 내부에서 이루어지는 작업들 Story 09. 글로벌 변수를 위한 영역은 언제나 확보되어 있다! Story 10. 로컬 변수를 위한 영역은 일시적으로 확보된다! Story 11. 어셈블리어로 반복 루틴을 구현하는 방법 Story 12. 어셈블리어로 조건 분기를 구현하는 방법 Story 13. 어셈블리어를 이용한 버그 때려잡기 Chapter_11. 프로그램으로 하드웨어를 제어해 보자! Story 01. 애플리케이션은 하드웨어와 무관하다? Story 02. IN?OUT 명령어로 하드웨어 제어하기 Story 03. PC 스피커를 제어하는 프로그램을 만들어 보자! Story 04. 도표로 알아보는 인터럽트 처리 과정 Story 05. 실시간 데이터 처리를 가능하게 하는 인터럽트 Story 06. 대량의 데이터를 단시간에 전송할 수 있는 DMA Story 07. 문자나 그래픽이 어떻게 모니터에 표시될까? Column. 여러분이라면 어떻게 설명하시겠어요? _ 모니터와 텔레비전, 그 작지만 큰 차이! Chapter_12. 스스로 생각할 수 있는 컴퓨터를 만들려면? Story 01. '도구'로서의 프로그램과 '생각'하기 위한 프로그램 Story 02. 사람의 사고 방식을 프로그램으로 표현해 보자! Story 03. '버릇'을 가진 프로그램 만들기 Story 04. 프로그래밍으로 난수를 활용하는 방법 Story 05. 기억 능력을 이용한 프로그래밍 기법 Story 06. 사고 패턴을 프로그램으로 나타내자 Column. 여러분이라면 어떻게 설명하시겠어요? _ 프로그램 = 생각하는 순서 부록 _ C언어 맛보기! Story 01. C언어의 특징 Story 02. 변수와 함수 Story 03. 데이터형 Story 04. 표준 라이브러리 함수 Story 05. 함수 만들기/함수 사용하기 Story 06. 로컬 변수와 글로벌 변수 Story 07. 배열과 반복 Story 08. 그 외의 언어 구문 용어 모음집 찾아보기 |
|
어느덧, 컴퓨터와 함께 해온 20년의 기간 동안 수많은 프로젝트를 수행하고, 많은 책을 읽고, 강의도 하고, 세미나도 하였지만, 무엇을 안다는 것, 이해한다는 것에 대하여, 다시 한번 생각해 보는 좋은 시간이었던 것 같습니다.
오늘 추천 드리는 책은 『성공과 실패를 결정하는 1%의 프로그래밍 원리(Second Edition)』라는 책입니다. 이미 1판은 나의 서재에 꽂혀있고, 많은 사랑을 받고 있습니다. 이제 여기에 좀더 상세하고 명확한 설명을 추가한 2판이 나왔다는 것은 컴퓨터를 배우고자 하는 독자들에게 너무도 좋은 소식이라고 생각합니다. 지난 시간, 이 책에서 설명한 내용을 깨닫기 위하여 내가 소비했던 수많은 시간을 생각하면, 이 책의 가치는 너무도 무한하다고 할 수 있습니다. 더구나, 이해를 돕는 그림과 명쾌한 해설은 저자의 기술적 수준을 정확하게 보여주고 있습니다. 내가 보아왔던 미국 책의 따분함이나, 일본 책의 지나친 간결함을 적절하게 보완하여, 한국인의 성향에 맞게 저술된 책을 보면서 선배 엔지니어로서 후배에게 존경심을 표하지 않을 수 없습니다. 아마도, 독자들은 여러 가지 이유로 이 책을 펴게될 것이고, 나의 이글을 읽게 될 것으로 생각합니다. 하지만, 한 가지 확실한 것은 이 책에 담겨있는 내용은 전산을 전공하고자 하는 사람이면 반드시 이해해야 하는 것이고, 비전공자라고 하더라도 최신 컴퓨터 기술을 이해하기 위한 사전 과정으로 추천하고 싶습니다. 설명이 어렵지 않고, 이해가 잘 되게 제작되어 있다는 것이 이 책을 읽고 난 나의 생각이고, 개발자가 알아야 할 거의 대부분의 중요한 내용이 빠짐없이 정리되어 있어서 참 좋은 책이라는 생각을 하게 됩니다. 이해가 되지 않는 100권의 책을 가지는 것 보다, 이처럼 좋은 책 한 권을 제대로 이해하는 것이 더 중요하다는 것은 두말할 필요가 없을 듯 합니다. 이 책이 출판되면, 각 Chapter별로 우리 파트 원들이 세미나를 준비해야겠습니다. 이는 모든 사람이 반드시 이해해야 하는 많은 내용들이 잘 정리되어 있기 때문이고, 파트 원들의 실력 향상에 지대한 기여를 할 것이라는 점을 의심하지 않기 때문입니다. 좋은 책을 써준 저자에게 감사하고, 이제는 내가 읽을 차례인 것 같습니다. 조민호(SK C&C / Convergence Solution 사업팀 부장) --- '감역의 말' 중에서 |
|
성공적인 프로그래밍을 하려면 툴보다 먼저 원리를 배워라!
이 책에서는 이제부터 프로그래밍을 시작하고 싶어하는 사람과 프로그램 능력을 키우고 싶어하는 프로그래머 및 중급 컴퓨터 사용자를 위해 하드웨어, 소프트웨어의 구조 및 프로그램이 작동하는 원리를 알기 쉽게 풀어서 설명하고 있습니다. 이번에 2판을 발간하면서 전문을 다시 고치고 레지스터나 스택에 관한 설명을 대폭 보완하고 더 자세한 주석을 덧붙였습니다. 예제 프로그램은 이전의 비주얼 베이직에서 프로그램의 작동을 설명하는 데 적합한 C언어로 바꾸었습니다. 부록에는 보충 자료로 C언어의 해설을 추가했습니다. 제1판을 어렵다고 느꼈던 독자 여러분도 상당히 만족할 것입니다. 이 책을 마스터하는 지름길 이 책은 프로그램에 대한 내용을 모두 12장으로 나누어 설명하고 있습니다. 각 장의 내용은 '워밍업', '핵심포인트', '본문'으로 구성되어 있습니다. 전문용어 해설은 본문 옆에 '용어 설명'으로 나타냈습니다. 몇 개의 에피소드(컬럼)도 있습니다. 또한 부록에는 보충 자료로 C언어의 기본을 해설했으므로 프로그래밍을 처음 시작하는 분은 꼭 읽어 보시기 바랍니다. |