Overlay

C++사용은 계속 되는가?

프로그래밍 언어 월드컵

https://www.tiobe.com/tiobe-index/ 2025년 7월 18일 캡쳐

TIOBE Index는 전세계에서 사용되는 프로그래밍 언어의 순위를 주기적으로 발표하는 사이트이다. Python이 1등을 차지한 것은 별로 놀랍지 않지만, C++, C 언어가 2, 3위 인 것은 꽤 놀랍다. 단순하게 가장 마지막 순위를 보는 것도 중요하지만 흐름이 더 중요하다. 흐름을 한 번 살펴 보자.

https://www.tiobe.com/tiobe-index/ 2025년 7월 18일 캡쳐

언어(편의상 프로그래밍 언어를 언어로 이 글에서는 통칭하겠다.)들간의 견채는 변동이 꽤 있는데 역시나 파이썬의 독주는 의심의 여지가 없는 사실이다. 본격적인 AI 시대에 AI 개발에 편리를 제공하는 언어로 전체 언어 사용의 1/3을 차지 한다. 다음으로는 C++/C/Java 순이다. 주목할 만한 부분은 C++언어의 성장 추이 이다. 2010년대까지 주춤했던 사용률 추이가 다시 상승했다. AI 개발을 위해 필수적인 ML Framework들은 C++언어로 개발되고 있고, 고성능 App, 게임 및 엔진이나 임베디드 시스템에서는 여전시 C++가 주요 개발 언어로 사용되고 있다.

이 포스트는 ‘Do It! C++ 완전 정복’에서 소개된 C++가 아직도 사용되고 있는 이유와 왜 배워야 하는지 소개 해 보겠다.

C++언어의 장점

C++언어는 개발된지 40년이 넘었지만 지금까지 사용되는데는 다양한 이유가 있을 것이다. 그 중에서도 몇 가지 대표적인 이유가 있다. 성능적인 이슈와 이미 구축된 프로그래밍 생태계 때문이다. 이 중 성능은 언어 자체의 효율성과 시스템과 결부된 효율성으로 나뉠 수 있다. 이를 자세하게 이야기 하면 다음과 같다.

  • 뛰어난 성능과 효율성: C++는 메모리와 하드웨어 자원을 세밀하게 제어할 수 있어 최고 수준의 실행 성능을 제공한다. 인터프리터 언어 또는 가비지 컬렉션이 있는 언어(Python, Java 등)와 달리, C++는 개발자가 메모리 관리와 CPU 최적화를 직접 수행할 수 있어 실시간 시스템, 고성능 연산(HPC) 등에서 탁월한 성능을 보인다. 이로 인해 임베디드 시스템(자동차 제어, 가전제품, 항공우주 소프트웨어 등), 초단타 거래(HFT) 시스템, 게임 엔진(언리얼 엔진 등)과 같은 성능이 중요한 분야에서 여전히 C++가 선호된다.
  • 시스템 프로그래밍과 저수준 제어: C++는 하드웨어와 가까운 수준에서 동작하며 운영체제, 데이터베이스 엔진, 웹 브라우저 등의 핵심 소프트웨어에 널리 쓰인다. Windows나 Linux 커널, Chrome/Firefox 브라우저의 상당 부분이 C++로 작성되어 있고, MySQL이나 PostgreSQL 같은 DBMS도 C++로 구현되어 있다. 이처럼 시스템 프로그래밍에 필수적인 언어이며, 장치 드라이버나 펌웨어 개발에도 C++의 직접적인 메모리 접근과 속도가 크게 이점을 가지고 있다. 예전 만큼은 아니지만 C++언어는 오늘날에도 컴퓨터공학 커리큘럼으로 가르쳐지고 있으며, 소프트웨어 공학의 기초를 배우는 데 중요한 역할을 한 다.
  • 폭넓은 산업 채택과 지속적 수요: 금융권의 고속 거래 시스템, 사이버 보안 소프트웨어(VPN, 암호화 라이브러리 등), IoT 기기와 자율주행차 제어 소프트웨어까지 다양한 산업이 C++에 의존하고 있다. 여전히 성능과 안정성을 이유로 C++ 을 선택하고, 새로운 프로젝트에서도 현대적인 C++를 활용하고 있다. C++를 깊이 있게 익혀두면 게임 개발부터 머신러닝 라이브러리 구현까지 폭넓은 개발이 가능 하다.

이런 장점에도 불구하고 C++언어는 현대 언어와 대비하여 배우기 어렵고, 메모리 관리가 까다롭다는 상대적인 단점이 있다. C++언어는 이런 단점을 지속적인 언어 표준의 제정으로 극복하고 있다. 2011년 이후 제정된 표준인 C++11 부터 모던C++(Mordern C++)이라고 부른다. C++는 3~4년 단위로 꾸준하게 표준이 제정되고 있다. 모던C++에서 개선된 가장 눈여겨볼 곳이 1) 자동 타입 추론, 2) 범위 기반 for, 3) 스마트 포인터, 람다 표현식이다. 모던C++초기에 스마트 포인터는 사용성의 문제가 좀 있었지만, 현재 표준에서는 많은 부분이 개선되었다. 그리고 언어 규약 자체이외도 표준에서 제시하는 표준라이브러리(STL)에서도 최신 프로그래밍 환경에 적합한 라이브러리를 제공한다. 언어 표준 규약과 함께 표준화된 라이브러리들이 제공된다는 것은 플랫폼, OS 구별없이 동일한 동작을 한다는 것은 보장한다.

Do It! C++ 완전 정복

구슬이 서말이어도 꿰어야 보배라고 한다. C++언어가 좋다고 한들, 내가 사용할 수 없다면 아무런 소용이 없을 것이다. AI가 코드를 만들어 주는 세상에 살고 있다고하지만, AI가 만들어낸 코드를 읽고 이해해서 비판적으로 사용하는 것이 매우 중요하다. AI 리터러시에서도 AI를 이해하고 활용하는 능력 만큼이나 AI에 대한 비판적인 사용이 매우 중요하게 생각한다. 프로그래밍 AI를 잘 사용하기 위해서도 언어에 대한 이해가 매우 중요한 것은 두 번 말할 필요도 없다고 생각한다.

이미 시중에 많은 C++ 교재들이 있다. 어떤 책은 2천 페이지에 가까운 두꺼운 책도 있고, 아주 얇은 쿡북도 있다. 각기 나름의 장단점이 있지만, 1저자로써 Do It! C++ 완전 정복의 장점을 이야기 하면 아래와 같다.

  • 기초 문법부터 실전 활용까지 체계적 학습: 이 책은 C++ 문법 기초를 탄탄히 하는 것을 시작작으로 고급 주제까지 공부 할 수 있도록 단계적으로 구성되어 있다. 변수, 제어문 같은 기본 개념부터 C 언어 경험자라면 놓치기 쉬운 C와 C++ 문법상의 차이까지 친절히 알려 준다. 그러면서도 객체지향, 템플릿, 표준 라이브러리, 그리고 최신 모던 C++ 기능에 이르기까지 600여 페이지에 걸쳐 폭넓게 다루고 있어, 이 책 한 권으로 기초부터 실전까지 완성할 수 있도록 되어 있다 . 학생들은 이 책 한 권으로 학기 수업의 전 범위를 커버하면서, 추후 실무에서도 활용 가능한 지식을 얻을 수 있을 것이다.
  • 현업 전문가의 노하우로 배우는 모범적인 C++ 스타일: “이제는 C 스타일을 벗어나 C++답게 코딩하자!”라는 책의 모토처럼 , 이 책은 단순히 문법만 나열하는 것이 아니라 현대적인 C++ 코딩 스타일을 예제를 따라 가다보면 자연스럽게 체득할 수 있다. 25년 이상 실무에서 C++를 사용해 온 전문가로서, 책 속 실습 코드에 유지 보수가 쉬운 구조, 가독성 높은 코드 작성 요령, 컴파일 단계에서 버그를 잡아내는 기법 등을 녹여 놓았기 때문에 가능한 일이다. 학생뿐 아니라 교수자도 모범 사례를 통해 바람직한 코딩 습관을 전달할 수 있어서 배우는 학생은 처음부터 최신 프로그래밍 스타일로 배울 수 있다.
  • 객체지향 개념과 설계 원칙을 실전 예제로 학습: C++의 꽃이라 할 수 있는 객체지향 프로그래밍(OOP)에 대한 설명은 이 책의 백미이다. 단순히 클래스 문법만 설명하는 데 그치지 않고, 추상화, 캡슐화, 상속, 다형성 등 OOP의 4대 특성을 실제 코드에 어떻게 적용하는지 상세히 다루고, 특히 “게임 속 몬스터” 시뮬레이션 프로그램을 단계별로 구현하면서, SOLID 원칙 등의 객체지향 설계 원칙과 간단한 디자인 패턴까지 공부 할 수 있다. 책에 실린 몬스터 게임 예제 코드를 통해 큰 규모 프로그램의 구조를 이해하고 객체지향 개념이 실제로 어떻게 응용되는지 체험할 수 있다. 이 과정에서 클래스 다이어그램과 실행 결과 화면도 함께 제시되어 있어, 시각적으로 프로그램 구조를 파악하기 쉽게 도와준다 . 교수자 입장에서도 이런 예제는 강의 자료로 활용하기 좋고, 학생들의 흥미를 불러일으키는 데 효과적이다.
  • 풍부한 연습문제와 학습 지원: 각 장마다 핵심 개념을 점검할 수 있는 퀴즈가 중간중간 삽입되어 있고, 한 단원이 끝날 때마다 “되새김 문제”로 복습을 할 수 있도록 구성되어 있다. 되새김 문제는 GitHub에서 해답 코드와 해설을 제공하여 혼자 공부하는 학생도 스스로 학습을 이어나갈 수 있다. 교수자는 이러한 문제들을 과제로 활용하거나 시험 문제의 아이디어로 참고할 수 있고, 학생들은 주어진 문제를 풀면서 실력을 탄탄히 다질 수 있다. 추가로, 이지스퍼블리싱 출판사에서 제공하는 교안을 활용해서 바로 강의를 시작할 수 있고, 제공된 자료를 커리 큘럼에 맞게 직접 수정해서 사용할 수 있는 지원 체계도 잘 갖춰져 있다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다