이전

리뷰 (23)

한줄평
평점 분포
  • 리뷰 총점10 87%
  • 리뷰 총점8 13%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 9.0
  • 30대 9.0
  • 40대 9.0
  • 50대 9.0

포토/동영상 (6)

리뷰 총점 종이책
전문가를 위한 C
"전문가를 위한 C" 내용보기
거두절미하고, 이 책에 대해 평하기 전에 현 시점에 C언어를 공부하는 것이 의미가 있는가를 얘기해 보고자 합니다. Java 언어를 필두로 더 이상 메모리에 직접 접근하고, OS나 기기 자체의 기능을 사용하는 일은 프로그래밍 언어 단에서는 할 일이 없어지고 있고, 애당초 개발자가 C 언어를 직접 사용할 만한 일이 없는 게 사실이니까요. C 언어를 쓸 일이 없는데 C 언어 책이라니? 이
"전문가를 위한 C" 내용보기

거두절미하고, 이 책에 대해 평하기 전에 현 시점에 C언어를 공부하는 것이 의미가 있는가를 얘기해 보고자 합니다. Java 언어를 필두로 더 이상 메모리에 직접 접근하고, OS나 기기 자체의 기능을 사용하는 일은 프로그래밍 언어 단에서는 할 일이 없어지고 있고, 애당초 개발자가 C 언어를 직접 사용할 만한 일이 없는 게 사실이니까요. C 언어를 쓸 일이 없는데 C 언어 책이라니? 이 책의 내용이 어떻든, 훌륭하던 별로 던 간에 이 부분은 먼저 짚어볼 만해 보입니다.
 
최근 가장 핫 한 프로그래밍 언어라면, 그 중 하나로 파이썬을 꼽는데 이견이 있는 분은 많지 않을 듯합니다. 조금 과장하자면 C언어의 안티테제(Antithese) 라고 해도 될 정도로 C 언어와는 지향점이 다른 언어 고, C 언어보다 배우기 쉽고, 쓰기 편하죠. 하지만 그 파이썬(정확히는 CPython 인터프리터)는 C 언어로 만들어졌고, 대부분의 파이썬 기본 라이브러리들은 파이썬이 아닌 C 언어로 작성되어 있습니다. 뿐만 아니라 유명한 파이썬 패키지들의 대부분이 C 혹은 C++ 언어로 작성된 Extension에 기반하고 있기도 합니다. Node.js 는 어떨까요? 파이썬과 마찬가지로 NPM의 수많은 유명 패키지들이 C/C++ 언어로 작성된 Native Module을 활용하여 구현되어 있습니다. Java 언어는 어떨까요? JNI(Java Native Interface)나 안드로이드의 NDK(Native Development Kit)를 활용해 만들어진 수많은 오픈소스들이 있습니다.
 
보다시피 어떤 최신의 하이레벨 프로그레밍 언어 든, 나온 지 수십년이 지난 C 언어와의 상호운용성(interoperability)이 유지되고 있는 것을 알 수 있는데, 이는 최근에 나온 언어를 사용하더라도 오픈소스를 활용하거나, 보다 깊이 있게 파고들다 보면 소소하게는 C 언어로 작성된 코드의 컴파일 같은, C 언어에 대한 이해가 요구되는 시점이 반드시 오게 된다는 것을 의미합니다. 그렇습니다. 나온 지 수십년이 지난 오래된 프로그래밍 언어이지만 여전히 공부해야 한다는 것이죠.  
 
아, 이 책의 내용이요? 원제 대로 그야말로 익스트림, C 언어의 극한까지 다루고 있습니다. C언어를 다루는 데 필요한 모든 내용이 있다고 해도 과언이 아니었습니다. 무엇을 기대하던 그 이상을 보여줄 것이라 생각됩니다.
 
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
 

YES마니아 : 로얄 m******o 2022.10.31. 신고 공감 1 댓글 0
리뷰 총점 종이책
나도 이제 C언어 전문가
"나도 이제 C언어 전문가" 내용보기
이 책은 '전문가를 위한 C'로 출간되었지만, 사실 전문가가 되기 위한, 더 나은 C 개발자가 되기 위한 책이다.  본인도 C언어로 15년 이상 개발했지만, 국내에서 중급자를 위한 적합한 C언어 책을 구하기가 힘들었는데, 오랜만에 정말 재미있게 읽은 책이다.   전체 890페이지나 되어 읽기 전부터 살짝 부담되었으며, 그리고 읽는 중간에도 다소 힘들었지만, 다 읽고 난 지금은 아주 아
"나도 이제 C언어 전문가" 내용보기

이 책은 '전문가를 위한 C'로 출간되었지만, 사실 전문가가 되기 위한, 더 나은 C 개발자가 되기 위한 책이다.  본인도 C언어로 15년 이상 개발했지만, 국내에서 중급자를 위한 적합한 C언어 책을 구하기가 힘들었는데, 오랜만에 정말 재미있게 읽은 책이다.

 

전체 890페이지나 되어 읽기 전부터 살짝 부담되었으며, 그리고 읽는 중간에도 다소 힘들었지만, 다 읽고 난 지금은 아주 아쉽고 다음 책의 내용이 기대된다. 기존의 가지고 있던 지식이 정리되면서, 새로운 지식에 대한 갈증을 해결해 주었고, 다음에 나아갈 길까지 제시해주는 책이라고나 할까?

 

C언어를 윈도우 기반으로 시작했거나, 유닉스나 리눅스에 경험이 없으면,  관련 책을 먼저 읽기 시작하면 더욱더 효과적이겠다.  시중의 C언어 기초 책과 중복되는 내용이 거의 없음에도 890페이지나 된다. ^^;;

 

책의 구성은 7개 PART, 전체 23개 챕터로 되어 있다. PART I(C 프로젝트를 빌드하는 방법)에서는 필수 요소, 소스 코드에서 이진 파일로, 목적 파일 PART II(메모리) 프로세스 메모리 구조, 스택과 힙 PART III(객체지향) OOP와 캡슐화, 합성과 집합, 상속과 다형성, 추상화와 C++의 OOP PART IV(유닉스) 유닉스의 역사와 아키텍처, 시스템 호출과 커널, 최신 C PART V(동시성) 동시성, 동기화, 스레드 실행, 스레드 동기화 PART VI(프로세스 간 통신) 프로세스 실행, 프로세스 동기화, 싱글 호스트 IPC와 소켓, 소켓 프로그래밍, 다른 언어와의 통합 PART VII(테스트와 유지보수) 유닛 테스트와 디버깅, 빌드 시스템

 

각 챕터는 먼저 이번 챕터에서 설명할 내용을 요약하고,  이전 챕터와 관련이 있으면 이전 챕터의 내용을 간략하게 설명한다. 본격적으로 개념을 설명하고 덧붙여 관련 예제와 실행 결과를 박스 형태로 보여 준다. 예제는 읽거나 코딩하기에 부담스럽지 않으며, 중간중간 NOTE 형태로 부연 설명을 이어간다. 챕터의 마지막은 챕터에서 설명한 내용을 정리하고 다음 챕터에 대한 소개로 마무리한다.

 

개인적으로는 번역도 깔끔하고, 책의 구성도 지루하지 않으며 이해하기 쉬웠다. 각 파트 모두가 훌륭하고 버릴 것이 없었다. PART I에서의 프로젝트 빌드 과정과  PART II에서의 메모리 활용 방법, 특히 PART III에서 객체지향으로 프로그래밍하는 방법이 참신했으며, PART IV에서 유닉스와 C의 연관성, 영원히 C언어가 사라지지 않을 이유, 최신 C,  PART V에서는 최근 개인적인 관심의 동시성 프로그래밍(스레드, 멀티 프로세스),  PART VI에서 프로세스와 IPCInter Process Communication, PART VII TDD 지원, 디버깅, 빌드 시스템 등

 

올해 읽은 책중에서 베스트이며, 인생 책이 되지 않을까 하는 생각이 들 만큼 재미가 있었으며 만족한 책이었고, C언어는 영원히 죽지 않으며, 발전할 수밖에 없는 이유를 찾은 책이다.

 

책을 읽으면서 가장 마음에 드는 문구로 이번 리뷰를 마무리하고자 한다. 개인적으로는 자신감이 많이 늘었으며, 저자의 다음 책이 무척이나 기대되기 때문이다.

 

이 책에서 다룬 방법이나 팁은 여러분의 지식을 전문가 수준으로 끌어올렸고, 더 어려운 프로젝트에 도전할 수 있는 자신감을 ... 여정은 아직 끝나지 않았습니다. ... 다음 여정에서 다시 만나기를 바라겠습니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

d*****3 2022.10.30. 신고 공감 1 댓글 0
리뷰 총점 종이책
컴파일러 방식의 언어 중급 개발자들에게 큰 도움이 될 수 있는 책
"컴파일러 방식의 언어 중급 개발자들에게 큰 도움이 될 수 있는 책" 내용보기
2023년에 C언어가 가지는 의미는 무엇일까? C언어는 절차적 프로그래밍 언어의 맹주인 1972년생 프로그래밍 언어이지만, 객체지향을 넘어 함수형 프로그래밍이라는 패러다임이 몰아치는 현 시기에 C언어는 어떤 가치와 지향을 가지고 개발자들에게 다가설 수 있을까? 물론 나야 C/C++계열의 언어를 가장 좋아하고 있지만, 이제는 다른 신생 모던(Modern) 언어들이 제공하는 문제인식 개념
"컴파일러 방식의 언어 중급 개발자들에게 큰 도움이 될 수 있는 책" 내용보기

2023년에 C언어가 가지는 의미는 무엇일까? C언어는 절차적 프로그래밍 언어의 맹주인 1972년생 프로그래밍 언어이지만, 객체지향을 넘어 함수형 프로그래밍이라는 패러다임이 몰아치는 현 시기에 C언어는 어떤 가치와 지향을 가지고 개발자들에게 다가설 수 있을까? 물론 나야 C/C++계열의 언어를 가장 좋아하고 있지만, 이제는 다른 신생 모던(Modern) 언어들이 제공하는 문제인식 개념이나 편의성을 C언어는 어떻게 풀어내려고 접근하고 있을까? 하는 궁금점을 가지고 모던 C언어를 살펴보기 위해 이 책을 골랐다.

 이 책의 제목은 '전문가를 위한C'라고 번역되었고, 두께가 무려 900여 페이지에 달할 만큼 위압감을 주는 책이다.  원서의 제목은 "Extream C"이다.  C언어 역시 짝꿍 C++와 함께 발전을 거듭해왔다. C언어는 1989년 ANSI C 스펙이 확정된 이후에도 C95, 99, 11, 18을 넘어 23까지 발전을 해오고 있지만, 그닥 개발자 그룹의 많은 관심을 받지는 못했다.  전문가들이 보아야할 책으로 생각할수도 있겠지만, 이 책을 80% 정도 읽은 시점에서 나는 초급을 벗어난, 고급 개발자가 되고 싶은 컴파일러 방식의 언어 중급 개발자들에게 큰 도움이 될 수 있는 책이라 본다. 단순히 C언어 문법을 익히고자 한다면 이 책은 그 답이 아닐 가능성이 높다.

 

이 책은 크게 7부로 나뉘어진다.

1부와 2부는 컴파일러 언어인 C를 중심으로 어떻게 컴파일러가 실행파일을 만들어 가는지, 실행파일은 기본적으로 어떻게 동작하는지를 설명한다. 특히 4장 에서는 C코드가 목적파일을 거쳐 실행파일까지 변환되는 과정속에서 메모리/데이터가 어떤 식으로 펼쳐지는지를 소개한다.왜 스택과 힙이 있는지를 잘 설명하고 있고, 각 메모리 세그먼트의 역할과 분석 방법을 통해 C코드의 동작원리를 설명한다. 윈도우가 아니라 맥/리눅스를 중심으로 소개하는데에서 한때 윈도우 프로그래밍하면 C였던 시대가 아련하게 느껴졌다.

3부에서는 재미있게도 C언어이지만 객체지향이라는 개념을 다룬다. 사실 C언어에서도 객체지향이 가능하다. 다만 조금 불편할 뿐이지.. 저자는 OOP를 언어의 특징이 아니라 "문제를 생각하고 분석하는 방식"(P.254)으로 설명하면서 C와 C++의 관계까지 소개하고 있다.

4부에서는 유닉스를 소개하면서 커널와 사용자 모드에 대해 설명한다. 다시한번 윈도우에서 길을 잃은 C언어의 모습이 느껴져 시대의 변화가 느껴지기도 한다. 하지만 C가 여전히 임베디드 시장이나 게임엔진, 하드코어 영역에서 중요한 역할을 맡고 있구나 하는 생각도 든다.

5부와 6부는 모든 언어에서 화두가 되는 동시성/병렬성과 프로세스간 통신의 방법을 소개한다. 꽤 많은 분량을 할애하여 쓰레드 동기화 및 IPC, 소켓 통신을 다룬다. 다만 언어 설명서와 같이 아주 상세하게 다루지는 않는다.

7부는 테스트와 빌드시스템 이야기인데, 소프트웨어의 유지 보수 이야기라면 모듈 패키지 관리 솔루션인  vcpkg나 conan에 대한 설명까지 곁들여졌으면 더 좋을 것 같다.

 

이 책은 전체적으로 초/중급 개발자(초년~5년차) 정도의 개발자들이 개발의 경험을 바탕으로 지식을 좀 더 깊게 만들때 도움이 될만한 책이라 생각한다. 단순히 C언어 책으로 인식되기엔 아깝고, 컴파일러 언어를 사용하는 개발자라면 한번씩 읽으면서 C가 만들어내는 방식을 이해해 보는 것도 유용하리라 생각한다. 윈도우 프로그래밍과 관련해서는 다른 책을 더 읽어야 한다. 이 책은 그런 내용을 다루지는 않는다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

YES마니아 : 로얄 n**********r 2023.03.26. 신고 공감 1 댓글 0
리뷰 총점 종이책
IT
"IT" 내용보기
※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 장점 C언어의 빌드 과정과 코드 프로세싱 및 메모리 활용에 대하여 세부적으로 알 수 있어 C이외의 언어를 사용하더라도 프로그램 동작 방식에 대해서는 대체로 유사하기 때문에 많은 도움이 됨 C언어를 OOP스타일(클래스, 상속, 등)을 지원하지는 않지만 OOP처럼 프로그래밍 하는 방법을 알 수 있
"IT" 내용보기

※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

장점

  1. C언어의 빌드 과정과 코드 프로세싱 및 메모리 활용에 대하여 세부적으로 알 수 있어 C이외의 언어를 사용하더라도 프로그램 동작 방식에 대해서는 대체로 유사하기 때문에 많은 도움이 됨
  2. C언어를 OOP스타일(클래스, 상속, 등)을 지원하지는 않지만 OOP처럼 프로그래밍 하는 방법을 알 수 있음
  3. 동시성, 동기화, 스레드 실행 스레드 동기화, 프로세스 실행 프로세스 동기화, 네트워크를 있으며 python, java, C++, Go등과 같은 다른 언어들과 통합을 통해 C 개발한 코드를 다른 언어에서 적용을 해볼 있음

단점

1. 없음

후기

  1. 프로그래머들이라면 C언어를 가장 먼저 접했을 정도로 친숙하면서도 까탈스럽다고 느낄정도로 엄격한 언어이지만 디버깅을 통해 어떻게 프로그램 구동 및 동작 원리를 깨달을 수 있어 하며 주로 사용하는 언어를 변경하더라도 크게 위화감이 없을 정도로 많은 도움이 된다. 특히 해당 서적은 C를 어떻게 하면 더 고급스럽게 프로그래밍할 수 있을지 다른 언어와 병합해서 효율을 줄 수 있을 지 등 아직까지 C언어가 건재하다는 것을 볼 수 있었다.
t*****4 2023.03.29. 신고 공감 0 댓글 0
리뷰 총점 종이책
C 프로그래머의 실력을 레벨업 하는데 필요한 책
"C 프로그래머의 실력을 레벨업 하는데 필요한 책" 내용보기
전문가를 위한 C           캄란아미니 (Kamran Amini) 지음         박지윤 옮김        이번에 소개할 책은 "전문가를 위한 C" 라는 책 입니다. 책 제목에서와 같이 C 언어에 대한 기초 책은 아닙니다. 책에서도, 대상 독자를 C/C++ 개발에 관해 최소한의 지식을 가진 독자를 대상으로 하고 있습니다. C/C++ 주니어와 중급 엔지니어가 주요 독자라고 되어 있지만, C/C
"C 프로그래머의 실력을 레벨업 하는데 필요한 책" 내용보기

      전문가를 위한 C

 

        캄란아미니 (Kamran Amini) 지음

        박지윤 옮김

      

이번에 소개할 책은 "전문가를 위한 C" 라는 책 입니다.

책 제목에서와 같이 C 언어에 대한 기초 책은 아닙니다.

책에서도,

대상 독자를 C/C++ 개발에 관해 최소한의 지식을 가진 독자를 대상으로 하고 있습니다.

C/C++ 주니어와 중급 엔지니어가 주요 독자라고 되어 있지만, C/C++에 대한 기본 문법을 알고 소스를 읽을 수 있다면

이 책을 보는데 크게 무리는 없을 것으로 생각됩니다.

 

이 책은, 총 7개의 부에 23개의 장으로 구성되어 있습니다.

책은 C 언어에 대한 기초 문법에 대한 내용은 없지만, 1부 에서 C 언어의 필수 요소에 대한 설명 부터 코드에 대한 빌드 및 빌드된 결과물에 대한 설명을 해주고 있습니다.

1부,

1장 에서는 "전처리기, 포인터, 함수, 함수 포인터, 구조체"에 대해서 다루고 있습니다.

이미 개발을 하고 있거나 C 언어 문법에 대해서 자세히 알고 있더라도 정독해보면 "아~, 이런게 있었지",  "아~, 이 부분은 조심해야되는데...." 등의 느낌이 들수 있는 익숙함에서 간과히 했던 부분들이 다시금 되세김질 하기에 좋은 내용으로 구성되어 있습니다.

실제, 구현 중에 실수하기 쉬운 부분들일 수도 있는 내용들이라 생각되기에 한번 읽어보면 좋을 내용들입니다.

2장 3장 에서는 컴퓨터 구조나 컴파일러 수업 시간에 들었을 내용입니다.

실제, 코딩하고 개발하는 과정에서 그렇게 생각하지 않고 지나갈만한 부분이긴 하지만 컴파일 환경을 구성하거나 컴파일 오류 또는 디버깅시에 알면 도움이 될 내용들로 구성되어 있습니다.

특히 임베디드 소프트웨어 개발을 한다면 더더욱 알면 도움될 내용이라는 생각이 듭니다.

2부, 메모리 ....

4 ~ 5장으로 2 개의 장을 통해서 메모리 구조에 대해서 설명하고 있습니다.

소프트웨어 개발 중에서 가장 중요한 부분중에 하나라고 생각합니다.

많은 오류가 발생할 수 있는 부분이며, 더버깅 하기 까다로운 부분중에 하나 입니다.

책에 메모리 구조에 대한 학습에 대해 정말 와닿는 표현이 있었습니다.

정말 많이 공감되는 표현 입니다. 메모리 구조를 파악하고 이해하는 부분에서 프로그래밍 및 디버깅 레벨의 단계가 올라가고 예술의 경지에 이르는데 필히 학습해야할 부분이라 생각합니다.

그리고, 소프트웨어를 설계하는 단계에서 기본적인 최적화를 고려하여 설계할 수 있고 그를 기반으로 코딩할 경우에도 실수를 줄이는데 많은 도움이 될 것입니다.

3부는 객체지향에 대해 설명 하고 있습니다.

6 ~ 9장으로 총 4개의 장으로 구성되어 있습니다.

실제, 객체 지향에 대한 개론적인 설명이나 C++ 문법에 대한 설명을 다룬다기 보다, 책에서도 나타내듯이

C 처럼 객체지향적이지 않은 언어로 객체 지향에 대해 설명하고  C 언어를 통한 객체지향 형태로 개발 가능성에 대해 보여주는 색다른 내용들로 구성되어 있습니다.

실제 책에서도 명시하듯이 C 자체가 객체 지향이라는 의미가 아니라, 구조를 구성하는 방식에서 객체 지향적 사고 방식을 보여주고 있습니다.

C 로 개발한 코드를 한단계 업그레이드 하기 위해 꼭 학습하면 좋은 내용들 입니다.

C 언어에서의 캡슐화와 정보 은닉등은 정독하면 많은 도움이 될 것 같습니다.

C 언어에서 상속의 개념을 적용할 수 있는 방법에 대해서도 재미있는 장이었습니다.

4부는 유닉스 및 리눅스 커널 그리고 최신 C 표준에 대해 소개하고 설명하고 있습니다.

10 ~ 12장으로 총 3개이 장으로 구성되어 있습니다.

실제 유닉스 및 리눅스 시스템이나 커널 그리고 드라이브 등에 대해서는 유닉스 시스템 관련 책이나 시스템 프로그래밍 관련책 또는 리눅스 커널 개발 관련 책을 통해서 더 자세히 학습할 수 있습니다.

이 책에서는 10 ~ 11장을 통해서 유닉스 및 리눅스 기반에서 시스템 프로그래밍을 할 경우에 필히 알아야할 내용들에 대해서 설명하고 있습니다.

12장에서는 C언어 표준에 대한 설명과 최신 표준에서의 변화에 대해 간략하게 설명과 예제 코드를 보여주고 있습니다.

4부는 이 책과 함께 실제 시스템 프로그래밍 또는 리눅스 커널 책을 병행해서 보면 좋을 것 같습니다.

5 ~ 6 부는 C 프로그래밍 응용파트 입니다.

13 ~ 20장에서는 동시성, 동기화, 스레드 실행 및 스레드 동기화, 프로세스 실행 및 프로세스 동기화, 네트워크 (IPC, 소켓통신) 에 대해 주로 다루고 있으며,

21장에서는 다른 언어와의 통합에 대해서 다루고 있습니다.  "C++, 자바, 파이썬, Go" 각각의 언어와의 통합에 대해서 예제와 함께 설명하고 있습니다.

7부는 테스트와 유지보수에 대해 다루고 있습니다.

22 ~ 23장으로 총 2개의 장으로 구성되어 있습니다.

22장에서는 유닛 테스트 소개 및 방법 그리고 C 프로그램에서 문제 해결을 위해 사용할 수 있는 디버깅 도구 및 기술에 대해서 설명하고 있습니다.

23장에서는 Makefile 같은 빌드 시스템에 대해서 소개하고 있습니다.

Makefile 이외에 닌자, 바젤 빌드 시스템에 대해서도 소개하고 있습니다.

이 책에서는 기본적인 구조 및 소개 수준에서의 구문을 설명하고 있습니다.

그렇게 때문에 작성 방법 및 구문등에 대해 자세한 부분은 각각에 대한 별도 학습 자료 또는 책을 통하여 학습하여야 합니다.

 

[ 결론 ]

각 파트 및 섹션 마다 이해하기 쉽도록 구성되어 있으며, 각각에 맞게 그리고 적재 적소에 필요한 예제들을 넣어서 실제 실행 해보면서 이해를 돕고 있습니다.

그리고, 실제 소프트웨어 개발 진행 중에 간과히 할 수 있는 부분들에 대해서도 한번 더 생각 해 볼 수 있게 해줍니다.

이 책은 기초 또는 기본 문법 책은 아닙니다.

그리고, C 언어 바이블로서의 의미를 가질 수 있는 책은 아니라 생각 됩니다.

이 책은, C 언어를 이용한 개발의 레벨을 업그레이드 하고 C 언어 고급 엔지니어에 다가갈 수 있는 기반을 마련해 줄 수 있는 책이라 생각 됩니다.

 

s****7 2023.03.27. 신고 공감 0 댓글 0
리뷰 총점 종이책
진정 전문가를 위한 책
"진정 전문가를 위한 책" 내용보기
업무상 C 언어를 다루다 보니 좀더 실무적이고 고급지식을 책으로 접할 수 있다면 하는 바램이 있었는데 이참에 목적에 딱 알맞은 책을 리뷰를 해볼 기회를 가지게 되었다. C 언어책은 학교 다닐때 따로 구입한 영문책 이후 학습을 위해 구한 것은 오랜만 인 것 같다. 제대로된 프로그래밍을 하려고 한다면 시스템 측면에서의 지식과 학습 그리고 응용이 필요하다고 하는데, 이에 관련
"진정 전문가를 위한 책" 내용보기

업무상 C 언어를 다루다 보니 좀더 실무적이고 고급지식을 책으로 접할 수 있다면 하는 바램이 있었는데 이참에 목적에 딱 알맞은 책을 리뷰를 해볼 기회를 가지게 되었다.

C 언어책은 학교 다닐때 따로 구입한 영문책 이후 학습을 위해 구한 것은 오랜만 인 것 같다.

제대로된 프로그래밍을 하려고 한다면 시스템 측면에서의 지식과 학습 그리고 응용이 필요하다고 하는데, 이에 관련된 내용을 모두 담고 있는 것이 이책이다.

C의 모든 것이라기 보다, C를 위한 모든 것이 담겨진 책이라고 이해할 수 있다.

C 언어에서 객체를 논하는 것을 보게 되다니..!

모든 컴퓨터 OS 의 시작점과 다를바 없는 유닉스 환경에서의 작업을 진행하니 유닉스의 사용법과 시스템에 대하여 학습 내용도 포함되어 있다. 책이 거의 천페이지에 달하는데 그 이유를 알 수 있다.

한줄 한줄 읽으면 오래전 학교에서 배운 운영체제 시간에 배운 용어들이 스쳐지나간다.

오래되어 잊은 자들을 위해서 이렇게 친절한 책은 따로 없지 않을 까 싶다.

더 필요한 내용이 있다면 우리에겐 chat-GPT가 있으니 물으러 달려가 보자!.

책 내부의 코드들은 아래 깃헙에서 모두 제공하고 있으므로 참고하면 귀찮은 타이핑으로 부터 해방된다.

필요한 내용 뿐만 아니라 이론을 다시 리마인드 하는(라고 하고 그냥 새로 배우는) 마음으로 책을 한자 한자 보기를 추천한다.

l*********e 2023.03.26. 신고 공감 0 댓글 0
리뷰 총점 종이책
전문가를 위한 C
"전문가를 위한 C" 내용보기
이 책은 두께와 표지에서부터 이 책이 얼마나 많은 메세지를 안겨줄지 궁금해지는 책이었다. 다른 언어들을 소개하는 책처럼 그 언어의 특징과 사용법을 다루는 책일 것이라 생각했었다. 하지만 그 예상은 완전히 빗겨나갔고, 왜 C가 기초가 되는 언어인지 알았다. 예를 들어 part2에서는 프로세스와 메모리, part3에서는 객체지향을 다룬다. 왜 한 언어를 주제로 하는 책에서 프로세
"전문가를 위한 C" 내용보기

이 책은 두께와 표지에서부터 이 책이 얼마나 많은 메세지를 안겨줄지 궁금해지는 책이었다.

다른 언어들을 소개하는 책처럼 그 언어의 특징과 사용법을 다루는 책일 것이라 생각했었다.

하지만 그 예상은 완전히 빗겨나갔고, 왜 C가 기초가 되는 언어인지 알았다.

예를 들어 part2에서는 프로세스와 메모리, part3에서는 객체지향을 다룬다.

왜 한 언어를 주제로 하는 책에서 프로세스와 메모리에 대해 알아야 하는지, 왜 C는 객체 지향이 아닌지에 대해 상당히 상세하게 알려준다.

또한 part4에서는 C와 밀접한 관계에 있을 수 밖에 없는 UNIX를 다룬다.

유닉스를 다루더라도 바로 시스템호출이나 커널 쪽으로 들어가는 것이 아닌 이 책에서 왜 유닉스를 다루는지에 대해 자세한 설명이 있기 때문에 더욱 흥미로웠다.

유닉스 챕터가 지나면 동시성, 동기화, 스레드 실행, 프로세스간 통신 등에 대해 다루면서 여러 번 고민했던 주제들이 등장함을 확인할 수 있다

C언어에 대한 책을 펼쳤을 뿐인데 C언어 자체의 특징과 함께 전공서적에서 읽을 수 있는 다양한 지식들을 읽는 행복을 안겨주는 책이다.

물론 그것은 C언어가 프로그램의 기초가 되는 언어인 영향도 있기는 하지만,

무엇보다도 이 책 자체가 정말 짜임새 있게 잘 만들어졌다는 인상을 받았다.

방대한 내용을 다룸에도 그 짜임이 매우 유기적으로 잘 구성되어 있고, 번역도 매끄럽다.

그렇기에 900여 쪽에 달하는 두께가 압박만으로 다가오지는 않고,

수많은 것들이 함께 연결되어 있다는 기쁨을 줄 수 있는 책이다.

h******9 2023.03.26. 신고 공감 0 댓글 0
리뷰 총점 종이책
전문가를 위한 C는 어떤 부분을 알아야 할까?
"전문가를 위한 C는 어떤 부분을 알아야 할까?" 내용보기
개발에 있어서 기본은 무엇보다 중요합니다. 기본이 흔들리거나 없다면 정말 정말 큰 프로젝트를 할 경우에 무너지는 건 한순간입니다. 아주 사소하지만 중요한 포인트를 놓쳐서 일을 그르치는 경우를 많이 봤습니다. '전문가를 위한 C'란 책을 읽으면서 마음 한편으로 기본이 항상 중요하단 생각이 문득문득 드네요.   전문가를 위한 C - 한빛미디어   C는 시스템 프로그래밍과 임
"전문가를 위한 C는 어떤 부분을 알아야 할까?" 내용보기

개발에 있어서 기본은 무엇보다 중요합니다. 기본이 흔들리거나 없다면 정말 정말 큰 프로젝트를 할 경우에 무너지는 건 한순간입니다. 아주 사소하지만 중요한 포인트를 놓쳐서 일을 그르치는 경우를 많이 봤습니다. '전문가를 위한 C'란 책을 읽으면서 마음 한편으로 기본이 항상 중요하단 생각이 문득문득 드네요.

 

전문가를 위한 C - 한빛미디어

 

C는 시스템 프로그래밍과 임베디드 시스템 등 다양한 분야에서 사용되는 프로그래밍 언어입니다. 지금은 다들 자바, 자바스크립트, 코틀린 등 여러 현대 언어들을 쓰지만 그 모든 것들의 할아버지 격인 언어인 C는 아직도 현업에서 쌩쌩하게 사용되고 있는 정말 최장수 언어이기도 합니다.

기본적인 C 학습에는 다음과 같은 부분들을 공부하는게 기본이 됩니다.

  1. C 언어의 기본 문법과 표준 라이브러리의 이해 : C 언어의 문법을 이해하고 사용하는 것은 매우 중요합니다. 이를 위해 변수, 연산자, 제어문, 함수 등에 대한 이해와 사용법을 학습해야 합니다. 또한 표준 라이브러리 함수를 이해하고 활용할 수 있어야 합니다. 여기에 책에서 언급한 최신 C의 경우는 값을 반환하지 않는 함수라던가 익명 구조체와 익명 공용체, 멀티스레딩 등 이전과 달라지고 개선된 부분들이 꽤 있습니다.
  2. 포인터의 이해 : C는 메모리를 직접 조작할 수 있는 언어이기 때문에 C 언어에서 포인터는 중요한 개념 중 하나입니다. 포인터는 메모리 주소를 가리키는 변수로서, 동적 메모리 할당과 같은 메모리 작업을 수행하는 데 필요합니다. 포인터 연산과 포인터를 사용한 데이터 구조의 구현 등을 학습해야 합니다. 더불어서 책에 나온 허상포인터까지 알게 된다면 더 좋죠.
  3. 메모리 관리의 이해 : C 언어에서 메모리를 효율적으로 관리하는 것은 중요합니다. 동적 메모리 할당과 해제, 메모리 누수 방지, 스택과 힙 메모리의 차이 등을 이해하고 사용해야 합니다. 좀 더 나아가면 BSS, 데이터, 텍스트 세그먼트의 정적 메모리 레이아웃, 동적 메모리 레이아웃의 프로세스 메모리 구조를 이해하면 좋습니다.
  4. 파일 입출력 : C 언어에서 파일 입출력을 다루는 방법을 학습해야 합니다. 파일 읽기, 쓰기, 열기, 닫기 등의 함수를 이해하고 사용할 수 있어야 합니다.
  5. 네트워크 프로그래밍의 이해 : 파일 입출력에 이해하다 보면 자연스럽게 네트워크로 넘어가게 됩니다. 소켓 프로그래밍과 TCP, UDP, 네트워크 계층에 대해 공부해야 합니다.
  6. 프로그램 구조 : 대규모 C 언어 프로그램을 작성하기 위해서는 코드의 구조화와 모듈화가 필요합니다. 이를 위해 함수, 구조체, 열거형, 헤더 파일 등을 사용하는 방법을 학습해야 합니다.
  7. 디버깅 : C 언어 프로그램에서 버그를 찾고 해결하는 능력은 매우 중요합니다. gdb와 같은 디버깅 도구를 사용하는 방법과 디버깅 기술 등을 학습해야 합니다.
  8. 프로그래밍 패러다임 : C 언어는 절차지향적인 프로그래밍 언어입니다. 그러나 객체지향적인 코드를 작성하는 방법을 이해하고 사용할 수 있어야 합니다. 함수형 프로그래밍 또한 C 언어에서 사용할 수 있습니다. OOP와 캡슐화를 쓰려면 면 객체지향 사고를 해야하는데 제 경우는 이 부분이 좀 어렵더군요. 상속과 다형성, 합성과 집합. 추상화 등 자주 쓰지 않으면 항상 헷갈리는 개념들입니다.
  9. 컴파일러 최적화 : 컴파일러 최적화를 배우면 메모리 사이즈나 프로그램의 속도를 향상 시킬 수 있습니다.

그 외에도 책에 정말 많은 내용들이 나와있어서 필요할 때마다 찾아보기 참 좋은 책이네요. 물론 텍스트와 두꺼운 분량은 가볍게 소설처럼 읽기에는 무리가 있지만요.

p***i 2023.03.22. 신고 공감 0 댓글 0
리뷰 총점 종이책
전문가를 위한 C
"전문가를 위한 C" 내용보기
항상 프로그래밍 언어와 관련된 책을 리뷰할 때면 TIOBE Index를 인용해오곤 하는데, 현재 시점에서 C는 Python에 이어 2위에 위치해있다. C는 1972년 Dennis Ritchie가 만들었고, 올해는 언어가 태어난지 만 50년이 되는 시점이다. 물론 최근에는 뭔가 다방면으로 활용할 수 있는 언어들이 인기를 얻고 많이 사용되고 있지만, 그 중에서도 시스템 어플리케이션이나 low level programmin
"전문가를 위한 C" 내용보기

항상 프로그래밍 언어와 관련된 책을 리뷰할 때면 TIOBE Index를 인용해오곤 하는데, 현재 시점에서 C는 Python에 이어 2위에 위치해있다. C는 1972년 Dennis Ritchie가 만들었고, 올해는 언어가 태어난지 만 50년이 되는 시점이다. 물론 최근에는 뭔가 다방면으로 활용할 수 있는 언어들이 인기를 얻고 많이 사용되고 있지만, 그 중에서도 시스템 어플리케이션이나 low level programming에서는 여전히 C가 많이 사용되고 있다.

사실 이 이야기를 꺼낸 이유는 이 책을 단순히 C와 관련된 언어책이라고 처음 생각했기 때문에 그런것이다. 그래서 막연한 생각에 여타 시중에 나와있는 C 책들과 같이 C에 대한 문법, 알고리즘 구현, 조금 고급진 내용을 다룬다면 C로 만든 프로그래밍 구현 정도가 담긴 책이라고 생각했었다. 그런데 책에 담겨 있는 내용은 그렇지 않다.

책이 상당히 두껍다..

이 책은 간단하게 말하자면 C 에 대해서 알수 있는 책이라기 보다는 C를 주로 활용하는 시스템 프로그래밍 책이라고 표현하는게 맞다. 그래서 책 서두부터 간단한 문법에 대한 내용이 아니라, C로 만든 프로젝트의 빌드방법부터 소개한다. 아마 다른 C로 구현된 오픈소스 코드를 보면 헤더나 소스에 막 복잡하게 정의되어 있는 전처리기 같은 것은 활용 방법과 빌드와 관련된 내용이 처음부터 소개되는 것이다. 이밖에도 C로 이뤄지는 Object Oriented Programming이나 Concurrency, IPC 같은 기초 책에서는 찾기 어려운 주제들로 내용이 구성되고 있다. 서두에서도 저자는 C를 활용한 다양한 프로젝트에서 겪은 극한의 주제에 대한 경험적 지식을 실용적으로 접근할 수 있다는 의미로 "Extreme C"라는 책이름을 지었다고 소개되어 있고, 사실 어떻게 보면 이책을 통해서 C로 할 수 있는 모든 내용이 거진 담겨져 있다. Unix를 다루는 부분에서는 조금더 실무적으로 시스템 프로그래밍을 어떻게 하는지에 대한 내용이 잘 담겨져 있다. 개인 여담을 좀 소개하자면, 이전에 블로그에 Xenomai 라고 하는 Custom kernel을 설치하는 방법에 대해서 소개했었는데, 그걸보고 연락주신 분이 안된다고 해서, 나도 처음부터 리눅스 커널을 빌드하고, 간단하게 모듈들을 수정하는 작업을 거쳤었다. 그런데 이게 참 C를 다룬지 오래되서 그런지 빌드부터 코드 수정이 익숙치가 않았다. 가령 어떤 부분이 잘못되었는지는 감이 오는데, 이 걸 수정하려니까 조금 막막했던 경험이 있었고, 사실 이 책을 통해서 조금이나 기름칠을 하려고 했었다. 물론 이 책을 통해서라면 조금 수월했을  일들이다. 이밖에도 후반부에는 다른 언어와의 통합성에 대한 내용도 다루고 있어서 C를 쓰는 사람들이 다른 프로그래밍 언어로 구현된 내용과 어떤식으로 통신을 할 수 있는지에 대한 내용도 소개되었다. 진짜 이런 내용은 어떻게 보면 stackoverflow나 이런데서 검색해야 찾을 수 있는 내용인데, 진짜 광범위한 내용을 다루고 있다는 느낌을 받았다.

다만 책의 분량 자체가 일반적인 책의 분량의 두배 수준이기 때문에(대략 900페이지?) 책의 전체 내용을 꼼꼼히 파악하는데까지는 시간이 많이 필요할 것으로 생각한다. 그리고 C로 다룰 수 있는 또다른 극한의 주제를 모두 다루기에는 이 책의 분량가지고도 부족할 것이다. 하지만, 적어도 주어진 분량내에서 이 책은 앞에서 언급한 고급 주제에 대한 내용과 예시들을 충분히 다루고 있으며, 이 내용만으로도 일일이 내가 경험했던 것처럼  stackoverflow를 찾아해메야 했던 사람들에게는 좋은 가이드를 제공하지 않을까 생각한다. 

(해당 포스트에서 소개하고 있는 "전문가를 위한 C" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

k********y 2022.10.30. 신고 공감 0 댓글 0
리뷰 총점 종이책
전문가를 위한 C 리뷰
"전문가를 위한 C 리뷰" 내용보기
C는 오래된 프로그래밍 언어입니다. 다른 많은 프로그래밍 언어의 흥망성쇠에도 불구하고, 나온지 오래되었음에도 불구하고 중요한 프로그래밍 언어인것은 틀림없을것입니다. 한빛미디어에서 새로운 C 언어 책이 나왔습니다. 전문가를 위한 C 입니다. C와 C++로 개발을 하는데 익숙하거나 그에대한 지식이 있는 독자들을 대상으로 합니다. 또한 메모리, CPU, 주변 장치들의 특성
"전문가를 위한 C 리뷰" 내용보기


 

C는 오래된 프로그래밍 언어입니다. 다른 많은 프로그래밍 언어의 흥망성쇠에도 불구하고, 나온지 오래되었음에도 불구하고 중요한 프로그래밍 언어인것은 틀림없을것입니다.

한빛미디어에서 새로운 C 언어 책이 나왔습니다. 전문가를 위한 C 입니다.

C와 C++로 개발을 하는데 익숙하거나 그에대한 지식이 있는 독자들을 대상으로 합니다. 또한 메모리, CPU, 주변 장치들의 특성을 알거나 하면 책을 읽는데 도움이 됩니다. 여타 다른 한빛출판에서 나온 책들과 달리(초보자를 위한) 쉽게 다가가기 위한 그림 등은 배제되어있습니다.

책의 쪽 수도 900페이지가 넘어갑니다. 중급자를 넘어 전문가로 나아가는데 필요한 책인거같습니다.

C는 절차지향 프로그램이 언어이지만 챕터 3에는 객체지향 프로그래밍을 시도하는 부분도 있습니다.

책 대부분은자세한 설명, 고급활용, 그리고 운영체제등 광범위하게 다룹니다. 다른 프로그램이 언어를 사용할 때도 이 책에서 본 내용들은 많은 도움이 될 것입니다. C뿐만 아니라 C++를 사용하는 프로그래머라면 추천하는 책입니다..

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

YES마니아 : 골드 c******l 2022.10.30. 신고 공감 0 댓글 0