상세정보
프로그램은 어떻게 작동하는가 : 문과생도 쉽게 배우는 컴퓨터 프로그램 작동 메커니즘
- 저자
- 야자와 히사오 저/김현옥 역
- 출판사
- 보누스
- 출판일
- 2025-11-05
- 등록일
- 2026-01-28
- 파일포맷
- PDF
- 파일크기
- 8MB
- 공급사
- 예스이십사
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
역설적으로 들릴지도 모르지만, AI 시대에 요구되는 개발자의 능력은 기본기에 있다. 프로그램이 컴퓨터에서 어떻게 작동하는지를 제대로 알고 있어야, 목적에 맞는 프로그램을 만들 수 있고 문제가 발생했을 때도 수월하게 해결한다. 이 책은 메모리에 로딩된 기계어 명령을 CPU가 해석하고 실행하는 과정, 즉 프로그램이 컴퓨터에서 움직이는 진짜 모습을 보여준다. 이 과정에서 컴퓨터가 2진수를 이용하는 방식과 이유, 메모리와 디스크의 상호작용, 소스 코드가 실행 파일로 변환되는 컴파일과 링크 단계, 프로그램의 작동 환경과 주변장치 제어 등을 알아본다. 프로그래밍 입문자나 자기 실력에 깊이를 더하려는 초급 개발자가 컴퓨터 시스템의 본질을 이해하고 응용력을 키울 수 있도록 돕는다.
저자소개
IT 전문 저자 겸 강사. 대형 전자제품 제조회사와 소프트웨어 개발 업체에서 컴퓨터 제조와 시스템 개발 같은 다양한 업무를 경험하며 실력을 쌓았다. 현재는 독립해 데이터 분석 애플리케이션 개발에 종사한다. 본업을 하는 틈틈이 여러 잡지에 IT 칼럼을 기고하거나 관련 책을 집필하는 데에도 힘을 쏟고 있다. 특히 『IT 업무의 기본이 되는 컴퓨터 구조 원리 교과서』 『IT 업무의 기본이 되는 프로그램 구조 원리 교과서』 등은 일본에서만 수십만 부가 넘게 팔리며 컴퓨터와 프로그램을 공부하는 학생과 IT 업계 종사자들에게 반드시 읽어야 할 바이블로 각인됐다. 집필 활동 외에도 IT 기업의 신입 사원이나 컴퓨터 학과 학생들을 대상으로 강연 활동도 활발히 하고 있다. 현재 야자와 주식회사 대표이사다.
목차
들어가는 말책에서 해설할 주요 키워드제1장 프로그래머에게 CPU란 무엇일까CPU의 내부를 살펴보자CPU는 레지스터의 집합체프로그램의 흐름을 결정하는 프로그램 카운터조건 분기와 반복 시스템함수 호출의 구조베이스와 인덱스로 배열 실현하기CPU가 할 수 있는 일은 극히 단순제2장 데이터를 2진수로 상상해 보자컴퓨터가 정보를 2진수로 취급하는 이유그나저나 2진수란?시프트 연산과 곱셈 및 나눗셈의 관계컴퓨터 처리를 하기에 편리한 2의 보수논리 우측 시프트와 산술 우측 시프트의 차이논리 연산에 익숙해지는 요령COLUMN 여러분이라면 어떻게 설명할까요?초등학생에게 CPU와 2진수 설명하기제3장 컴퓨터가 소수점 수의 계산을 틀리는 이유0.1을 100번 더해도 10이 되지 않음소수점 수를 2진수로 표현하려면컴퓨터가 계산을 틀리는 이유부동 소수점 수는 무엇인가정규 표현과 초과 표현프로그램에서 실제로 확인해 보자컴퓨터 계산 오류를 피하려면2진수와 16진수제4장 네모난 모양의 메모리를 둥글게 사용하기메모리의 물리적인 구조는 단순메모리의 논리적인 이미지는 빌딩정말 간단한 포인터메모리를 효율적으로 잘 사용하기 위한 기본은 배열스택과 큐, 링 버퍼요소의 추가와 삭제를 쉽게 할 수 있는 리스트효율적으로 데이터를 찾을 수 있는 이진 탐색 트리제5장 메모리와 디스크의 친밀한 관계메모리에 읽어와야 실행됨디스크 접속을 고속화하는 디스크 캐시디스크를 메모리의 일부로 사용하는 가상 메모리메모리를 디스크로 사용하는 SSD메모리를 절약하는 프로그래밍 기법디스크의 물리 구조도 잘 봐두자제6장 내 힘으로 데이터를 압축해 보자파일은 바이트 단위로 기록런 렝스 부호화의 구조런 렝스 부호화의 결점모스부호에서 허프먼 부호화의 기초 확인하기트리를 이용해 만드는 허프먼 부호화허프먼 부호화로 압축률이 대폭 향상무손실 압축과 손실 압축COLUMN 여러분이라면 어떻게 설명할까요?게임에 푹 빠진 중학생들에게 메모리와 디스크 설명하기제7장 프로그램은 어떤 환경에서 작동하는가작동 환경=OS+하드웨어CPU 이외의 하드웨어가 가진 차이를 극복한 WindowsOS마다 다른 API소스 코드를 사용해 설치하기어디서든 똑같은 실행 환경을 제공하는 Java 가상 머신클라우드로 제공되는 가상 실행 환경BIOS와 부트스트랩제8장 소스 파일로 실행 가능 파일을 만들기까지네이티브 코드만 실행할 수 있는 컴퓨터네이티브 코드의 내용을 확인해 보자소스 코드를 변환하는 컴파일러컴파일만으로는 실행 가능 파일을 얻을 수 없다스타트업과 라이브러리 파일DLL 파일과 임포트 라이브러리실행 가능 파일을 실행할 때 필요한 것은?로드할 때 만들어지는 스택과 힙살짝 어려운 Q&A제9장 OS와 애플리케이션의 관계역사로 보는 OS의 기능OS의 존재를 의식하자시스템 호출과 고급 언어의 이식성하드웨어를 추상화하는 OS와 고급 언어Windows라는 OS의 특징COLUMN 여러분이라면 어떻게 설명할까요?스마트폰을 좋아하는 여고생에게 OS의 역할을 설명하기제10장 어셈블리어를 통해 프로그램의 진짜 모습 이해하기어셈블리어는 네이티브 코드와 일대일로 대응C 컴파일러로 어셈블리어의 소스 코드를 출력유사 명령과 명령어셈블리어의 구문 연산 코드와 피연산자가장 자주 사용되는 movl 명령스택에 데이터를 저장함수를 호출하는 구조호출된 함수의 구조전역 변수와 지역 변수의 구조반복 처리의 구조조건 분기의 구조어셈블리어를 경험하는 의의제11장 하드웨어를 제어하는 방법애플리케이션은 하드웨어와 상관이 없다?하드웨어와 입출력을 하는 in 명령과 out 명령인터럽트를 요청하는 주변장치인터럽트로 실시간 처리를 실현대량의 데이터를 단시간에 전송할 수 있는 DMA문자나 그래픽이 표시되는 시스템COLUMN 여러분이라면 어떻게 설명할까요?동네 할머니에게 디스플레이와 TV의 차이를 설명하기제12장 컴퓨터를 학습시키는 방법기계 학습이란?서포트 벡터 머신Python의 대화 모드를 사용하는 방법학습 데이터 준비하기손글씨 숫자 데이터의 내용 확인해 보기기계 학습으로 손글씨 문자 인식하기교차 검증해 보기COLUMN 여러분이라면 어떻게 설명할까요?단골 술집 주인에게 기계 학습의 종류를 설명하기부록 1 C 언어에 도전해 보자!C 언어의 특징변수와 함수데이터형입력, 연산, 출력함수 만들기/함수 사용하기지역 변수와 전역 변수배열과 반복그 외의 언어 구문부록 2 Python에 도전해 보자!Python의 특징모두 다 객체데이터형입력, 연산, 출력함수 만들기/함수 사용하기지역 변수와 전역 변수배열과 반복그 외의 언어 구문맺음말찾아보기