본문내용 바로가기
MD의선택 무료배송 이벤트 사은품 소득공제

한 권으로 읽는 컴퓨터 구조와 프로그래밍 더 나은 소프트웨어 개발을 위한 하드웨어 | 자료구조, 필수 알고리즘 등 프로그래머의 비밀 노트

조너선 스타인하트 지음 | 오현석 옮김 | 책만 | 2021년 04월 08일 출간
클로버 리뷰쓰기
  • 정가 : 35,000원
    판매가 : 31,500 [10%↓ 3,500원 할인]
  • 혜택 :
    [기본적립] 1750원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    06월 21일 출고 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
  • 개발자 테크스택 90종 홀로그램 스티커
    2021.04.28 ~ 2021.06.30
  • 책을 통해 성장해나가는 개발자를 응원합니다.
    2017.06.22 ~ 2025.07.31
  • 새로운 파이썬 책을 발견해보세요! 전체 목록 다운로드 제공!
    2016.08.11 ~ 2021.12.31
  • MANNING, O'REILLY, PACKT, WILE..
    2016.03.07 ~ 2022.12.31
상품상세정보
ISBN 9791189909284(1189909286)
쪽수 636쪽
크기 183 * 238 * 38 mm /1131g 판형알림
이 책의 원서/번역서 The Secret Life of Programs / Steinhart, Jonathan E.

책소개

이 책이 속한 분야

이 책의 주제어

컴퓨터는 어떻게 동작하며, 컴퓨터 프로그래밍이란 무엇인가? 개발자가 되기 위해 프로그래밍을 배우는 것은 단지 시작일 뿐이다! 뛰어난 프로그래머가 되려는 개발자는 물론, 비전공자도 재미있게 읽을 수 있는 컴퓨터공학 핵심 강의!

하드웨어의 토대가 되는 기초 전자회로, 게이트부터 시작해서 메모리, CPU, I/O, 컴퓨터 아키텍처 전반을 설명하고, 그 위에서 소프트웨어를 작성하는 방법을 웹과 C 프로그램으로 직접 만들어보며, 보안, 인공지능, 알고리즘 등의 내용에 이르기까지 개발자라면 반드시 알아야 할 커튼 뒤에 감춰진 컴퓨터 구조와 프로그래밍에 대한 거의 모든 것을 다루는 컴퓨터공학 개론서!

상세이미지

한 권으로 읽는 컴퓨터 구조와 프로그래밍 도서 상세이미지

작가의 말

매스매티카(Mathematica)와 울프람(Wolfram) 언어를 만든 스티븐 울프람(Stephen Wolfram)이 쓴 ‘어떻게 컴퓨팅 사고를 가르칠까?(How to Teach Computational Thinking)’라는 블로그 글에는 프로그래밍을 가르치는 방법에 대한 흥미롭지만 상당히 반대되는 관점이 들어 있다. 울프람은 컴퓨팅 사고를 “컴퓨터가 할 일을 지시하기 위해 충분히 명확하게, 충분히 시스템적으로 사물을 수식화하는 방법”이라고 정의했다. 나도 이 정의에 완전히 동의한다. 사실 이 주장은 내가 이 책을 쓰게 된 계기 중 큰 부분을 차지한다.
하지만 프로그램을 배우는 사람이 컴퓨팅 사고를 개발하기 위해 토대가 되는 기술을 배우는 대신, 자신이 개발한 강력한 고수준 도구 등을 사용해야 한다는 울프람의 주장에는 강하게 반대한다. 예를 들어, 미적분학보다 통계학에 대한 관심이 늘어난다는 점을 보면 ‘데이터 주무르기(data wrangling)’가 점점 더 중요한 분야가 되고 있음이 분명하다. 하지만 사람들이 멋진 프로그램에 엄청난 양의 데이터를 입력하는데 이 데이터를 전혀 이해하지 못한다면 어떤 일이 벌어질까?
이럴 경우 한 가지 가능성은 사람들이 재미있어 보이지만 의미가 전혀 없거나 틀린 결과를 만들어내는 것이다. 예를 들어, 마크 지만, 요탐 에렌, 아쌈 엘오스타가 발표한 최근의 연구(「과학 문헌에 유전자 이름 오류가 널리 퍼져 있다(Gene Name Errors Are Widespread in the Scientific Literature)」)에 따르면, 유전학 논문 중 5분의 1가량에 스프레드시트를 잘못 사용해서 생긴 오류가 있다는 사실이 밝혀졌다. 이런 종류의 오류를 생각해보고, 더 강력한 도구가 더 많은 사람들 손에 들어갔을 때 생길 결과를 생각해보라! 사람의 생명에 영향을 끼치는 경우라면 이런 일을 바로잡는 일은 더욱 중요해질 것이다.
하부 기술을 잘 이해하면 무엇이 잘못되고 있는지 알아차리는 능력을 계발할 수 있다. 고수준 도구만 알면 잘못된 질문을 던지기 쉽다. 전동 공구를 사용하려면 먼저 망치 쓰는 법부터 익혀야 한다. 하부 시스템과 도구를 배워둬야 하는 또 다른 이유는 이를 통해 여러분이 새로운 도구를 만들 수 있는 능력을 가질 수 있다는 점이다. 새로운 도구를 만드는 사람은 언제나 필요하며, 도구 사용자가 늘어나면 늘어날수록 이런 사람의 중요성은 더 커진다.
컴퓨터를 잘 이해함으로써 프로그램의 동작에 대한 수수께끼가 풀린다면, 여러분은 분명히 더 나은 코드를 작성할 수 있다.

목차

1장. 컴퓨터 내부의 언어 체계
▶ 컴퓨터는 어떤 말을 사용할까 ◀

언어란 무엇인가
문자 언어
비트
논리 연산
___불리언 대수
___드모르간의 법칙
정수를 비트로 표현하는 방법
___양의 정수 표현
___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장. 웹 브라우저
▶ 추상적인 컴퓨터를 이해하기 위한 가상 머신 ◀

마크업 언어
균일 자원 위치 지정자
HTML 문서
DOM: 문서 객체 모델
___트리 관련 용어
___DOM 처리
CSS
XML 등의 마크업 언어
자바스크립트
jQuery
SVG
HTML5
JSON
정리

10장. 애플리케이션 프로그래밍과 시스템 프로그래밍
▶ 고수준 언어와 저수준 언어 프로그래밍 방식 비교 ◀

동물 추측 프로그램 버전 1: HTML과 자바스크립트 프로그램
___애플리케이션 수준의 뼈대
___웹 페이지 본문
___자바스크립트
___CSS
동물 추측 게임 버전 2: C 프로그램
___터미널과 명령줄
___프로그램 빌드
___터미널과 장치 드라이버
___문맥 전환
___표준 I/O
___원형 버퍼
___추상화를 활용한 코드 개선
___런타임 라이브러리와 표준 입출력
___버퍼 오버플로
___C 프로그램
___훈련
정리

11장. 성능 향상을 위한 알고리즘 기법
▶ 계산을 간소화하는 프로그래밍 트릭 ◀

표 찾기
___변환
___텍스처 매핑
___문자 종류 판별
정수를 사용한 계산 방법
___직선
___곡선 다루기
___다항식
재귀적 분할
___나선
___구성적인 기하
___시프트와 마스크
계산을 회피하는 그 밖의 수학적 기법들
___멱급수 근삿값 계산
___CORDIC 알고리즘
무작위성과 관련 있는 예제들
___공간을 채우는 곡선
___L 시스템
___스토캐스틱 기법
___양자화
정리

12장. 병렬성과 비동기성
▶ 컴퓨터는 어떻게 한 번에 많은 일을 하는가 ◀

경합 조건이란 무엇인가
공유 자원
프로세스와 스레드

___트랜잭션과 작업 크기
___락 대기
___교착 상태
___단기 락 구현
___장기 락 구현
브라우저 자바스크립트
비동기 함수와 프로미스
정리

13장. 컴퓨터 보안
▶ 컴퓨터는 어떻게 데이터를 안전하게 지키는가 ◀

보안과 프라이버시 개요
___위협 모델
___신뢰
___물리적 보안
___통신 보안
___모던 타임즈
___메타데이터와 감시
___사회적 맥락
___인증과 권한부여
크립토그래피
___스테가노그래피
___치환 암호
___전치 암호
___더 복잡한 암호
___일회용 패드
___키 교환 문제
___공개키 암호
___전방향 안전성
___암호학적 해시 함수
___디지털 서명
___공개키 인프라
___블록체인
___패스워드 관리
보안을 위한 소프트웨어 예방 조치
___올바른 대상을 보호하라
___로직은 세 번 체크하라
___오류를 검사하라
___공격 표면을 최소화하라
___경계 내부에 머물러라
___좋은 난수를 생성하기는 힘들다
___네 코드를 알라
___극단적인 영리함은 여러분의 적이다
___눈에 보이는 것을 이해하라
___과다수집하지 마라
___모아두지 마라
___동적 메모리 할당은 여러분의 친구가 아니다
___가비지 컬렉션도 여러분의 친구가 아니다
___코드 역할을 하는 데이터
정리

14장. 세상을 바꾸는 기계 지능
▶ 미래를 열어가는 인공지능, 머신러닝, 빅데이터 ◀

개요
머신러닝
___베이즈
___가우스
___소벨
___캐니
___특성 추출
___인공 신경망
___머신러닝 데이터의 활용
인공지능
빅데이터
정리

15장. 훌륭한 프로그래머가 되기 위한 팁과 경험담
▶ 알아두면 좋은 실무 상식과 조언 ◀

가치 제안
소프트웨어 개발의 발자취
___간추린 역사
___오픈소스 소프트웨어
___크리에이티브 커먼즈
___이식성의 발전
___패키지 관리
___컨테이너
___자바
___노드
___클라우드 컴퓨팅
___가상 머신
___이동식 장치
프로그래밍 환경
___초보 프로그래머도 경험을 얻는 방법
___추정하는 방법 배우기
___프로젝트 스케줄링
___의사결정
___성향이 다른 사람들과 함께 일하기
___직장 내 문화 다루기
___정보를 얻은 상태에서 선택하기
개발 방법론
프로젝트 설계
___생각을 글로 써보자
___빠른 프로토타이핑
___인터페이스 설계
___코드를 재활용할 것인가, 직접 작성할 것인가
프로젝트 개발
___나이 든 개발자의 잡설
___이식성이 있는 코드
___소스 코드 제어
___테스트
___버그 보고와 추적
___리팩토링
___유지보수
스타일을 지켜라
기존 프로젝트를 활용하라
정리

추천사

강유(서울대학교 컴퓨터공학과 교수)

세상은 빠르게 변화하고 있고 날마다 새로운 기술과 서비스들이 등장한다. 디지털 트랜스포메이션이니 4차 산업혁명이니 하는 용어들은 마치 유행어처럼 뉴스 꼭지 한 편을 차지하며 마치 이러한 시류에 편승하지 못하면 시대에 뒤처진 ... 더보기

권정민(ODK Media, Data Analytics Lead(데이터 분석 리드))

어딘가 처음 가는 곳으로 여행을 간다면 여기저기서 여러 자료를 찾기도 하지만 우선 가이드북을 하나 챙긴다. 좋은 가이드북은 해당 나라나 지역에 대해 꽤 상세한 지도와 짧은 기간 동안 둘러보는 데 필요한 정보, 간단한 역사나 ... 더보기

박재호(/ 『Clean Code 클린 코드』 역자, <컴퓨터 vs 책> 블로그 운영자)

오늘날 최신 스마트폰은 물론이고 최신 노트북조차 분해하기가 매우 어렵다. 편의성과 심미성을 높이기 위해 확장성과 개방성을 다소 희생했다고 볼 수 있는데, 덕분에 내부에서 일어나는 일은 점점 더 이해하기 어려운 상황에 놓였다.... 더보기

오명운(네이버제트 개발자)

누구든 이 책 목차를 보면 현기증이 날 것이다. 빨리 알고 싶어서 현기증이 나거나 빨리 덮고 싶어서 현기증이 나거나. 하지만 최소한 이 책을 골라서 목차까지 펼쳐봐 놓고도 그냥 덮고 돌아선다면 나중에 이따금씩 계속 신경을 건... 더보기

오창훈(토스증권 CTO)

누구도 알려주지 않았던 컴퓨터 상식과 기본이 가득한 책이다. 컴퓨터가 동작하는 원리부터 시작해 소프트웨어와 하드웨어 그리고 네트워크 통신에 이르기까지 프로그래밍의 기본이 되는 지식들을 총망라한 바이블이다. 프로그래밍은 I/O... 더보기

출판사 서평

대부분의 개발자들은 자신이 만든 프로그램을 움직이는 하부 기술에 대해 잘 알지 못한다. 코드가 잘 도는데 구태여 근원적인 하부 기술에 신경을 써야 할까? 그렇다. 하부 기술을 밑바닥부터 이해하면, 프로그램이 잘 작동하게 만들 수 있고 찾기 어려운 버그에 당황하지 않게 된다. 자신이 작성한 코드가 보안 문제로 인해 9시 뉴스에 나오기를 원하는 사람은 없을 것이다.
수많은 기술에 대한 상세 자료가 이미 온라인에 존재한다. 하지만 대부분 이런 자료들은 잘 정리되어 있지 않으며, 한꺼번에 정리해 모아둔 곳을 찾기도 어렵다.
백전노장 ... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서/번역서

안내
바로가기
  • 우측 확장형 배너 2
  • 우측 확장형 배너 2
최근 본 상품