한 권으로 읽는 컴퓨터 구조와 프로그래밍
2021년 06월 14일 출간
국내도서 : 2021년 04월 08일 출간
- eBook 상품 정보
- 파일 정보 pdf (20.32MB)
- ISBN 9791189909314
- 쪽수 640쪽
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 불가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
쿠폰적용가 25,200원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
하드웨어의 토대가 되는 기초 전자회로, 게이트부터 시작해서 메모리, CPU, I/O, 컴퓨터 아키텍처 전반을 설명하고, 그 위에서 소프트웨어를 작성하는 방법을 웹과 C 프로그램으로 직접 만들어보며, 보안, 인공지능, 알고리즘 등의 내용에 이르기까지 개발자라면 반드시 알아야 할 커튼 뒤에 감춰진 컴퓨터 구조와 프로그래밍에 대한 거의 모든 것을 다루는 컴퓨터공학 개론서!
▶ 컴퓨터는 어떤 말을 사용할까 ◀
언어란 무엇인가
문자 언어
비트
논리 연산
___불리언 대수
___드모르간의 법칙
정수를 비트로 표현하는 방법
___양의 정수 표현
___2진수 덧셈
___음수 표현
실수를 표현하는 방법
___고정소수점 표현법
___부동소수점 표현법
___IEEE 부동소수점 수 표준
2진 코드화한 10진수 시스템
2진수를 다루는 쉬운 방법
___8진 표현법
___16진 표현법
___프로그래밍 언어의 진법 표기법
비트 그룹의 이름
텍스트 표현
___아스키 코드
___다른 표준의 진화
___유니코드 변환 형식 8비트
문자를 사용한 수 표현
___출력 가능하게 변경한 인코딩
___베이스64 인코딩
___URL 인코딩
색을 표현하는 방법
___투명도 추가
___색 인코딩
정리
2장. 전자 회로의 조합 논리
▶ 컴퓨터는 어떤 논리로 비트를 다루는가 ◀
디지털 컴퓨터의 사례
___아날로그와 디지털의 차이
___하드웨어에서 크기가 중요한 이유
___디지털을 사용하면 더 안정적인 장치를 만들 수 있다
___아날로그 세계에서 디지털 만들기
___10진 숫자 대신 비트를 사용하는 이유
간단한 전기 이론 가이드
___전기는 수도 배관과 유사하다
___전기 스위치
비트를 처리하기 위한 하드웨어
___릴레이
___진공관
___트랜지스터
___집적 회로
논리 게이트
___이력 현상을 활용한 잡음 내성 향상
___차동 신호
___전파 지연
___출력 유형
게이트를 조합한 복잡한 회로
___가산기
___디코더
___디멀티플렉서
___셀렉터
정리
3장. 메모리와 디스크의 핵심: 순차 논리
▶ 컴퓨터는 비트를 어떻게 기억하는가 ◀
시간 표현과 상태 기억
___발진자
___클록
___래치
___게이트가 있는 래치
___플립플롭
___카운터
___레지스터
메모리 조직과 주소 지정
___임의 접근 메모리
___읽기 전용 메모리
블록 장치
플래시 메모리와 SSD
오류 감지와 정정
하드웨어와 소프트웨어 비교
정리
4장. 컴퓨터 내부 구조
▶ 컴퓨터 하드웨어는 어떻게 구성되는가 ◀
메모리
입력과 출력
중앙 처리 장치
___산술 논리 장치
___시프트
___실행 장치
명령어 집합
___명령어
___주소 지정 모드
___조건 코드 명령어
___분기 명령어
___최종 명령어 집합 구성
마지막 설계
___명령어 레지스터
___데이터 경로와 제어 신호
___데이터 흐름 제어
RISC와 CISC 명령어 집합
GPU
정리
5장. 컴퓨터 아키텍처와 운영체제
▶ 컴퓨터는 어떻게 프로그램과 메모리를 조직적으로 관리할까 ◀
기본적인 구조 요소들
___프로세서 코어
___마이크로프로세서와 마이크로컴퓨터
프로시저, 서브루틴, 함수
스택
인터럽트
상대 주소 지정
메모리 관리 장치
가상 메모리
시스템 공간과 사용자 공간
메모리 계층과 성능
코프로세서
메모리상의 데이터 배치
프로그램 실행
메모리 전력 소비
정리
6장. 입출력과 네트워킹
▶ 컴퓨터는 외부와 어떻게 상호작용하는가 ◀
저수준 I/O
___I/O 포트
___버튼을 눌러라
___빛이 있으라
___빛, 동작, 그리고 상호 연동
___밝기 조절
___그레이의 2n가지 그림자
___쿼드러처
___병렬 통신
___직렬 통신
___파동에 올라타라
___범용 직렬 버스
네트워킹
___최근의 LAN들
___인터넷
아날로그 처리 방법
___디지털을 아날로그로 변환
___아날로그를 디지털로 변환
___디지털 오디오
___디지털 이미지
___비디오
휴먼 인터페이스 장치
___터미널
___그래픽 터미널
___벡터 그래픽
___래스터 그래픽
___키보드와 마우스
정리
7장. 데이터 구조와 처리
▶ 어떻게 해야 프로그램에서 데이터를 잘 구성하고 처리할까 ◀
기본 데이터 타입
배열
비트맵
문자열
복합 데이터 타입
단일 연결 리스트
동적 메모리 할당
더 효율적인 메모리 할당
가비지 컬렉션
이중 연결 리스트
계층적인 데이터 구조
대용량 저장장치
데이터베이스
인덱스
데이터 이동
벡터를 사용한 I/O
객체 지향의 함정
정렬
해시
효율성과 성능
정리
8장. 프로그래밍 언어 처리
▶
대부분의 개발자들은 자신이 만든 프로그램을 움직이는 하부 기술에 대해 잘 알지 못한다. 코드가 잘 도는데 구태여 근원적인 하부 기술에 신경을 써야 할까? 그렇다. 하부 기술을 밑바닥부터 이해하면, 프로그램이 잘 작동하게 만들 수 있고 찾기 어려운 버그에 당황하지 않게 된다. 자신이 작성한 코드가 보안 문제로 인해 9시 뉴스에 나오기를 원하는 사람은 없을 것이다.
수많은 기술에 대한 상세 자료가 이미 온라인에 존재한다. 하지만 대부분 이런 자료들은 잘 정리되어 있지 않으며, 한꺼번에 정리해 모아둔 곳을 찾기도 어렵다.
백전노장 엔지니어인 조너선 스타인하트가 쓴 이 책은 컴퓨터의 토대가 되는 개념을 밀도 있게 탐구한다. 또한 컴퓨터 하드웨어의 내부 구조는 물론, 하드웨어 위에서 소프트웨어가 작동하는 원리, 그리고 소프트웨어 기술 발전과 함께 역사 속에서 사람들은 기술을 사용해 어떻게 문제를 풀어왔는지 등의 다양하고도 심도 있는 내용을 다룬다.
저자는 컴퓨터라는 기계에서 프로그램 코드가 실행될 때 벌어지는지 일들에 대해 여러분이 미처 몰랐던, 혹은 잊었던 이야기들을 들려준다. 더 나은 소프트웨어와 효율적인 코드를 작성하는 법을 깨우치는 데 필요한 탄탄한 기초를 다질 수 있는 책이다.
| 이 책에서 다루는 내용 |
● 실제 세계를 컴퓨터가 이해할 수 있는 형태인 비트, 논리, 숫자, 텍스트, 색 등으로 변환하는 원리와 방법
● 논리 게이트, 가산기, 디코더, 레지스터, 메모리 등 컴퓨터를 이루는 기본 블록
● 성능 향상의 관점에서 컴퓨터 하드웨어, 특히 메모리를 고려해 프로그램을 설계해야 하는 이유
● 프로그램이 컴퓨터가 이해할 수 있는 기계어로 변환되는 과정
● 소프트웨어 구성 요소를 조합해 웹 브라우저 같은 프로그램을 만드는 방법
● 루프 불변 조건, 강도 감소, 재귀적 분할 등, 프로그램을 더 효율적으로 만들기 위한 알고리즘과 프로그래밍 트릭
● 컴퓨터 보안과 인공지능, 머신러닝, 빅데이터의 이해
● 프로젝트 설계, 문서화, 스케줄링, 이식성, 유지보수 등 현장에서 벌어지는 프로그래밍 실무에 관한 경험담과 조언
| 이 책의 구성 |
이 책은 개념적으로 세 부분으로 나뉜다. 첫 번째 부분은 컴퓨터 하드웨어를 탐구한다. 하드웨어가 무엇이고 하드웨어를 어떻게 만드는지 살펴본다. 두 번째 부분은 하드웨어에서 소프트웨어가 어떻게 작동하는지 살펴본다. 마지막 부분은 프로그래밍 기술, 즉 다른 사람들과 협력해 더 나은 프로그램을 만드는 방법에 대한 것이다.
1장, “컴퓨터 내부의 언어 체계”
1장은 3살짜리 아이의 마음을 탐구하는 것부터 시작한다. 컴퓨터는 비트(bit)를 가지고 노는 기계다. 컴퓨터는 비트를 모아서 먹고 산다. 여러분은 비트가 무엇인지 배우고 비트로 무엇을 할 수 있는지에 대해 배운다. 우리는 비트나 비트 모음에 의미를 부여하기 위해 ‘있다고 치고’ 놀이를 할 것이다.
2장, “전자 회로의 조합 논리”
이번 장은 숫자 대신 비트를 사용하는 게 합리적인 이유를 보여주고, 이 합리성을 디지털 컴퓨터에서 찾아본다. 이 과정에서 요즘 우리가 사용 중인 기술에 이르는 길을 만들어준 오래된 기술을 살펴본다. 2장에서는 조합 논리의 기본을 설명하고, 더 복잡한 기능을 비트와 논리를 사용해 만드는 방법을 배운다.
3장, “메모리와 디스크의 핵심: 순차 논리”
여기서는 논리를 사용해 메모리를 만드는 방법을 배운다. 그리고 메모리는 시간이 지나도 유지되는 상태에 불과하므로, 어떻게 시간을 생성하는지 살펴본다. 3장에서는 순차 논리의 기본을 설명하고, 여러 가지 메모리 기술에 대해 논의한다.
4장, “컴퓨터 내부 구조”
이 장은 앞에서 소개한 논리와 메모리를 사용해 컴퓨터를 구성하는 방법을 보여준다. 여러 가지 구현 방법론을 살펴본다.
5장, “컴퓨터 아키텍처와 운영체제”
5장에서는 4장에서 살펴본 기본 컴퓨터에 몇 가지 장치를 추가한다. 필수적인 기능과 효율성을 어떻게 컴퓨터에 제공할 수 있는지 배운다.
6장, “입출력과 네트워킹”
컴퓨터는 바깥 세상과 상호작용할 필요가 있다. 6장에서는 입력과 출력(I/O)을 다룬다. 그리고 디지털과 아날로그의 차이를 살펴보고, 어떻게 디지털인 컴퓨터가 아날로그인 세상과 함께 일할 수 있는지 알아본다.
7장, “데이터 구조와 처리”
이제 컴퓨터의 동작을 배웠으므로, 컴퓨터를 더 효율적으로 사용하는 방법을 배워야 한다. 컴퓨터 프로그램은 메모리에 있는 데이터를 조작한다. 따라서 해결하려는 문제에 따라 프로그램이 메모리를 사용하는 방식을 적절히 매핑하는 것이 중요하다.
8장, “프로그래밍 언어 처리”
사람들이 컴퓨터를 더 쉽게 프로그램하기 위해 언어를 발명했다. 8장에서는 언어를 컴퓨터가 실제로 실행할 수 있는 어떤
작가정보
저자 : 조너선 스타인하트
Jonathan E. Steinhart
1960년대부터 엔지니어링을 해왔다. 중학교 때 하드웨어 설계를 시작했고, 고등학교 때 소프트웨어 설계를 해본 경험 덕분에 여름 단기 아르바이트로 벨 전화 연구소에서 일하는 기회를 얻을 수 있었다. 클라크슨 대학교에서 1977년 전자 공학 및 컴퓨터 과학 학사(BSEE)를 취득했으며, 졸업 후 텍트로닉스(Tektronix)에서 일하다가 스타트업을 창업했다. 그래픽스 하드웨어와 소프트웨어를 설계하고, CAD 시스템, 그래픽스 워크스테이션, 회로 시뮬레이터, 발전소, IC 설계용 언어 등을 만들었으며, 1987년에는 안전이 중요한 크리티컬 시스템 엔지니어링에 초점을 맞춘 컨설턴트가 되어 애플, 인텔, 썬, 웰치알린, 룰루 등의 기업을 컨설팅했다.
1990년대부터는 전업을 조금 줄이고, 포 윈즈 비냐드(Four Winds Vineyard)라는 와인 농장 경영도 겸업하고 있다.
역자 : 오현석
비사이드소프트(BSIDESOFT) 이사로 일하면서 매일매일 고객의 요청에 따라 코드를 만들어내고 있는 현업 개발자다. 어릴 때 처음 컴퓨터를 접하고 매혹된 후 경기과학고, KAIST 전산학과(프로그래밍 언어 전공 석사)를 거치면서 계속 컴퓨터를 사용해왔다.
직장에서는 주로 코틀린이나 자바를 사용한 서버 프로그래밍을 하고, 주말이나 빈 시간에는 번역을 하거나 공부를 하면서 즐거움을 찾는다. 시간이 아주 많이 남을 때는 시뮬레이션 게임을 하면서 머리를 식히고 놀고, 어떻게 하면 막내자식을 프로그래밍의 세계로 끌어들일 수 있을까 고민 중인 아빠이기도 하다.
『코어 파이썬 애플리케이션 프로그래밍 Core Python Applications Programming Third Edition』(에이콘출판, 2014)을 시작으로 『 Kotlin in Action』(에이콘출판, 2017), 『순수 함수형 데이터 구조』(에이콘출판, 2019), 『파이썬 코딩의 기술(개정 2판)』(길벗, 2020) 등 20권 이상의 책을 번역했다.
작가의 말
매스매티카(Mathematica)와 울프람(Wolfram) 언어를 만든 스티븐 울프람(Stephen Wolfram)이 쓴 ‘어떻게 컴퓨팅 사고를 가르칠까?(How to Teach Computational Thinking)’라는 블로그 글에는 프로그래밍을 가르치는 방법에 대한 흥미롭지만 상당히 반대되는 관점이 들어 있다. 울프람은 컴퓨팅 사고를 “컴퓨터가 할 일을 지시하기 위해 충분히 명확하게, 충분히 시스템적으로 사물을 수식화하는 방법”이라고 정의했다. 나도 이 정의에 완전히 동의한다. 사실 이 주장은 내가 이 책을 쓰게 된 계기 중 큰 부분을 차지한다.
하지만 프로그램을 배우는 사람이 컴퓨팅 사고를 개발하기 위해 토대가 되는 기술을 배우는 대신, 자신이 개발한 강력한 고수준 도구 등을 사용해야 한다는 울프람의 주장에는 강하게 반대한다. 예를 들어, 미적분학보다 통계학에 대한 관심이 늘어난다는 점을 보면 ‘데이터 주무르기(data wrangling)’가 점점 더 중요한 분야가 되고 있음이 분명하다. 하지만 사람들이 멋진 프로그램에 엄청난 양의 데이터를 입력하는데 이 데이터를 전혀 이해하지 못한다면 어떤 일이 벌어질까?
이럴 경우 한 가지 가능성은 사람들이 재미있어 보이지만 의미가 전혀 없거나 틀린 결과를 만들어내는 것이다. 예를 들어, 마크 지만, 요탐 에렌, 아쌈 엘오스타가 발표한 최근의 연구(「과학 문헌에 유전자 이름 오류가 널리 퍼져 있다(Gene Name Errors Are Widespread in the Scientific Literature)」)에 따르면, 유전학 논문 중 5분의 1가량에 스프레드시트를 잘못 사용해서 생긴 오류가 있다는 사실이 밝혀졌다. 이런 종류의 오류를 생각해보고, 더 강력한 도구가 더 많은 사람들 손에 들어갔을 때 생길 결과를 생각해보라! 사람의 생명에 영향을 끼치는 경우라면 이런 일을 바로잡는 일은 더욱 중요해질 것이다.
하부 기술을 잘 이해하면 무엇이 잘못되고 있는지 알아차리는 능력을 계발할 수 있다. 고수준 도구만 알면 잘못된 질문을 던지기 쉽다. 전동 공구를 사용하려면 먼저 망치 쓰는 법부터 익혀야 한다. 하부 시스템과 도구를 배워둬야 하는 또 다른 이유는 이를 통해 여러분이 새로운 도구를 만들 수 있는 능력을 가질 수 있다는 점이다. 새로운 도구를 만드는 사람은 언제나 필요하며, 도구 사용자가 늘어나면 늘어날수록 이런 사람의 중요성은 더 커진다.
컴퓨터를 잘 이해함으로써 프로그램의 동작에 대한 수수께끼가 풀린다면, 여러분은 분명히 더 나은 코드를 작성할 수 있다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!
- 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
- 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
- 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
가장 와 닿는 하나의 키워드를 선택해주세요.
총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.
신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.
허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
있으니 유의하시어 신중하게 신고해주세요.
이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.
구매 후 90일 이내 작성 시, e교환권 100원 적립
eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.
차감하실 sam이용권을 선택하세요.
차감하실 sam이용권을 선택하세요.
선물하실 sam이용권을 선택하세요.
-
보유 권수 / 선물할 권수0권 / 1권
-
받는사람 이름받는사람 휴대전화
- 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
- 열람권은 1인당 1권씩 선물 가능합니다.
- 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
- 선물한 열람권의 등록유효기간은 14일 입니다.
(상대방이 기한내에 등록하지 않을 경우 소멸됩니다.) - 무제한 이용권일 경우 열람권 선물이 불가합니다.
첫 구매 시 교보e캐시 지급해 드립니다.
- 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
- 한 ID당 최초 1회 지급 / sam 이용권 제외
- 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
- 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)