- 질문 게시판입니다.
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 24692 4
16734 여행창원지법 근처 음식점 추천 9 + 방사능홍차 25/05/15 339 0
16733 연애고착화된 관계+나이 차이 많이 나는 분에게 대쉬 질문입니다. 10 + [익명] 25/05/15 878 0
16732 IT/컴퓨터컴퓨존에서 결제하기 직전인데 질문이 몇가지 있어서요👉🏻👈🏻 8 even&odds 25/05/14 532 0
16731 IT/컴퓨터아이폰 연락처 질문 8 Mandarin 25/05/14 216 0
16730 의료/건강생리통이 너무 심하네요. 10 [익명] 25/05/13 661 0
16729 연애제가 강하게 화를 내야하는 상황이 맞는건가 싶습니다.. 44 [익명] 25/05/12 1278 0
16728 경제학동 세종한우 질문 2 camy 25/05/12 362 0
16727 IT/컴퓨터스마트워치를 하나 사볼까 하는데요. 16 메존일각 25/05/12 437 0
16726 진로좋아하는 일 하는게 행복한거 맞나요-_-? 10 활활태워라 25/05/12 798 2
16725 기타자신은 특별하다고 주장하는 ai 26 + [익명] 25/05/11 805 0
16724 기타키보드 질문입니다 2 김치찌개 25/05/12 180 0
16723 기타자동차종합보험 하루만 가입하기 8 다람쥐 25/05/11 416 0
16722 기타집 정리하다 찾은 이게 뭘까요?? 12 데자와왕 25/05/09 996 0
16721 여행제주도 말고기 맛이가 있는 곳을 찾읍니다 5 DogSound-_-* 25/05/08 441 0
16720 의료/건강골목 및 일반 도로연수 22 은하꾸리 25/05/07 610 0
16719 의료/건강갑상선 크기가 많이 줄어들었다면 갑상선기능저하증 가능성이 많이 높을까요? 2 [익명] 25/05/07 511 0
16718 가정/육아아내가 이혼하자고 합니다. 10 [익명] 25/05/07 1406 0
16717 의료/건강여자아이 눈꺼풀 물사마귀 제거 문의드립니다.(사진추가) 1 [익명] 25/05/07 349 0
16716 게임사쇼2 하오마루 대사 질문이용 4 택시기사8212 25/05/06 312 0
16715 문화/예술오디오북 추천 부탁드립니다 7 다람쥐 25/05/05 303 0
16714 IT/컴퓨터유니콘 프로 vs 애드가드 2 방사능홍차 25/05/02 432 0
16713 기타정말로 6월 2일 최종 선고가 나오는 것이 예고될때 사전투표율 추이 5 이이일공이구 25/05/02 974 0
16712 IT/컴퓨터Windows 10에서 11로 올리기전 포맷 필요성? 2 열한시육분 25/05/02 392 0
16711 기타'이게 맞아?'라는 표현이 언제부터 유행했을까요? 2 토비 25/05/02 677 0
목록

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

댓글