C와 C++를 중심으로 본 프로그램의 동작 원리
『Thinking about: C/C++프로그래머가 몰랐던 프로그램의 동작 원리 <프로그램 생성편>』은 C와 C++를 중심으로 개발에서 실행까지 단계별로 프로그램의 동작 원리와 실행 환경을 설명함으로써 효율적인 프로그래밍을 할 수 있도록 도와준다.
이 책은 중급 이상의 개발자가 운영체제와 라이브러리, 언어론, 개발 도구, 디버깅 등과 프로그래밍 언어 간의 연관성을 되짚어볼 수 있도록 돕는 책이다. 또한, 프로그램이 동작하는 원리를 배웠지만 잘 기억나지 않는 그리고 다른 분야와의 관계성에 이해도가 낮은 개발자를 위한 책이다.
이 책에서는 어셈블리 언어나 기계어보다 널리 사용되고 실제 실행 환경(Native Run Time Environment) 에 가장 가까운 언어인 C/C++를 중심으로 프로그램의 동작 원리와 실행 환경이 어떻게 구현되어 실행되는지 설명한다.
이 책의 주요 특징은 다음과 같다.
① 학교나 회사에서 배우기 힘들 거나 배울 수 없었던 프로그램의 동작 원리를 소개한다.
② 개발부터 실행까지 단계별로 프로그램이 어떻게 구현되어 실행되는지 설명한다.
③ 프로그램이 실행될 때 실제 실행 환경에서 발생할 수 있는 프로그램의 문제들을 되짚어 본다.
대상 독자
시리즈 구성
프로그램 개발부터 실행까지 단계별로 살펴보며 프로그램의 동작 원리를 깨우친다!
컴퓨팅 장치(특히 모바일)가 다양해지고 성능이 좋아진 만큼, 구조 역시 복잡해졌다. 클라우드 컴퓨팅 플랫폼 등도 가상화 같은 다양한 서비스 도입으로 인해 그 구조가 복잡해지면서, 성능이나 오류 등의 문제가 단일 소프트웨어의 책임만은 아닐 가능성이 점점 더 높아지고 있다. 이제는 각 분야 전문가들의 협업만이 아닌, 다양한 분야를 아우를 수 있는 전문가가 필요한 때이다.
많은 개발자와 컴퓨터 공학 전공자는 대학이나 회사에서 프로그래밍 언어를 비롯하여 운영체제, 그래픽스, 개발 도구, 소프트웨어 공학 등 많은 분야를 공부하고 경험한다. 하지만 정작 각 분야의 연관성을 알지 못하고, 개별적인 이론으로 인지하는 경우가 대부분이다.
아무리 능숙한 프로그래머라고 해도 언어의 기본적인 개념을 이해하지 못하거나 프로그램이 동작하는 근본 원리나 플랫폼의 세부 사항을 알지 못한다면, 능숙한 '코드 작성자'밖에 안 된다. 실무로 겪었든 책을 통해 배웠든 자신이 몸담은 분야에 대한 기반 지식이 없다면 급격히 변화하는 IT 시대에 살아남기 힘들다.
이 책은 많은 프로그래머가 '이미' 알고 있는, 혹은 배웠지만 잘 기억나지 않는 지식이 다른 분야와 무슨 관계가 있는 것인지 도저히 이해할 수 없는 분들을 위한 책이다. 이 책을 읽는 독자들은 프로그램을 어떻게 만드는지 알고 있으며, 이 책에서 설명하는 모든 부분도 익히 아는 내용일 것이다. 다만 왜 중요하고 어떻게 프로그램에 영향을 미치는지 그리고 프로그램과 어떤 연관이 있는지 모를 뿐이다.
이 책을 읽고 나면 단편적으로 알고 있는 프로그램의 다양한 부분을 어떻게 짜 맞추어야 할지 알게 될 것이다. 또한, 일반적인 상식선에서 프로그램을 이해하는 것을 뛰어넘어, 더 넓은 시야를 겸비한 고급 프로그래머로 도약할 수 있는 기본을 닦아줄 것이다.
1장 들어가기
2장 컴파일러
2.1 컴파일러는 도대체 어떤 일을 하는가
2.2 프로그램 실행이 안 되는 것은 전부 소스 코드 탓이다?
2.3 컴파일러 최적화 기법에서 발생하는 문제
2.4 최적화를 사용하지 말라는 겁니까
2.5 알아두면 좋은 컴파일러 최적화 기법들
2.6 컴파일러 최적화 외에 알아야 하는 것들
2.7 정리
3장 ABI, Linker, Loader, 그리고 심볼
3.1 어셈블러에 의한 객체 파일 생성
3.2 객체 지향 언어에서 심볼
3.3 ABI, Linker, 그리고 Loader
3.4 Lazy Binding
3.5 함수 호출 규약
3.6 정리
APPENDIX | 잡동사니
A 실수형 계산
B 무엇이 프로그램의 보안을 위협하는가
C Scope, Life Cycle, 그리고 계산 순서
D 전처리기
E 정리
리얼타임 eBook 안내
PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.