1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

Effective C - 전문적인 C 프로그래밍 입문서
저자 : 로버트 C. 시코드 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 박정재,장기식,장준원

2023.06.30 ㅣ 352p ㅣ ISBN-13 : 9791161757599

정가33,000
판매가31,350(5% 할인)
적립금 1,320원 (4%)
배송일정 05월 14일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 B5(257mm X 188mm, 사륙배판)
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 컴퓨터언어 > C/C++/TURB...
시간이 지나도 변하지 않고 컴퓨팅 세계의 기반을 강화하는 데 도움이 되는 전문적이고 안전하며 이식 가능한 C 코드를 작성하는 방법을 저자의 경험을 바탕으로 설명한다. C와 C 표준 라이브러리를 사용하는 모범 사례와 사용 중에 발생할 수 있는 일반적인 오류 등을 설명한다. C 프로그램을 디버깅하고 테스트하고 분석하는 방법도 소개한다.
펼쳐보기

[목 차]

1장. C 시작하기
__첫 번째 C 프로그램 개발하기
____프로그램 컴파일 및 실행
____전처리기 지시문
____main 함수
____함수 반환 값 확인
____출력 형식
__편집기 및 통합 개발 환경
__컴파일러
____GNU 컴파일러 모음
____Clang
____마이크로소프트 Visual Studio
__이식성
____구현 정의 동작
____미지정 동작
____미정의 동작
____로케일 별 동작 및 공통 확장
__요약

2장. 개체와 함수, 형식
__개체와 함수, 형식, 그리고 포인터
__변수 선언
____값 바꾸기 (첫 번째 시도)
____값 바꾸기 (두 번째 시도)
__범위
__스토리지 기간
__맞춤
__개체 형식
____부울 형식
____문자 형식
____숫자 형식
____void 형식
__함수 형식
__파생된 형식
____포인터 형식
____배열
____구조체
____공용체
__태그
__형식 한정자
____const
____volatile
____restrict
__연습 문제
__요약

3장. 산술 형식
__정수
____패딩과 정밀도
____ 헤더 파일
____정수 선언하기
____부호가 없는 정수
____부호가 있는 정수
____정수 상수
__부동 소수점
____부동 소수점 형식
____부동 소수점 산술
____부동 소수점 값
____부동 소수점 상수
__산술 변환
____정수 변환 순위
____정수 확장
____일반 산술 변환
____암시적 변환의 예
____안전한 변환
__요약

4장. 식과 연산자
__단순 할당
__평가
__함수 호출
__증가 및 감소 연산자
__연산자 우선순위 및 결합성
__평가 순서
____비순차적 평가와 규정되지 않은 순차적 평가
____시퀀스 포인트
__sizeof 연산자
__산술 연산자
____단항 연산자 +와 -
____논리 부정 연산자
____곱하기 연산자
____더하기 연산자
__비트 연산자
____보수 연산자
____시프트 연산자
____비트 AND 연산자
____비트 배타적 OR 연산자
____비트 포괄적 OR 연산자
__논리 연산자
__캐스트 연산자
__조건부 연산자
___Alignof 연산자
__관계형 연산자
__복합 할당 연산자
__쉼표 연산자
__포인터 산술
__요약

5장. 흐름 제어
__식 문
__복합 문
__선택 문
____if 문
____switch 문
__반복문
____while 문
____do...while
____for 문
__점프 문
____goto 문
____continue 문
____break 문
____return 문
__연습 문제
__요약

6장. 동적으로 할당된 메모리
__스토리지 기간
____힙과 메모리 관리자
____동적으로 할당된 메모리를 사용하는 경우
__메모리 관리 함수
____malloc 함수
____aligned_alloc 함수
____calloc 함수
____realloc 함수
____reallocarray 함수
____free 함수
__메모리 상태
__유연한 배열 멤버
__동적으로 할당된 다른 스토리지
____alloca 함수
____가변 길이 배열
__할당된 스토리지 문제 디버깅하기
____Dmalloc
____안전이 중요한 시스템
__연습 문제
__요약

7장. 문자와 문자열
__문자
____ASCII
____유니코드
____소스 및 실행 문자 집합
____데이터 형식
____문자 상수
____이스케이프 문자
____Linux
____Windows
____문자 변환
__문자열
____문자열 리터럴
__문자열 처리 함수
____
____부속서 K 경계 검사 인터페이스
____POSIX
____Microsoft
__요약

8장. 입출력
__표준 입출력 스트림
____스트림 버퍼링
____미리 정의된 스트림
____스트림 방향
____텍스트 및 이진 스트림
__파일 열기 및 만들기
____fopen 함수
____POSIX open 함수
__파일 닫기
____fclose 함수
____POSIX close 함수
__문자와 줄을 읽고 쓰기
__스트림 플러싱
__파일에서 위치 설정하기
__파일 삭제하기 및 이름 바꾸기
__임시 파일 사용하기
__형식이 있는 텍스트 스트림 읽기
__이진 스트림에서 읽기 및 쓰기
__요약

9장. 전처리기
__컴파일 과정
__파일 포함
____따옴표 및 홑화살괄호 포함 문자열
__조건부 포함
____오류 만들기
____헤더 보호기 사용하기
__매크로 정의
____매크로 대체
____형식 제네릭 매크로
____미리 정의된 매크로
__요약

10장. 프로그램 구조
__구성 요소화의 원칙
____결합도와 응집도
____코드 재사용
____데이터 추상화
____불투명 형식
__실행 파일
__링크
__간단한 프로그램 구조화하기
__코드 빌드하기
__요약

11장. 디버깅과 테스트, 분석
__어설션
____정적 어설션
____런타임 어설션
__컴파일러 설정 및 플래그
____GCC 및 Clang
____Visual C++
__디버깅
__단위 테스트
__정적 분석
__동적 분석
____AddressSanitizer
__연습 문제
__요약

[본 문]

1장, ‘C로 시작하기’에서는 main 함수 사용에 익숙해지도록 간단한 C 프로그램을 작성한다. 또한 편집기와 컴파일러에 대한 몇 가지 옵션을 살펴본다.

2장, ‘개체와 함수, 형식’에서는 변수와 함수를 선언하는 것과 같은 기본적인 내용을 알아본다. 또한 기본 형식을 사용하는 원칙도 소개한다.

3장, ‘산술 형식’에서는 두 종류의 산술 형식인 정수 형식과 부동 소수점 형식에 관해 알아본다.

4장, ‘식과 연산자’에서는 연산자와 다양한 개체 형식에 대한 연산을 수행하기 위해 간단한 식을 작성하는 방법을 소개한다.

5장, ‘흐름 제어’에서는 각 문(statement)이 평가되는 순서를 제어하는 방법을 알아본다. 먼저 수행할 작업을 정의하는 표현문(expression statements)과 복합문(compound statements)을 알아본다. 그런 다음 실행할 코드 블록을 결정하는 선택(selection)과 반복(iteration), 점프(jump) 세 종류의 문을 살펴본다.

6장, ‘동적으로 할당된 메모리’에서는 런타임에 힙(heap)에서 할당되는 동적으로 할당된 메모리(dynamically allocated memory)에 관해 알아본다. 동적으로 할당된 메모리는 런타임 전에 프로그램에 대한 정확한 스토리지 요구 사항을 알 수 없는 경우에 유용하다.

7장, ‘문자와 문자’에서는 ASCII와 유니코드를 포함한 다양한 문자열 집합을 알아본다. C 표준 라이브러리의 레거시(legacy) 함수와 경계 확인 인터페이스(bounds-checked interfaces), 그리고 POSIX와 Windows API를 사용해 문자열을 표현하고 조작하는 방법을 살펴본다.

8장, ‘입력/출력’에서는 터미널 및 파일 시스템(filesystem)에서 데이터를 읽거나 쓰기 위해 입력/출력(입출력, Input/Output) 연산을 수행하는 방법을 알아본다. 입출력은 정보가 프로그램에 들어오고 나가는 모든 방법을 포함하며, 입출력을 하지 못하면 프로그램은 쓸모가 없다. C 표준 스트림(stream)과 POSIX 파일 설명자를 사용하는 방법을 소개한다.

9장, ‘전처리기’에서는 전처리기를 사용해 파일을 포함하고, 개체 같은 매크로와 함수 같은 매크로를 정의하고, 구현체에 정의된 기능에 따라 코드를 조건부로 포함하는 방법을 알아본다.

10장, ‘프로그램 구조’에서는 프로그램을 소스 파일과 포함(include) 파일로 구성된 여러 변환 단위로 구조화하는 방법을 알아본다. 또한 여러 개체 파일을 함께 연결해 라이브러리와 실행 파일을 만드는 방법도 살펴본다.

11장, ‘디버깅과 테스트, 분석’에서는 컴파일 타임과 런타임 어설션(assertion), 디버깅, 테스트, 정적 분석 그리고 동적 분석을 포함해 정확하고 효과적이며 안전하고 보안성을 제공하며 강건한 프로그램을 만드는데 필요한 도구와 기술을 설명한다. 또한 소프트웨어 개발 프로세스의 여러 단계에서 사용할 수 있는 컴파일러 플래그에 대해서도 알아본다.
펼쳐보기
◈ 이 책에서 다루는 내용 ◈
◆ C 프로그램에서 정의되지 않은 동작을 식별하고 처리하는 방법
◆ 정수 및 부동 소수점 값의 범위 및 표현
◆ 동적 메모리 할당이 작동하는 방법과 비표준 함수를 사용하는 방법
◆ 문자 인코딩 및 형식을 사용하는 방법
◆ C 표준 스트림 및 POSIX 파일 설명자를 사용해 터미널과 파일 시스템에서 I/O를 수행하는 방법
◆ C 컴파일러의 변환 단계와 전처리기의 역할을 이해하는 방법
◆ C 프로그램을 테스트하고 디버그하며 분석하는 방법

◈ 이 책의 대상 독자 ◈
C 언어에 대한 입문서로 C 프로그래밍을 배우고자 하는 모든 사람이 쉽게 이해할 수 있도록 작성했다. 즉, 다른 많은 입문서와 강좌처럼 C 프로그래밍을 지나치게 단순화하지 않았다.

옮긴이의 말
사이버 보안 관련 일을 하기 시작하면서 C 언어로 작성된 코드에서 사소한 오류로 인해 큰 보안 사고가 발생하는 것을 직접 목격했습니다. 이로 인해 시큐어 코딩이라는 개념을 접하게 됐고, 이제는 시큐어 코딩을 코드 작성 초기부터 적용하는 것이 기본이 됐습니다.

이 책은 다른 C 언어 프로그래밍 입문서와는 다릅니다. 표준 C 언어 문법부터 시큐어 코딩에 필요한 디버깅, 정적 분석 및 동적 분석에 이르기까지 폭넓은 내용을 담고 있습니다. 그래서 초보자에게는 다소 어려울 수 있는데, 특히 안전한 코드 작성에 필요한 취약점에 관한 내용이 나오고, 버그가 발생할 수 있는 코드의 예와 이를 해결할 방법까지도 제시합니다.

C 언어의 기본 문법을 어느 정도 알고 있는 독자라면 책 뒷부분에 나오는 메모리 할당과 입출력, 프로그램 구조, 디버깅, 단위 테스트 그리고 정적 분석 및 동적 분석의 내용을 꼼꼼하게 익히길 바랍니다. 전부 시큐어 코딩에 필요한 요소입니다.

저자는 성능이 우수하면서도 안전하며 보안성을 갖춘 코드를 작성하는 것을 강조합니다. C 프로그램에서 정의되지 않은 동작이 발생하는 것을 막을 수 있도록 저자가 소개하는 모든 방법과 도구를 활용해 시큐어 코딩을 익힐 수 있길 바랍니다.

추천사
Effective C는 여러분에게 현대 시대를 위한 C 프로그래밍을 가르쳐 줄 것이다. 이 책은 여러분이 자발적이든 과실이든 정의되지 않은 동작을 사용하지 않도록 좋은 습관을 들이는 데 도움이 될 것이다. 대형 C 프로그램에서 일반적인 프로그래밍 오류만 없애는 것만으로는 임의의 입력으로 인해 발생하는 정의되지 않은 동작을 막을 수는 없다고 독자들에게 경고한다.
이 책이 강조하는 C 프로그래밍의 보안 측면은 타의 추종을 불허한다. 내 개인적인 권고사항은 책을 읽은 후 여러분이 작성하는 C 프로그램에서 정의되지 않은 동작을 막기 위해 이 책에서 알려주는 도구를 모두 활용해야 한다는 것이다.
―파스칼 쿠오크(Pascal Cuoq), TrustInSoft, 수석 과학자

오늘날 우리는 여전히 보안성 높고 전문적인 C를 작성하는 데 있어 수많은 도전에 직면해 있다. 컴파일러 및 시스템 수준의 완화에 대한 많은 혁신이 정기적으로 훼손될 수 있으며 실제로 그래왔다. 그리고 다른 현대 언어가 진보적인 혁신을 보이는 동안에도 특히 IoT 등 고도의 자원 제한적인 환경에서 C의 수요는 여전히 증가하고 있다.
로버트는 C에서 전문적이며 보안성 높게 프로그래밍하는 방법에 관한 권위자다. 10년 넘게 고객과 팀 내부의 모두에게 그의 자료를 추천해왔다. 전문적으로 그리고 무엇보다도 안전한 방식으로 C를 코딩하는 방법을 가르치는 데 있어 더 좋은 사람은 없다.
오늘날 전문적인 C를 작성한다는 것은 곧 우수하고 안전하며 보안성 높은 코드 작성을 의미한다. 이렇게 하면 기술적으로 신세를 지지 않고도 연결된 사회에 기여할 수 있다.
이 책은 C 경험이 거의 혹은 전혀 없는 사람들이 전문 C 프로그래머가 될 수 있도록 지식과 기법을 빠르게 개발하게 도와주며 우수하고 안전한 동시에 보안성 있는 시스템 개발에 크게 이바지할 것이다.
―올리 화이트하우스(Ollie Whitehouse), Global CTO, NCC Group
펼쳐보기
로버트 C. 시코드(Robert C. Seacord)
NCC 그룹의 기술 이사로 C, C++ 및 다른 언어의 시큐어 코딩을 개발하고 가르친다. C 프로그래밍 언어의 국제 표준화 작업 그룹인 ISO/IEC JTC1/SC22/WG14의 전문가이기도 하다. 또한, 『CERT C 프로그래밍 2/e』(에이콘출판, 2022)와 『(개정판) C & C++ 시큐어 코딩』(에이콘출판, 2015), 『자바 시큐어 코딩 가이드라인』(인피니티북스, 2017) 등의 다른 책도 저술했다. 소프트웨어 보안과 구성 요소 기반 소프트웨어 엔지니어링, 웹 기반 시스템 설계, 레거시 시스템 현대화, 구성 요소 저장소 및 검색 엔진 그리고 사용자 인터페이스 설계 및 개발에 관한 50편 이상의 논문도 발표했다.

옮긴이 박정재
경찰대학교 행정학과를 졸업하고, 서강대학교 정보통신대학원에서 블록체인 전공으로 공학석사 학위를 받았다. 경찰청 보안 사이버수사대에서 첩보수집·분석 업무, 서울경찰청 사이버수사대에서 디지털포렌식팀장으로 근무했다.
현재 법무법인 율촌 전문위원으로 기업 내부조사, 디지털 증거분석, 블록체인 자문 등 IT 분야 조사업무를 담당하고 있다.

옮긴이 장준원
경찰대학(18기) 법학과를 졸업하고, 서울영등포경찰서 수사과 조사반장으로 공직생활을 시작해, 서울지방경찰청 수사과 사이버범죄수사대 수사팀장과 디지털포렌식팀장, 외사과 국제범죄수사대 기획팀장, 경찰수사연수원 사이버범죄수사학교 교수 및 학과장, 그리고 경찰청 국가수사본부 사이버테러수사팀장 등으로 근무한 후, 20여년간 몸담았던 경찰을 떠나 2021년에 법무법인(유) 화우에 합류해 디지털포렌식 전문위원으로 사이버범죄 수사 및 디지털포렌식 분석 사건에 대한 기술 지원 및 자문업무를 수행하고 있다.
현재 세계 최고의 사이버범죄 수사 및 디지털포렌식 전문가이자 경력자로 경찰청 디지털포렌식 자문단, 감사원 감사연구원 자문위원, 한국디지털포렌식학회 이사 등을 역임하고, SBS 『그것이 알고 싶다』와 YouTube 꼼짝마TV 등 다양한 방송 및 인터뷰에 출연하는 등 활발하게 대외적으로도 활동하고 있다.

옮긴이 장기식
경희대학교에서 대수학을 전공했으며, 고려대학교 정보보호대학원에서 박사학위를 취득했다. 이후 약 10년간 경찰청 사이버안전국 디지털포렌식센터에서 디지털포렌식 업무를 담당했다. 경찰대학 치안정책연구소에서 데이터 분석을 접한 이후 데이터 분석을 기반으로 한 머신러닝 기술을 연구했으며, 이 경험을 바탕으로 현재 쏘마(SOMMA)에서 고도화된 보안 위협 대응을 위한 사이버 위협 헌팅 플랫폼 MONSTER와 APT 공격 시뮬레이터CHEIRON 개발 및 연구를 책임지고 있다. 번역서로는 『보안을 위한 효율적인 방법 PKI』(인포북, 2003)와 『EnCase 컴퓨터 포렌식』(에이콘, 2015), 『인텔리전스 기반 사고 대응』(에이콘, 2019), 『적대적 머신러닝』(에이콘, 2020), 『사이버 보안을 위한 머신러닝 쿡북』(에이콘, 2021), 『양자 암호 시스템의 시작』(에이콘, 2021), 『스크래치로 배워보자! 머신러닝』(에이콘, 2022), 『Pandas를 이용한 데이터 분석 실습 2/e』(에이콘, 2022)이 있다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기