소프트웨어 작동법
: 마법의 시대, 기술에 대한 이해와 숨겨진 비밀
저자 안톤 스프라울
역자 김완섭
출판사 비제이퍼블릭
출간일 2015년 12월 29일 (화)
정가 22,000원
페이지 268
판형 173*230
ISBN 979-11-86697-08-5 (93000)
원서정보 HOW SOFTWARE WORKS
책 소개
소프트웨어에 숨겨진 비밀의 세계를 훔쳐보자!
소프트웨어가 이 세계를 만들어가고 있지만 아직 소프트웨어 내부는 베일에 싸여 있다. 멋진 컴퓨터(CGI) 그래픽이나 안전한 온라인 쇼핑, 빠른 구글 검색 등을 가능하게 하는 것이 소프트웨어다. 소프트웨어를 매일 사용하고 있지만 어떻게 동작하는지 이해하는 사람은 많지 않다.
컴퓨터 화면 뒤에서 어떤 일이 벌어지고 있는지 궁금하다면, 바로 이 책이 소프트웨어의 숨겨진 세계로 여러분을 안내할 것이다. 예를 들어 컴퓨터 기반 애니메이션과 실사 장면을 합성해서 특수 효과를 만드는 방법이나 비디오 게임이 실시간으로 그래픽을 렌더링하는 방법, 해시 함수가 해커의 공격을 막기 위해서 패스워드를 보호하는 방법, 구글이 검색 결과의 우선순위를 정하는 방법 등을 소개한다.
이 책을 통해 다음과 같은 것을 배울 수 있다:
- 암호화의 동작 원리와 해커의 공격 방법
- 인터넷 동영상 스트리밍을 위해 영상을 압축하는 방법
- 방대한 데이터베이스에서 데이터를 검색하는 방법
- 여러 프로그램이 서로 충돌을 일으키지 않고 작업하는 원리
- 소프트웨어가 맵(지도)을 해석해서 원하는 목적지의 경로를 알려주는 원리
이 책은 쉬운 설명과 직관적인 그림을 이용해서 누구나 쉽게 이해할 수 있도록 구성했다. 기술적인 배경 지식 없이도 읽을 수 있으며 한 줄의 코드도 나오지 않는다.
일상생활에서 쉽게 접할 수 있지만 놀라운 작업을 해내고 있는 컴퓨터를 이해하기 위해서 컴퓨터 과학자가 될 필요는 없다. 이 책이 미스터리한 컴퓨터의 비밀을 하나씩 풀어줄 것이다.
독자대상
초중급
저자 소개
안톤 스프라울
전세계에 있는 학생들에게 프로그래밍 입문과 컴퓨터 과학을 15년 이상 가르쳐왔다. 저서로 『Think Like a Programmer』(No Starch), 『Computer Science Made Simple』(Broadway)이 있다.
역자 소개
김완섭
네덜란드 ITC에서 Geoinformation for Disaster Risk Management 석사학위를 취득했다. 약 9년간 일본 및 한국 대기업에서 IT 및 GIS/LBS 분야 업무를 담당했다. 일본에서는 세콤(SECOM) 계열사인 파스코(PASCO)에서 일본 외무성, 국토지리정보원 등 일본 정부 기관을 대상으로 한 시스템 통합(SI) 업무를 담당했다. 이후 야후 재팬으로 직장을 옮겨 야후 맵 개발 담당 시니어 엔지니어로 근무했으며, 한국으로 돌아와 SK에서 내비게이션(T맵 등) 지도 데이터 담당 매니저로 근무했다. 저서로는 『나는 도쿄 롯폰기로 출근한다』가 있으며, 역서로는 『그림으로 공부하는 IT 인프라 구조』, 『그림으로 공부하는 시스템 성능』, 『코딩을 지탱하는 기술』, 『SQL 더 쉽게, 더 깊게』, 『클린 코드를 위한 테스트 주도 개발』, 『누구나 쉽게 배우는 코딩』 등 13권이 있다.
목차
1장. 암호화
- 암호화의 목적
- 전치: 같은 데이터, 다른 순서
- 치환: 데이터 교체하기
- 고급 암호화 표준
- 개인 키 암호화 방식이 가지는 제약
2장. 패스워드
- 패스워드를 숫자로 변환하기
- MD5 해시 함수
- 전자 서명
- 인증 시스템상의 패스워드
- 패스워드 저장 서비스
- 정리
3장. 웹 보안
- 공개 키 암호화 방식을 이용한 공유 키 문제 해결
- 공개 키 암호화를 위한 수학적 도구
- RSA 암호화 방식
- 웹상의 보안: HTTPS
- 공유 키 문제는 해결되는가?
4장. 영화 CGI
- 전통적인 애니메이션에 사용된 소프트웨어
- 3D CGI를 위한 소프트웨어
- 진짜와 가짜 조합하기
- 영화 수준 렌더링의 이상과 현실
5장. 게임 그래픽
- 실시간 그래픽을 위한 하드웨어
- 게임에서 광선 추적을 사용하지 않는 이유
- 모든 것이 직선이며 곡선은 없다
- 광선 추적 없는 투영
- 삼각형 렌더링
- 실시간 조명
- 그림자
- 주변 조명과 주변 폐색
- 텍스처 맵핑
- 반사
- 가짜 곡선
- 실시간 에일리어싱 방지
- 렌더링 설계
- 게임 그래픽의 미래
6장. 데이터 압축
- 연속 길이 부호화
- 사전식 압축
- 더 나은 압축을 위한 데이터 재배열
- JPEG 이미지
- 고화질의 영상 압축
- 영상 압축의 현재와 미래
7장. 검색
- 검색 문제 정의하기
- 데이터를 순서대로 정렬하기
- 이진 검색
- 인덱싱
- 해싱
- 웹 검색
- 웹 검색의 미래
8장. 동시 실행
- 동시 실행이 필요한 이유
- 언제 동시 실행에 실패하는가?
- 동시 실행을 안전하게 만들기
- 무한 대기의 문제점
- 세마포의 성능 문제
- 동시 실행의 미래
9장. 길 찾기 경로
- 소프트웨어 관점의 맵이란?
- 모든 최적 경로를 한번에 찾기
- 경로 탐색의 미래
출판사 리뷰
오늘날에는 소프트웨어와 우리의 삶을 분리해서 생각하기 어렵다. 예를 들어 온라인 쇼핑이나 영화 속의 특수 효과, 인터넷 동영상 등 모든 것에 소프트웨어가 관여하고 있다. 사실 불과 몇 년 전까지만 해도 궁금한 것이 있으면 스스로 해결해야 했다. 구글 검색이라는 것은 존재하지도 않았었다. 또한, 어딘가로 운전해서 이동하기 위해선 크고 두꺼운 지도 책을 들고 다니면서 확인하던 시절이 있었다.
프로그래머는 여러 가지 방식으로 머신 러닝에 관한 일반 지식 온라인 강의나 잘 쓰여진 책 등을 습득할 수 있다. 이 중 많은 곳에서 머신 러닝 알고리즘과 알고리즘 사용법 예시를 아주 훌륭하게 제공하지만, 사용할 수 있는 너무나도 많은 알고리즘을 대상으로 하기 때문에 이를 토대로 알고리즘의 사용법을 상세하게 설명하기는 어렵다.
사실 이제는 거의 모든 것이 소프트웨어에 의존하고 있지만 이런 소프트웨어가 어떤 방식으로 동작하는지 이해하고 있는 사람은 많지 않다. 과거의 기술 혁신과 달리 오늘날의 혁신은 소프트웨어 없이 설명하기가 어렵다. 이런 혁신은 하나의 컴퓨터 칩에서 이루어진다. 이 칩은 어떤 장치가 제대로 작동하고 있는지 또는 켜져 있는지 등을 확인한다. 프로그래머가 되기 위해선 소프트웨어가 어떻게 동작하는지 알아야 하지만, 아무것도 모르는 상황에선 이런 소프트웨어 구조를 이해하기 위해 아주 많은 시간을 보낼 수도 있다. 이 때문에 소프트웨어는 일반인이 접근하기는 어려운 분야라고 추측하거나 전문가만이 알 수 있는 비밀스러운 영역이라고 생각하기 쉽다. 하지만 이것은 틀린 생각이다.
누구든지 소프트웨어가 동작하는 방식을 배울 수 있다. 호기심만 있으면 가능하다. 이 책은 단순히 기술적인 것을 좋아하는 사람이나 전문적인 프로그래머의 길을 가고 있는 사람, 또는 그 중간에 있는 사람을 대상으로 하고 있다.
이 책에선 단 한 줄의 코드도 사용하지 않고 소프트웨어가 어떻게 동작하는지를 설명한다. 컴퓨터에 대한 어떠한 사전적인 지식도 필요하지 않다. 이를 위해서 몇몇 처리 과정을 단순화했고 너무 자세한 내용은 배제했다. 그렇다고 해서 내용이 부족한 것은 아니다. 이 책은 프로그램이 어떻게 동작하는지를 실질적인 지식과 함께 소개해서 깊이 있는 이해가 가능하도록 구성했다.
머신 러닝 (2) | 2016.01.13 |
---|---|
프로 자바스크립트 테크닉 (0) | 2015.12.10 |
머신 러닝 인 파이썬 (1) | 2015.11.09 |
댓글 영역