- 질문 게시판입니다.
Date 19/04/19 19:48:06
Name   듣보잡3
Subject   C언어 관련 책 추천 부탁드립니다.
"C 기반 개발이 C++ 기반 개발에 비해 갖는 우위들이 [최근] (=2018~19) 시점에서도 아직 존재하는가? 그렇다면 그러한 우위들은 어느 상황에서 유효한가? 그 우위를 최대한 활용하기 위한 테크닉들과 주의점은 무엇인가?" 라는 질문에 "이미 C로 짜져있는 수십만 라인의 코드를 지금 와서 C++로 뜯어고칠 순 없기 때문에" 라는 답 말고 다른 쪽의 상세한 답을 해주는 책을 찾고 있습니다.

고전 명저인 K&R, K&K는 알고 있지만 너무 오래된 책인 것 같고,
인터넷 검색으로 나오는 토막글들은 검증되지 않았거나 현시점에 맞지 않는 경우가 많고 체계적이지 않은 것 같고,
cppreference는 자주 활용합니다만 여기는 책보다는 사전에 가까운 곳이라고 생각해서요.

미리 감사드립니다.



0


고전명작을 추천하려고왔다가 고수님께 깨갱하며 다음타자에게 순서를 양보하겠습니다
칸나바롱
이미 읽어보셨겠지만 C++대가께서 이제는 아에 다른언어라고 하신 글이 있습니다..

https://minjang.github.io/2016/03/21/talk-with-stroustrup/
예 move semantics나 unique_ptr, atomic 같은 기능들은 이미 충분히 활용중입니다.

제가 갖고 있는 생각은, C는 C++과 다른 언어 (=서로 차별화되는 장단점이 존재하는) 가 아니라, 2019년 시점에서는 그걸 넘어 C는 C++에 비해 장점은 극히 적고 단점은 훨씬 많아 새로운 프로젝트를 개발하고자 하는 목적이라면 더 '해로운' 언어가 아닌가 싶은 생각인데, 여기에 대해 저와 견해가 다른 개발자들의 전문적인 수준의 의견이 궁금해서입니다.
고기덕후
몇 년 전에 토발즈에게 누가 왜 커널을 계속 C로 개발하냐고 물어보니, 자기는 C++ 컴파일러의 최적화를 아직 100% 믿지 않는다 라고 대답했던 것 같아요. 결국 C가 경쟁력이 있는 부분은 HW 레벨까지 내려가야 하는 코드들인 것 같습니다.
3
듣보잡3
구글 엣지컴퓨팅 팀도 C는 안쓰고 C++로 개발한다는 이야기를 들어서 이제는 C가 C++에 유의미한 우위를 갖는 경쟁력이 있기는 한가...라는 생각이 듭니다.
고기덕후
구글 엣지컴퓨팅 팀은 C++로 개발해도 리눅스는 C를 쓰고, C를 계속 선호하니까요.
음.. 그런데 리눅스는 좀 특수 사례가 아닌가 합니다. 워낙 범용적 플랫폼이고, 선사시대 코드들과 호환을 맞춰야 할 일이 많아서 그런 것 아닐까요.

예를 들어 구글 코딩 스타일 가이드에는 C++11을 쓰고 C++14/17은 쓰지 말라는 이야기가 있는데 이게 C++14/17이 C++11보다 기능상으로 퇴보해서일리는 없지 않겠습니까. 이전부터 존재하던 수많은 코드랑 호환성 맞추기 번거로워서이겠지요.
흥차넷
임베디드 시스템을 c++로 개발하면 퍼포먼스 답 안나올껍니다
os 커널이랑 드라이버도 마찬가지구요
듣보잡3
임베디드도 케바케인데, 일단 제가 개발하는 환경에서는 C++이 C보다 퍼포먼스가 떨어진다는 것을 느낄 수 없더군요. 그래서 "임베디드에서는 C가 C++에 비해 퍼포먼스상 유의미하게 우위다" 라는 것에 동의가 안 되어, 정말 그런지에 대해 정리한 전문 서적이 있는지에 대한 질문이라고 봐주시면 될것 같습니다.
흥차넷
서적은 잘 모르겠구요 그냥 생각나는게 라이브러리 덩치만 봐도 차이가 꽤 클꺼 같은데요
mcu보면 램이 워낙 극단적이니까요
os쪽을 생각해봐도 cpp랑 c랑 용도가 다른 거 같아요
쓸 수야 있겠다만 그걸 굳이 거기에 써야하나? 하는 용도?
제 생각은 그렇네요
c++는 장점이 참 많죠. 일단 c 개발 시에 수두룩하게 터지는 포인터 관련 버그들로부터 안전하다는 것이 넘나 큰 장점.. c 개발할 때 프로그래머가 영혼 속에 각인해두지 않으면 곧바로 치명적인 버그로 이어지는 언어상의 허점들에 대해 c++에서는 대부분 안전장치를 제공해주지요.
Azurespace
Rust쯤 되면 포인터 버그에서 제법 안전하다고 말할 수도 있겠지만 C++은 글쎄요... 딱히 C보다 안전한지 전 모르겠습니다.
Azurespace
임베디드 cpp 개발 시에 STL 같은 라이브러리 안 씁니다. malloc도 안 쓰고 단지 고정된 크기의 메모리 풀+커스텀 new를 사용하는게 대부분이죠.
Azurespace
임베디드에서도 언어 차이로 인한 성능차보다 메모리 하이어라키를 얼마나 잘 활용하느냐의 차이가 훨씬 큽니다.
T.Robin
1~2년쯤 된 단편적인 기억이라 뭐라고 콕 집어서 말하기는 어렵습니다만, 로직을 극한으로 쥐어짜면 심지어는 x86에서도 C가 C++보다 더 뛰어난 성능을 보이긴 합니다. 단지 퍼포먼스를 극한으로 끌어올려야 되는 상황이 아니라면 그 성능 차이를 체감하기 어려운게 현실이죠(일반적인 경우에는 성능 향상이 있다고는 해도 1/1000초 미만...... -_-). 그렇다면 굳이 느끼지도 못할 성능 차이를 위해 C를 쓸 이유가 없습니다. 유지보수가 훨씬 쉬운 다른 환경을 사용하는게 여러모로 이득이죠.

단, 위에서 말씀하신 것처럼 OS는 좀 예외입니다. 여기는 CPU time slice를 위해 소요되는 수 ns의 시간조차 느리다고 뭐라고 하는(-_-; ) 사람들이 모인 곳이고, 실제로 그런 부분들이 쌓이고 쌓이면 OS의 overhead cost가 올라가는 측면이 있으므로, C++보다 C를 선호하는 것으로 알고 있습니다.
어셈블리 상으로 보면 c++은 메소드를 찾아가기 위해 virtual관련 처리를 해야해서 점프가 두번 발생하는걸로 알고 있습니다. 메모리 레퍼런스는 캐시됐다고 가정하면 그렇게 큰 문제는 아닐것 같네요.
근데 뭐 임베디드에서 OOP를 빡세게 쓸것 같지도 않고 c랑 다름없는 cpp를 짜게 될것 같은데 굳이 cpp를 고집할 이유가 있나요? 임베디드 깊게 들어가면 어셈블리를 써야되는 대목이 나오는데 아무래도 리눅스 만드는 분들이 해놓은 삽질이 많아서 c가 좀더 자연스러울거에요.
그리고 C도 개발자들 이런저런 언어에서 좋은거 많이 배워와서 매크로 흑마법 개쩔어요. 결국 파일럿이 문제지 언어가 문제는 아닌것 같아요.
C++가 C에 비해 갖는 우위가 "oop 기능"이 메인이라기보단, C의 문제점에 대한 여러 안전장치를 마련해주는 게 제일 큰 이점이라고 봅니다. 팀원들이 다 리누스 토발즈같은 사람들이면 순수 C로 개발해도 뭐가 문제겠습니까 ㅋ 완벽한 파일럿들로 팀을 꾸릴수 없다면 언어도 문제가 맞죠
생각나는게 dynamic_cast랑 static_cast정도인데 안전장치가 더 있나요?
목록
번호 제목 이름 날짜 조회 추천
공지 질문 게시판 이용 규정 11 토비 15/06/19 24577 4
16705 IT/컴퓨터유심 재활용할 수 있는 통신사가 있나요? 4 카라멜마끼아또 25/04/27 438 0
16704 여행강원도 (철원) 여행 팁 부탁드립니다 6 빈둥 25/04/27 206 0
16703 진로금융권 IT 인프라 직무 커리어에 대해서 질문 드립니다. 2 전차남 25/04/27 285 0
16702 문화/예술영화 혹은 드라마를 하나 찾고 있습니다. 4 알로에비누 25/04/26 374 0
16700 기타살려주세요 사무실이 넘 더워요 22 니나 25/04/25 781 0
16699 경제퇴직금 중도해지요 2 [익명] 25/04/24 428 0
16698 의료/건강실비보험에 대해 5 야얌 25/04/24 498 0
16697 기타30대 남자 선물용 질문드립니다 12 유하 25/04/24 477 0
16696 IT/컴퓨터생성형AI로 파워포인트 슬라이드도 잘 만들어지나요? 3 열한시육분 25/04/24 408 0
16695 의료/건강사무실에서 할 수 있는 유산소 운동이 있을까요? 27 보이차 25/04/23 691 0
16693 여행일본 (벳부) 여행 일정 한 번만 더 조언 부탁드립니다. 10 쉬군 25/04/22 332 0
16692 교육학교에서 아들이 다쳤습니다. 12 [익명] 25/04/22 743 0
16691 IT/컴퓨터가정용프린터기 추천부탁드려요 9 Evergreen 25/04/22 378 0
16690 IT/컴퓨터만약 어떤 커뮤니티가 전부 AI 필터링을 한다면 29 단비아빠 25/04/21 696 0
16689 의료/건강하소연 겸 질문입니다. 편찮으신 어머니 문제 8 [익명] 25/04/20 809 0
16688 기타거울로 반사된 빛으로 곰팡이를 퇴치할 수 있나요? 1 2025 25/04/20 507 0
16687 기타이런 영상은 어떤 장비로 찍은 것일까요? 6 홍당무 25/04/19 601 0
16686 게임급 슈퍼패미컴 미니 클래식이 끌리는데 2 퍼그 25/04/19 364 0
16684 진로IB 업무 중 진로 고민 8 움직여 25/04/19 630 0
16683 진로아이 진로에 관한 고민 7 단비아빠 25/04/18 495 0
16682 문화/예술관광으로 중국 도시를 택할 메리트가 있을까요 11 열한시육분 25/04/18 623 0
16681 기타강력접착된거 떼는방법이 있을까요..? 14 even&odds 25/04/18 466 0
16680 기타차량 폐차 관련 질문입니다. 26 메존일각 25/04/17 603 0
16679 법률부동산 복비 관련 문의드립니다. 6 [익명] 25/04/17 450 0
목록

+ : 최근 2시간내에 달린 댓글
+ : 최근 4시간내에 달린 댓글

댓글