혼자 공부하는 C 언어(개정판)
서현우 저 │ 2023-05-18 개정
📌쉽지 않은 포인터의 개념을 제대로 짚고 싶을 때
📌예제 하나도 놓치지 않고 제대로 이해하고 싶을 때
📌다채로운 문제를 풀며 한발 더 나아가고 싶을 때
<혼자 공부하는 C 언어> 동영상 강의
✍️직접 해보는 손코딩
✍️확인문제 & 도전 실전 예제
📈Level Up! 개념 정리
# ‘C 언어’ 궁금한 게 있어요!
C 언어는 운영체제 개발을 위해 만들어진 언어입니다. 따라서 하드웨어를 제어하고 실행 효율을 높여야 하는 곳에 주로 쓰입니다. 특히 가전제품을 비롯한 의료 장비, 무기, 엔진 등 특정 하드웨어에 최적화된 기능이 필요한 임베디드 프로그래밍에 가장 많이 쓰입니다.
사물에 인터넷을 연결해 제어하는 IoT에도 C 언어를 사용합니다. 대량의 데이터를 빠르게 처리하기 위해 C 언어로 서버 프로그래밍을 하기도 합니다. 무엇보다 프로그래밍 절차를 이해하고 데이터 처리 과정을 메모리 상황과 함께 고민해 볼 수 있게 해주는 최고의 언어입니다.
그래서 다른 언어들을 배우기 전에 꼭 거쳐야 할 기본 언어라고 생각합니다. 게임 프로그래밍에 많이 사용되는 C++, C#은 C를 기반으로 파생된 언어며, 웹 개발에 쓰이는 자바, 빅데이터 분야에 쓰이는 파이썬의 클래스 개념은 C 언어의 구조체로부터 시작되었습니다. 결국 C 언어를 잘하면 다른 수많은 언어를 쉽게 배울 가능성이 높아집니다.
C 언어를 배우고 난 후에는 객체지향 언어를 공부하는 것이 좋습니다. 자바, 파이썬 등 현재 인기 있는 대부분의 언어가 객체지향 언어이기 때문입니다.
또는 C 언어에서 파생된 객체지 향 언어인 C++을 공부하면서 객체지향 프로그래밍 방식에 대해 고민하는 시간을 갖는 것도 좋습니다. 다만 C++ 언어가 깊고 내용이 많으니 객체지향 언어에 대한 개념만 정리하고 자 바나 파이썬으로 넘어가는 것도 좋습니다. 임베디드 프로그래밍도 웹이나 앱과 연동하여 작 성하므로 자바가 널리 사용됩니다.
C 언어를 배우고 난 후에 또 한 가지 꼭 해야 할 일이 있습니다. 자료구조와 알고리즘에 대한 공부를 시작해야 합니다. 같은 데이터를 처리할 때 메 모리를 더 적게 사용하면서 빨리 실행되는 프로그램을 만들려면 상황에 맞는 적절한 자료구 조와 알고리즘의 선택이 필요합니다.
필자는 이 책을 읽는 독자가 C 언어를 공부하는 것에 그치지 않고 객체지향 프로그래밍에 대한 이해와 기본적인 자료구조 및 알고리즘을 이어서 공부할 수 있도록 온라인 카페를 통해 꾸준히 지원할 예정입니다.
필자가 처음 C 언어를 독학할 때 느꼈던 답답함을 생각하며 ‘처음 공부하거나 한 번쯤 실패 한 경험이 있는’ 독자를 기준으로 설명하고자 했습니다.
처음 배우는 독자가 책으로 혼자 공 부할 수 있도록 쉽고 자세히 설명하고 그림과 예제 코드를 충분히 넣었습니다. 각 절 끝에는 키워드와 표로 핵심 내용을 정리할 수 있고 확인 문제와 도전 실전 예제가 있습니다. 또한 책 에 싣지 못한 다양한 문제를 온라인에서 제공하고 동영상 강의를 통해 문제 풀이와 프로그래 밍 방법을 설명합니다.
특별한 선행 지식이 필요하지는 않습니다. 윈도우와 같은 OS를 사용할 줄 알고, 진법, 거듭 제곱 등과 같은 기본 수학 지식이 있으면 충분합니다. 다만 앞에서 배운 내용이 이후 내용의 선행 지식이 될 수 있으니 1장부터 차근차근 공부할 것을 권합니다.
설명을 읽고 직접 예제 프로그램을 만들어 이해한 내용이 맞는지 확인하는 방법이 가장 좋습 니다. 실행결과를 보고 자연스럽게 다른 결과에 대한 궁금증이 생기면 코드를 수정하고 새로 운 결과를 통해 자신의 생각이 맞는지 다시 확인합니다. 이런 과정을 반복하면서 진도를 나 가면 어느 시점에 스스로 프로그램을 만들고 싶은 욕심이 생깁니다. 그 이후에는 C 언어 공 부로 스스로 밤을 새게 될 거예요.
책과 동영상 강의, 예제와 도전 문제 등 C 언어 학습을 위해 잘 짜여진 시나리오가 여기 있습 니다. 온라인 카페를 통한 콘텐츠 지원 등 훌륭한 무대장치도 준비되어 있습니다. 이제 멋진 공연을 위해 대본을 숙지하고 끊임없이 연습하는 것은 주인공인 독자의 몫으로 남기겠습니다.