brunch

You can make anything
by writing

C.S.Lewis

by 위키북스 May 26. 2021

C나 C++ 중에서 어떤 걸 배워야 할까요?

답은 ‘둘 다’입니다.

요즘 파이썬(Python)이 핫하죠? 인공지능과 코딩의 필요성이 급증하면서 초심자용 언어로 파이썬을 추천하는 분들이 많습니다. 그 덕분에 프로그래밍 언어의 인기도를 나타내는 TIOBE 인덱스에서 파이썬이 2위까지 오르는 기염을 토하기도 했습니다.


TIOBE Index for May 2021: https://www.tiobe.com/tiobe-index/

TIOBE Index for May 2021

하지만 여전히 TIOBE 인덱스에서 1위를 차지하고 프로그래밍 언어는 C이고, C++도 파이썬과 자바(Java)에 이어서 4위를 차지하고 있습니다. 각각 1972년과 1983년에 처음으로 발표된 C와 C++는 아직까지도 전 세계적으로 널리 사용되고 있는 언어입니다. 그럼 둘 중 어떤 언어를 배워야 할까요?

C냐 C++냐, 그것이 문제로다.

* 이미지 출처: https://ko.wikipedia.org/wiki/C_(프로그래밍_언어)https://ko.wikipedia.org/wiki/C++


먼저 위키피디아에 설명된 바와 같이 C는 유닉스 운영체제에서 사용하기 위한 언어로 제작된 배경 덕분에 범용 프로그래밍 언어로 자리매김할 수 있었고, 수많은 시스템과 응용 프로그램을 제작하는 데 사용됩니다.  

C는 실질적으로 모든 컴퓨터 시스템에서 사용할 수 있도록 설계된 프로그래밍 언어이다. 예를 들어 BASIC 등과는 달리 다양한 플랫폼에서 ANSI C의 정의에 따르는 비교적 동일한 구현이 가능하다. 모든 C 시스템에는 정규화된 표준 C 라이브러리가 존재한다. 이런 이유와 생성된 높은 성능이 아직까지도 C 언어가 사랑받는 이유 중 하나이다.

이는 오늘날의 널리 쓰이는 거의 모든 운영 체제 커널이 C를 이용해 구현된 이유이기도 하다. 이처럼 C는 시스템 프로그램 개발에 매우 적합하지만, 응용 프로그램 개발에도 많이 쓰이기도 한다.

* 출처: https://ko.wikipedia.org/wiki/C_(프로그래밍_언어)


C의 다음과 같은 장점들은 C가 탄생한 지 50년이 다 되어 가는 지금도 전 세계적으로 C를 가장 널리 활용되는 프로그래밍 언어로 만든 원동력으로 작용하고 있습니다.


효율성이 높고 간결하다.

저수준/고수준 프로그래밍이 가능하다.

절차 지향적이고 이해하기 쉽다.

이식성이 좋다.

실행 속도가 빠르다.

* 출처: https://onnons.tistory.com/7


한편으로 "C with Classes"라는 이름으로 출발한 C++는 C의 설계 철학을 바탕으로 객체지향 프로그래밍이 가능하다는 특징이 있습니다. 유용하고 생산성이 높여준다고 입증된 객체지향 프로그래밍 패러다임을 도입함으로써 C++는 C와 함께 널리 사용되는 언어로 자리 잡았습니다. 그뿐만 아니라 C의 문법을 개선하고 연산자 오버로딩, 템플릿, 예외 처리, RTTI 등을 통해 C로는 처리하기 까다로운 문제들을 해결할 수 있는 강력한 언어입니다. (출처: https://ko.wikipedia.org/wiki/C++)


이처럼 C와 C++는 저마다의 특성이 있지만 C와 C++를 함께 배우면 더욱 효과적인데요, 위키북스에서 출간한 《두들낙서의 C/C++ 한꺼번에 배우기》의 저자 서문에서 그 이유를 찾을 수 있습니다.

특히 개발자가 되고 싶다면 어떤 분야의 개발자가 되더라도 C와 C++를 모두 배워 놓으면 좋습니다. C를 배운 사람이 C++도 배우면 좋은 이유는 C와는 달리 C++는 객체지향 언어이기 때문입니다. 객체지향 프로그래밍이라는 콘셉트가 등장한 이후로 많은 프로그래머들에 의해 이미 이 개념이 정말 유용하고 생산성을 높여준다는 것이 입증되었습니다. 또 C는 C++에 비해 여러모로 불편합니다. C++가 C의 답답한 곳을 뻥 뚫어주는 존재이기도 합니다. 그 예로 레퍼런스 변수, 함수 오버로딩, 템플릿 등을 들 수 있습니다. 그러므로 C를 배웠으면 C++도 함께 배워 놓는 것이 여러모로 좋습니다.

그리고 C++를 배우기로 마음먹었다 하더라도 C를 배우지 않고 C++만 배우는 것도 어렵습니다. 애초에 C++만 배운다는 것은 어불성설입니다. C++는 C의 확장판이기 때문입니다. C++를 배우려면 어차피 C는 어느 정도 공부해야 합니다.

그런데 C는 그렇다 쳐도 C++는 배우기 어려운 복잡한 언어로 유명하죠. 그래서인지 다음과 같은 무시무시한(?) 유머가 나온 적도 있습니다.

21일 만에 C++를 완성할 수 있는 가장 쉬운 방법(번역)

* 출처: https://twitter.com/mcfunkypants/status/425656030077272064


그래서 《두들낙서의 C/C++ 한꺼번에 배우기》에서는 프로그래밍 입문자분들을 대상으로 한 저자의 오랜 강의 경험을 토대로 C부터 C++까지, C/C++ 프로그래밍을 ‘실용적으로’ 배우는 방법을 제시합니다. 즉, 처음부터 끝까지 각 언어의 세세한 세부사항에 집착하지 않고 독자분들이 코딩할 수 있게 만드는 데 집중합니다. 다른 C/C++ 입문서와 달리 완벽한 이론 설명에 치중하지 않고 초심자에게 맞는 설명으로 프로그래밍 언어의 활용법을 알려줍니다.


또한 ‘두들낙서’라는 유튜브 채널을 통해 각 단원에 해당하는 강의 영상도 제공하기에 책을 읽다가 막힌 부분은 동영상의 강의를 통해 도움을 받을 수도 있습니다.


두들낙서 유튜브 채널: https://www.youtube.com/c/두들낙서


결론은 이렇습니다. C나 C++ 중에서 무엇을 먼저 배워야 할지 고민된다면 둘 다 배우는 것이 좋고, 만약 그래야 한다면 《두들낙서의 C/C++ 한꺼번에 배우기》로 C와 C++를 한꺼번에 배우는 게 좋다는 것입니다. :)



작가의 이전글 객체지향/도메인 주도 설계가 궁금하신가요?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari