HOME > Detail View

Detail View

모던C : 전문가를 위한 C 작성법!

Material type
단행본
Personal Author
Gustedt, Jens 남기혁, 역
Title Statement
모던C : 전문가를 위한 C 작성법! / 옌스 구스테트 지음 ; 남기혁 옮김
Publication, Distribution, etc
서울 :   길벗,   2022  
Physical Medium
456 p. : 삽화 ; 24 cm
Varied Title
Modern C
기타표제
C만이 가진 고유한 개념과 작성 기법을 배워 '더 완전한' C 프로그램을 작성할 수 있다!
ISBN
9791165218409
Bibliography, Etc. Note
참고문헌(p. 449-450)과 색인수록
Subject Added Entry-Topical Term
C (Computer program language)
000 00000nam c2200205 c 4500
001 000046105763
005 20220209140355
007 ta
008 220124s2022 ulka b 001c kor
020 ▼a 9791165218409 ▼g 93000
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.13/3 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b C110 2022z3
100 1 ▼a Gustedt, Jens
245 1 0 ▼a 모던C : ▼b 전문가를 위한 C 작성법! / ▼d 옌스 구스테트 지음 ; ▼e 남기혁 옮김
246 0 3 ▼a C만이 가진 고유한 개념과 작성 기법을 배워 '더 완전한' C 프로그램을 작성할 수 있다!
246 1 9 ▼a Modern C
260 ▼a 서울 : ▼b 길벗, ▼c 2022
300 ▼a 456 p. : ▼b 삽화 ; ▼c 24 cm
504 ▼a 참고문헌(p. 449-450)과 색인수록
650 0 ▼a C (Computer program language)
700 1 ▼a 남기혁, ▼e▼0 AUTH(211009)85647
900 1 0 ▼a 구스테트, 옌스, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 005.133 C110 2022z3 Accession No. 511052911 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

C만이 가진 고유한 개념과 작성 기법을 배워 '더 완전한' C 프로그램을 작성할 수 있다! C 언어는 50년 이상된 프로그래밍 언어이며, 처음 등장한 이후 컴퓨터, 전화기, 카메라, 냉장고, 자동차 등 프로그래밍 인터페이스를 가진 거의 모든 기기에서 사용되고 있다. 이처럼 C로 만든 프로그램이나 시스템은 어디서나 볼 수 있지만 제대로 된 C 관련 자료는 굉장히 드물다. ISO C 표준 공동 편집자인 저자는 최신 C 표준을 기반으로 C만이 가진 고유한 개념과 작성 기법을 소개하고, C 언어에서 특별히 가치 있게 눈여겨볼 부분을 주로 설명한다.

ISO C 표준 공동 편집자가
알려주는 C 프로그래밍 기술!

프로그래밍 실력에 따라 단계별로 설명한다

독자의 C 언어 숙련도에 따라 레벨을 0~3으로 나눠 단계별로 설명한다. 예를 들어 포인터와 같은 어려운 주제를 처음부터 깊이 있게 설명하지 않고, 여러 레벨에 걸쳐 설명해서 좀 더 쉽게 이해할 수 있도록 구성했다. 그리고 문법, 컴파일 및 실행과 같은 기본부터 시작한다. 이어서 내부에서 무슨 일이 일어나는지 살펴보면서 데이터 타입, 연산자 및 함수를 설명하며, 마지막으로 성능, 재진입, 원자성, 스레드, 타입-독립 프로그래밍 등을 살펴본다.

이론과 실전을 연결하는 풍부한 예제, 연습 문제, 도전 문제를 제공한다
이 책 전반에 걸쳐 300여 개의 길고 짧은 예제와 다양한 연습 문제를 제공하는데, 이를 통해 책에서 설명한 개념을 좀 더 깊이 있게 생각해 볼 수 있다. 또한 필자의 개인적인 경험에서 느낀 ‘흥미로운 문제’를 중심으로 구성한 도전 문제도 제공한다. 쉬운 문제들은 아니지만 여기서 다룬 예제와 문제들과 겪어 보고 나중에 실전에서 비슷한 문제를 마주친다면 이 책에서 풀었던 것처럼 문제를 해결할 수 있을 것이다.

C++뿐만 아니라 C 언어의 표준도 지속적으로 발전하고 있습니다. 최신의 C 언어 코드 모양새는 C++ 언어에 익숙한 개발자들에게 난감함을 선사하기도 합니다. 기본 바이블 서적은 완전히 기반에 둔 내용만을 설명하는 경우가 많은데, 이 책은 입문자의 기반을 튼튼히 하는 내용과 실무에서 누구나 한 번쯤 실수할 만한 내용(예를 들어 멀티바이트 스트링을 다루는 함수, volatile 키워드 영향력 테스트, 스레드와 뮤텍스 등)을 충실히 설명하고 있습니다. 프로젝트에 따라 C 언어를 훑어봐야 하는 개발자나 C 언어의 구석구석을 살펴보고 싶은 개발자에게 추천합니다.
_김용현_Microsoft MVP

사물인터넷, 자동차, 에너지, 로봇 등 다양한 산업 분야에서 C, C++, HTML, 자바, 파이썬, Go 등 다양한 프로그래밍 언어를 접하다가 결국 C 언어로 돌아오는 길목에서 이 책을 만났습니다. 전문 프로그래머는 아니지만 C 언어는 포인터만 잘 이해하면 된다고 생각했었는데, 그동안 접하지 못했던 제어 흐름, 어토믹, 스레드, 표준화된 C 언어 용어와 코딩 스타일을 레벨 0부터 레벨 3까지 단계별로 하나씩 배울 수 있어 좋았습니다. 기본으로 돌아가 다시 C 언어를 시작하는 분이나 표준화된 C 언어의 깊이를 놓쳐 더 찾아보고 싶은 분께 이 책이 좋은 안내서가 될 것입니다.
_심태형_ETRI 선임연구원
요즘은 다양한 언어를 사용하지만 C 언어만큼 컴퓨터를 잘 알 수 있는 언어는 없다고 생각합니다. 이 책에서는 C 언어의 기초부터 고급 문법, 다양한 라이브러리를 접할 수 있고, 깔끔한 코드 작성, 매크로, CS적인 내용까지 활용해 볼 수 있습니다. 입문자에게는 기초부터 탄탄하게 배울 기회를, 중급자에게는 스킬업 기회를 제공합니다. C 언어를 활용하는 현업 개발자라면 항상 옆에 두고 필요할 때 꺼내 보는 참고서가 되어 줄 것입니다.
_전은영_네트워크 개발자

이 책은 레벨을 나누어 같은 기술도 난이도에 맞는 수준으로 설명합니다. 레벨 0부터 레벨 3까지 순서대로 읽다 보면 자연스럽게 지식을 습득하는 구조라 책을 읽으면서 나의 레벨은 어느 정도일까 가늠해 보는 재미도 있습니다. 레벨 후반부로 갈수록 난이도가 높아 읽는 속도가 느려지긴 해도 나의 수준을 파악하고 앞으로의 공부 방향을 결정하는 데 도움이 됩니다. 이 책의 특히 좋은 점은 원리나 역사와 함께 언어의 특징을 설명한다는 것입니다. 데이터 형식부터 포인터, 구조체, 표준 라이브러리나 코딩 스타일까지 C 언어와 관련된 모든 내용을 깊이 있게 살펴보므로 심도 있는 C 언어 학습이나 더 좋은 코드를 짜는 힌트를 얻을 수 있습니다.
_최사랑_42서울 교육생


Information Provided By: : Aladin

Author Introduction

옌스 구스테트(지은이)

본 대학(University of Bonn)과 베를린 공과대학(Berlin Technical University)에서 수학을 전공했다. 당시 연구 주제는 이산수학과 효율적인 계산에 대한 분야였다. 1998년부터 프랑스 국립 연구소인 INRIA에서 선임 과학자로 일하기 시작했다. 첫 부서는 낭시에 있는 LORIA 랩이었고, 2013년부터는 스트라스부르의 ICube 랩에서 근무하고 있다. 지금까지 과학 연구 경력의 대부분은 소프트웨어 개발과 관련이 있다. 처음에는 주로 C++를 다뤘지만 나중에는 C만 집중적으로 사용했다. 현재 ISO JTC1/SC22/WG14의 전문가(AFNOR)로 활동하고 있고, C 표준 문서인 ISO/IEC 9899:2018의 공동 에디터를 맡고 있다. C 프로그래밍을 주로 다루는 블로그도 활발히 운영하고 있다(https://gustedt.wordpress.com).

남기혁(옮긴이)

고려대 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임연구원으로 재직하고 있다. 한빛미디어에서 출간한 『Make: 센서』(2015), 『메이커 매뉴얼』(2016), 『이펙티브 디버깅』(2017), 『전문가를 위한 C++』(2019), 『리팩토링 2판』(2020)과 에이콘출판사에서 출간한 『현대 네트워크 기초 이론』(2016), 『도커 컨테이너』(2017), 『스마트 IoT 프로젝트』(2017), 『파이썬으로 배우는 인공지능』(2017), 『메이커를 위한 실전 모터 가이드』(2018), 『Go 마스터하기』(2018), 『자율주행 자동차 만들기』(2018), 『The Hundred-Page Machine Learning Book』(2019), 『스콧 애론슨의 양자 컴퓨팅 강의』(2021), 『자율주행차량 기술 입문』(2021) 등을 번역했다.

Information Provided By: : Aladin

Table of Contents

레벨 0 만남

1장 들어가며
1.1 명령형 프로그래밍
1.2 컴파일하고 실행하기
1.3 요약

2장 프로그램의 핵심 구조
2.1 문법
2.2 선언
2.3 정의
2.4 문장
__2.4.1 반복
__2.4.2 함수 호출
__2.4.3 함수 리턴
2.5 요약

레벨 1 친숙

3장 결국은 제어
3.1 조건부 실행
3.2 반복문
3.3 다중 선택
3.4 요약

4장 계산 표현하기
4.1 산술
__4.1.1 +, -, *
__4.1.2 나눗셈과 나머지
4.2 오브젝트를 수정하는 연산자
4.3 불 연산
__4.3.1 비교 연산
__4.3.2 논리 연산
4.4 삼항 연산자와 조건 연산자
4.5 평가 순서
4.6 요약

05 값과 데이터
5.1 추상 상태 기계
__5.1.1 값
__5.1.2 타입
__5.1.3 바이너리 표현과 추상 상태 기계
__5.1.4 최적화
5.2 기본 타입
5.3 값 지정하기
__5.3.1 복소수 상수
5.4 암묵적 변환
5.5 초기자
5.6 이름 있는 상수
__5.6.1 읽기 전용 오브젝트
__5.6.2 열거형
__5.6.3 매크로
__5.6.4 복합 리터럴
5.7 바이너리 표현
__5.7.1 부호 없는 정수
__5.7.2 비트 집합과 비트 단위 연산자
__5.7.3 시프트 연산자
__5.7.4 불 값
__5.7.5 부호 있는 정수
__5.7.6 고정폭 정수 타입
__5.7.7 부동 소수점 데이터
5.8 요약

6장 파생 데이터 타입
6.1 배열
__6.1.1 배열 선언
__6.1.2 배열 연산
__6.1.3 배열 길이
__6.1.4 매개변수로 사용하는 배열
__6.1.5 스트링은 특별하다
6.2 불투명 타입으로 사용하는 포인터
6.3 구조체
6.4 타입 이름 새로 짓기: 타입 앨리어스
6.5 요약

7장 함수
7.1 간단한 함수
7.2 main은 특별하다
7.3 재귀호출
7.4 요약

8장 C 라이브러리 함수
8.1 C 라이브러리의 기본 속성과 제공 함수
__8.1.1 헤더
__8.1.2 인터페이스
__8.1.3 오류 검사
__8.1.4 경계값 검사 인터페이스
__8.1.5 프로그램 사전조건
8.2 수학 함수
8.3 입력, 출력, 파일 조작
__8.3.1 서식을 적용하지 않은 텍스트 출력
__8.3.2 파일과 스트림
__8.3.3 텍스트 IO
__8.3.4 서식 지정 출력
__8.3.5 서식 없는 텍스트 입력
8.4 스트링 처리와 변환
8.5 시간
8.6 런타임 환경 설정
8.7 프로그램 종료 및 어서션
8.8 요약

레벨 2 이해

9장 스타일
9.1 코드 서식
9.2 이름 짓기
9.3 요약

10장 구성과 문서화
10.1 인터페이스 문서화
10.2 구현
__10.2.1 매크로
__10.2.2 순수 함수
10.3 요약

11장 포인터
11.1 포인터 연산
__11.1.1 주소 연산자와 오브젝트 연산자
__11.1.2 포인더 덧셈
__11.1.3 포인터 뺄셈
__11.1.4 포인터 유효성
__11.1.5 널 포인터
11.2 포인터와 구조체
11.3 포인터와 배열
__11.3.1 배열과 포인터는 접근 방식이 서로 같다
__11.3.2 배열 매개변수와 포인터 매개변수는 서로 같다
11.4 함수 포인터
11.5 요약

12장 C 메모리 모델
12.1 균일 메모리 모델
12.2 유니온
12.3 메모리와 상태
12.4 불특정 오브젝트에 대한 포인터
12.5 명시적 변환
12.6 이펙티브 타입
12.7 정렬
12.8 요약

13장 스토리지
13.1 malloc과 친구들
__13.1.1 가변 크기 배열 예제의 완성 버전
__13.1.2 동적 할당 연산에 대한 일관성 보장하기
13.2 스토리지 기간, 수명, 가시성
__13.2.1 정적 스토리지 기간
__13.2.2 자동 스토리지 기간
13.3 보충 설명: 오브젝트를 정의하기 전에 사용하기
13.4 초기화
13.5 보충 설명: 머신 모델
13.6 요약

14장 고급 처리 과정과 IO
14.1 텍스트 처리
14.2 서식 지정 입력
14.3 확장 문자 집합
14.4 바이너리 스트림
14.5 에러 검사와 클린업
14.6 요약

레벨 3 숙달

15장 성능
15.1 인라인 함수
15.2 restrict 지정자 사용하기
15.3 측정과 인스펙션
15.4 요약

16장 함수 같은 매크로
16.1 함수 같은 매크로 작동 방식
16.2 인수 검사
16.3 호출 문맥에 접근하기
16.4 디폴트 인수
16.5 가변 길이 인수 리스트
__16.5.1 가변 인수 매크로
__16.5.2 참고: 가변 인수 함수
16.6 타입 독립 프로그래밍
16.7 요약

17장 다양한 제어 흐름
17.1 복잡한 예
17.2 순서 정하기
17.3 숏점프
17.4 함수
17.5 롱점프
17.6 시그널 핸들러
17.7 요약

18장 스레드
18.1 간단한 스레드 제어
18.2 경쟁 상태가 없는 초기화와 소멸
18.3 스레드 로컬 데이터
18.4 크리티컬 데이터와 크리티컬 섹션
18.5 상태 변수를 이용한 통신
18.6 복잡한 스레드 관리
18.7 요약

19장 아토믹 접근과 메모리 일관성
19.1 선행 관계
19.2 동기화를 지원하는 C 라이브러리 호출
19.3 순차적 일관성
19.4 그 밖의 일관성 모델
19.5 요약

TAKEAWAY
참고문헌
찾아보기

New Arrivals Books in Related Fields

Anson, Steve (2022)
한국. 행정안전부 (2022)
한국. 행정안전부 (2022)
황기태 (2021)
Zumstein, Felix (2022)