[PART I C 프로젝트 빌드]
CHAPTER 1 필수 요소
1.1 전처리기 지시자
1.2 포인터 변수
1.3 함수
1.4 함수 포인터
1.5 구조체
1.6 마무리
CHAPTER 2 소스 코드에서 이진 파일로
2.1 표준 컴파일 파이프라인
2.2 전처리기
2.3 컴파일러
2.4 어셈블러
2.5 링커
2.6 마무리
CHAPTER 3 목적 파일
3.1 ABI
3.2 목적 파일 형식
3.3 재배치 가능한 목적 파일
3.4 실행 가능한 목적 파일
3.5 정적 라이브러리
3.6 동적 라이브러리
3.7 마무리
[PART II 메모리]
CHAPTER 4 프로세스 메모리 구조
4.1 프로세스 메모리 레이아웃
4.2 메모리 구조 알아보기
4.3 정적 메모리 레이아웃 검사하기
4.4 동적 메모리 레이아웃 검사하기
4.5 마무리
CHAPTER 5 스택과 힙
5.1 스택
5.2 힙
5.3 제한된 환경에서의 메모리 관리
5.4 마무리
[PART III 객체지향]
CHAPTER 6 OOP와 캡슐화
6.1 객체지향적 사고
6.2 C가 객체지향이 아닌 이유
6.3 캡슐화
6.4 마무리
CHAPTER 7 합성과 집합
7.1 클래스 간의 관계
7.2 객체 대 클래스
7.3 합성
7.4 집합
7.5 마무리
CHAPTER 8 상속과 다형성
8.1 상속
8.2 다형성
8.3 마무리
CHAPTER 9 추상화와 C++의 OOP
9.1 추상화
9.2 C++의 객체지향 구성물
9.3 마무리
[PART IV 유닉스]
CHAPTER 10 유닉스의 역사와 아키텍처
10.1 유닉스의 역사
10.2 유닉스 아키텍처
10.3 사용자 응용프로그램에 대한 셸 인터페이스
10.4 셸 링에 대한 커널 인터페이스
10.5 커널
10.6 하드웨어
10.7 마무리
CHAPTER 11 시스템 호출과 커널
11.1 시스템 호출
11.2 유닉스 커널
11.3 마무
전문가로 발돋움하기 위한 C의 모든 것 파헤치기
C 전문가가 되고 싶은 개발자를 위해 실무에 유용한 예제와 실습을 모두 담았습니다. 프로그램을 작성할 때 유용한 C의 구성 요소부터 프로세스 메모리 구조, 스택과 힙, 유닉스의 역사, 최신 C의 새로운 기능, 테스트와 유지 보수 방법까지 설명합니다. C를 이용해 효율적인 프로그램을 작성하는 방법과 객체지향 원칙을 구현하는 방법, 프로세스 간 통신하는 방법도 소개합니다.
이 책은 C 개발자를 위한 훌륭한 책일 뿐만 아니라 컴퓨터가 실제로 어떻게 작동하는지 조금 더 깊이 파고들고 싶은 개발자에게도 유용합니다. 책을 읽으며 스스로 생각하고, 질문하고, 실습해보면서 탄탄한 기초를 가진 C 전문가로 성장해보세요. C의 가장 진보된 기능으로 떠나는 대장정을 마치고 나면, 소프트웨어 시스템을 더 넓은 관점에서 바라보는 더 나은 C 개발자가 될 것입니다.
대상 독자
● C/C++ 프로그래밍 초급 과정을 이수한 학부생이나 주니어 엔지니어
● 현업에 C를 사용하는 개발자
● 공학이나 과학을 공부하는 학부생이나 연구원
필요 지식
● 컴퓨터 아키텍처 지식: 메모리, CPU, 주변 장치와 이들의 특성에 관한 내용
● 프로그래밍 기초 지식: 알고리듬, 이진수, 산술연산 등
● 프로그래밍 중급 지식: 조건문, 루프, 구조체, 클래스, 포인터, 함수에 관한 중급 지식
● 터미널과 셸 명령어 사용법
● 객체지향 프로그래밍 기초 지식(3부에서 객체지향을 자세히 다루지만 기초 지식이 있다면 내용을 이해하기가 수월합니다
주요 내용
● 메모리 구조와 컴파일 파이프라인의 작동 방식과 최대 활용법
● 절차지향 C 코드에 객체지향 설계 원칙 적용하기
● 컴퓨터 시스템의 최대 성능을 끌어내는 저수준 코드 작성하기
● 동시성, 멀티프로세싱, 멀티프로세싱의 주요 개념
● C++, 자바, 파이썬, 고(Go에서 C 라이브러리 통합하기
● 유닛 테스트, 디버깅, 빌드 시스템으로 테스트 및 유지 보수하기