분야별도서 > 프로그래밍 > C프로그래밍

분야별도서

단계별 프로젝트 중심의 C프로그래밍 파워 업그레이드

소프트웨어 개발에 필요한 구현 능력 갖추기 프로젝트
  • 저자윤성우
  • 관련분야컴퓨터, IT
  • 발행일2009-06-05
  • 정가26,000원
  • 페이지646 페이지
  • ISBN978-89-960940-0-5
  • 책소개
  • 저자소개
  • 목차
  • 출판사 서평
C언어의 기본서가 채워주지 못하는 부분을 메워줍니다. 
여전히 많은 학생들은 대학에서 C언어를 공부합니다. 하지만 모든 학생들이 C언어를 잘 하는 것은 아닙니다. 공부는 했는데 부족하다는 생각이 든다면 여러분의 실력을 진단해 볼 필요가 있습니다. 중요한 것은 한 권의 책을 더 보는 것이 아니라, 여러분이 얼마나 C언어를 이해하고 있는지 스스로 진단하는 것입니다. 이 책에서는 C언어에 대한 여러분의 이해도를 확인할 수 있는 다양한 문제들을 제시하고, 또 자세한 설명을 통해서 이해도가 부족한 부분에 대한 학습을 돕습니다. 따라서 이 책을 처음부터 끝까지 공부한다면, 일정 수준 이상의 프로그래밍 실력을 보장받을 수 있습니다. 

프로그램 개발 능력의 향상을 위한 최상의 학습방법을 제시합니다. 
C언어의 기본서가 제공하는 연습문제는 말 그대로 연습문제일 뿐입니다. 이는 문법에 대한 이해도를 다지기 위한 것이지 소프트웨어의 구현 능력을 향상시키기 위한 것이 아닙니다. 따라서 문법은 아는데 구현이 안 되는 것은 당연한 것이라 할 수 있습니다. 구현 능력을 향상시키는 가장 좋은 방법은 일정 규모 이상의 프로그램 코드를 분석하고 그 수준에 준하는 프로그램을 작성해 보는 것입니다. 따라서 이 책에서는 일정 규모 이상의 프로그램 코드를 접할 수 있는 기회를 제공합니다. 

코드의 분석을 유도하는 것이 아니라 구현을 유도합니다. 
수준 있는 프로그램 코드를 그냥 분석만 해도 큰 도움이 됩니다. 하지만 누군가의 도움을 받아가며 수준 있는 프로그램의 전부 또는 일부를 구현해 보는 것은 더 큰 도움이 됩니다. 이 책은 여러분이 모든 것을 직접 해 볼 수 있는 환경을 제공합니다. 하나의 프로젝트를 여러 단계로 나눠 놓아서, 단계별로 조금씩 완성해 갈 수 있도록 유도합니다. 

저자의 온라인 강의를 통해서 학습효과와 효율을 극대화시킵니다. 
이 책에서 설명하는 내용이 따라가기 어렵다면 무료로 제공되는 온라인 강의를 활용할 수 있습니다. 온라인 강의에서는 문제에서 요구하는 바가 무엇인지를 아주 자세히 설명합니다. 그리고 그 문제에 대한 해답의 유도 과정도 설명합니다. 개인적인 차이는 있지만, 여러분이 노력만 한다면 이 책의 모든 내용을 여러분의 것으로 소화할 수 있습니다.

윤성우


벤처회사에서 개발자로 일하다가 IT분야의 집필과 강의로 처음 이름이 알려진 그는 2000년대 초반까지는 소프트웨어 아키텍트(Architect)로 일을 하다가, 2004년부터 지금까지 OpenGL-ES 그래픽스 라이브러리의 구현과 3D 가속 칩의 개발 및 크로노스 그룹(모바일 국제 표준화 컨소시엄)의 표준안에 관련된 일에 참여하였다.  

또한 핸드폰용 DMB 칩의 개발에도 참여하였으며, 현재는 ㈜액시스소프트의 CTO로 있으면서 웹 기반 솔루션 개발에 관심을 갖고 있다. 시간이 날 때마다 조깅을 하며 다양한 구상을 하는 저자는, 방법론에 근거한 소프트웨어 설계 전문가가 모든 분야에서 활발히 활동하여 소프트웨어 발전에 기여해야 한다는 생각을 갖고 있다.

PART 1. 기본실력 점검 및 향상
 
Section 01. 콘솔 입출력은 프로그래밍의 기본이다!

문제 1. 기본적인 입력 및 출력에 대한 점검
문제 2. 문자열을 입력 받는 두 가지 방법의 차이점
문제 3. 숫자를 읽어 들이려는데 16진수로 읽고 싶다면?
문제 4. 파일의 끝을 의미하는 EOF가 콘솔에서는 어떠한 의미를?
 
Section 02. C 언어의 연산자들을 사용해 보자.
문제 5. 기본 사칙 연산자 활용
문제 6. 명시적 형 변환, 묵시적인 형 변환
문제 7. 조건 연산자(삼 항 연산자) 활용
문제 8. 나머지 연산자
 
Section 03. 조건문과 반복문에 익숙해지기
문제 9. if~ else, while, for, break문에 대한 연습
문제 10. continue문에 대한 연습
문제 11. 익숙해지기 위한 추가 문제들
 
Section 04. 반복문의 중첩과 간단한 정렬 알고리즘 하나 익히기
문제 12. for문 중첩에 대한 연습
문제 13. while문과 for문의 중첩
문제 14. 반복문을 중첩하여 구현하는 정렬 알고리즘
 
Section 05. 문자와 문자열 처리
문제 15. 문자의 유형 분류하기 1
문제 16. 문자의 유형 분류하기 2
문제 17. 문자열 처리 함수 사용하기 1
문제 18. 문자열 처리 함수 사용하기 2
 
Section 06. 다양한 함수 만들기
문제 19. 함수의 기본
문제 20. 리턴 만으로 값을 반환하는 것이 아니다.
문제 21. 함수에 1차원, 2차원 배열을 인자로 전달하기
문제 22. 함수와 문자열 배열
문제 23. 문자열 처리함수 직접 만들어 보기
문제 24. 다른 함수들과 차이를 보이는 strtok 함수를 약식으로 만들어 보기
 
Section 07. 메모리의 동적 할당
문제 25. 프로그램 실행 중에 배열의 크기 결정하기
문제 26. 문자열의 길이는? 그때그때 달라요
 
Section 08. 구조체가 필요한 이유에 대한 확실한 인식
문제 27. 둘 이상의 데이터를 묶어야 하는 상황 : 구조체 사용하지 않기
문제 28. 둘 이상의 데이터를 묶어야 하는 상황 : 구조체 사용하기
문제 29. 저장할 때 도서명 순으로 정렬하여 저장하기
문제 30. 다양한 기준으로 도서 정보 정렬하기
 
Section 09. 헤더파일 그리고 파일 분할 완전 정복하기
문제 31. 헤더파일에 어떠한 내용들이 들어갈 수 있나요?
문제 32. 링커(linker)가 하는 일은 무엇인가요?
문제 33. 헤더파일! 이렇게 사용하자
문제 34. 헤더파일에 #ifndef~#endif
문제 35. 자! 그럼 헤더파일도 만들고 파일도 분할해 봅시다!
 
Section 10. 파일의 입력과 출력
문제 36. 파일에 문자를 입력 및 출력하려면 어떻게 해야 하는가?
문제 37. 파일에 숫자를 입력 및 출력하려면 어떻게 해야 하는가?
문제 38. 파일에 문자열을 입력 및 출력하려면 어떻게 해야 하는가?
문제 39. 파일을 통한 숫자, 문자 그리고 문자열의 동시 입력 및 출력
문제 40. 텍스트 파일과 바이너리(2진) 파일에 대한 오해
 

PART 2. 실력완성을 위한 단계별 프로젝트
 
Section 01. 전화번호 관리 프로젝트

전화번호 관리 프로젝트 1단계 : 입력과 출력 기능의 완성
전화번호 관리 프로젝트 2단계 : 데이터의 검색과 삭제
전화번호 관리 프로젝트 3단계 : 변경하자! 구조체 포인터 배열로
전화번호 관리 프로젝트 4단계 : 동명이인 처리하기
전화번호 관리 프로젝트 5단계 : 데이터의 저장과 복원
전화번호 관리 프로젝트 6단계 : 데이터 변경 기능의 추가
전화번호 관리 프로젝트 7단계 : 데이터 영속성의 유지
전화번호 관리 프로젝트를 마감하며
 
Section 02. 가위 바위 보 게임 프로젝트
가위 바위 보 게임 프로젝트 1단계 : 홀수 짝수 게임으로부터의 시작
가위 바위 보 게임 프로젝트 2단계 : 가위 바위 보 게임으로 변경
가위 바위 보 게임 프로젝트 3단계 : 승률 계산
가위 바위 보 게임 프로젝트 4단계 : 게임 머니 기능의 추가
가위 바위 보 게임 프로젝트 5단계 : 자! 판돈의 크기를 정하세요
가위 바위 보 게임 프로젝트 6단계 : 이어서 실행하시겠습니까?
가위 바위 보 게임 프로젝트를 마감하며
 
Section 03. DVD 대여 관리 프로젝트
DVD 대여 관리 프로젝트 1단계 : 고객 관리 기본 모듈 완성
DVD 대여 관리 프로젝트 2단계 : DVD 관리 기본 모듈 완성
DVD 대여 관리 프로젝트 3단계 : DVD 대여와 반납
DVD 대여 관리 프로젝트 4단계 : 데이터 저장 모델의 변경
DVD 대여 관리 프로젝트 5단계 : 소프트웨어 구조 변경과 파일 입출력
DVD 대여 관리 프로젝트를 마감하며
 
Section 04. 테트리스 게임 프로젝트
테트리스 게임 프로젝트 1단계 : 블록을 만들고 움직여라!
테트리스 게임 프로젝트 2단계 : 블록의 좌우 이동과 회전
테트리스 게임 프로젝트 3단계 : 충돌 검사와 블록 쌓기
테트리스 게임 프로젝트 4단계 : 블록의 소멸과 레벨 그리고 스페이스 바의 입력 처리
테트리스 게임 프로젝트를 마감하며
오프라인 강의에서만 접할 수 있었던 구현능력 향상 비법을 공개합니다.
이제 C프로그래밍 능력의 파워를 업그레이드 할 차례입니다!

∴ 이 책의 특징
­ C 언어의 문법을 점검하고, 부족한 이해를 채울 수 있는 기회를 제공합니다.
­ 1천 라인이 넘는 프로그램을 직접 구현해 볼 수 있습니다.
­ 여러 개의 소스파일과 헤더파일을 디자인할 수 있도록 유도합니다.
­ 프로그램의 구현 능력이 빠른 시간 안에 향상될 수 있는 길을 제시합니다.
­ 저자의 인터넷 강의를 통해서 학습에서의 실패 확률을 최소화합니다.
­ 7개월간의 무료강의 기간을 제공합니다.

수 많은 학생들이 대학에서 C언어를 공부합니다. 하지만 모든 학생들이 C언어를 잘 하는 것은 아닙니다. 공부는 했는데 부족하다는 생각이 든다면 여러분의 실력을 진단해 볼 필요가 있습니다. 중요한 것은 한 권의 책을 더 보는 것이 아니라, 여러분이 얼마나 C언어를 이해하고 있는지 스스로 진단하는 것입니다.
이 책에서는 C 언어에 대한 여러분의 이해도를 확인할 수 있는 기회를 제시합니다. 또한 자세한 설명을 통해서 이해도가 부족한 부분에 대한 학습을 돕습니다. 그리고 이 책의 주 목적은 프로그램의 구현 능력을 향상시키는데 있습니다. 이는 문법의 견고함을 다지는 것과는 별개의 문제입니다. 문법이야 며칠 밤을 새가며 열심히 공부하면 끝장을 볼 수 있지만, 실제 프로그램을 만드는 능력은 그리 쉽게 향상되지 않기 때문입니다. 그래서 이 책에서는 독자들로 하여금 일정 규모 이상의 프로그램코드를 접할 수 있는 기회를 제공하며 단계별로 프로그램 구현능력을 향상시킬 수 있도록 총 22가지의 도전과제로 구성이 된 4개의 프로젝트가 준비되어 있습니다. 또한 온라인 강의를 통해서 저자로부터 직접 도움을 받을 수 있기 때문에 여러분의 프로그래밍 실력은 반드시 향상될 것입니다.