- 질문 게시판입니다.
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 25385 4
16896 기타웹화면에서 검은색 배경이 프린트되지 않게 하는 방법이 있을지요..? 홍당무 25/07/26 4 0
16895 기타재난상황에 대한 진상조사 관련하여 1 + 치즈케이크 25/07/25 137 0
16894 여행동경 전문가 선생님들 (나다. 하면 들어오십시오) 34 Mandarin 25/07/25 569 0
16893 여행인천(송도)부근 실내에서 놀만한 데 있을까요? 4 아파 25/07/24 218 0
16892 기타동기부여 하는 방법? 7 송꽃분 25/07/24 382 0
16891 문화/예술최대한 한로로를 편하게 가까이서 볼 방법은 뭐일까요! 14 골든햄스 25/07/23 452 0
16890 법률세금명의도용? 확인에 대해서(홈택스) 2 [익명] 25/07/23 190 0
16889 여행벳부 여행 다녀오신분들께 질문 드립니다. 14 쉬군 25/07/23 230 0
16888 문화/예술무성애적 성향과 무성애자 21 [익명] 25/07/22 848 0
16887 체육/스포츠여름에 하는 운동 6 송꽃분 25/07/22 324 0
16886 경제부동산 매매시 판매대금을 올려서 계약요구를 합니다 15 DogSound-_-* 25/07/21 737 0
16885 기타서울 및 고양 인근 돼지고기집 추천 바랍니다. 7 니르바나 25/07/21 395 0
16884 IT/컴퓨터호옥시 speechify 레퍼런스코드 있으신분 계십니가..? 3 25/07/21 289 0
16883 여행여행용 트레블로그 체크카드를 하나 만드려 합니다 11 Cascade 25/07/21 605 0
16882 기타정신과를 꾸준히 다니면서 +암보험 등 가입한 경우 있으신가요? 3 [익명] 25/07/20 461 0
16881 기타스벅 25.7.20까지 라코스테수건 프리퀀시 전국 증정품획득 불가능한가요? 7 mathematicgirl 25/07/20 502 0
16880 기타지방소득세가 무엇인지요..? 11 홍당무 25/07/19 742 0
16879 기타인터넷 약정기간 기망, 민원 어디로 넣어야 하나요 2 방사능홍차 25/07/18 478 0
16878 의료/건강물리치료기 추천부탁드립니다 1 잔고부자 25/07/18 243 0
16877 IT/컴퓨터휴대 전화를 바꿔야 할 시기가 온 걸까요? 16 알로에비누 25/07/18 572 0
16876 기타학연에 의한 청탁, 어떻게 끊어내시나요? 6 [익명] 25/07/18 656 0
16875 여행오늘 철원에서 래프팅 할 수 있을까요? 15 오쇼 라즈니쉬 25/07/18 570 0
16874 법률세금 경정청구 방법과 세무사 업무 비용 6 [익명] 25/07/17 431 0
16873 의료/건강면역력회복! 원기충전! 하는 꿀팁 있을까요? 27 오리꽥 25/07/17 645 0
목록

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

댓글