안녕하세요!
오늘은 C++은 무엇인가?
C++에 대해서 알아보도록 하겠습니다.
C++의 개요
C++는 1979년 벨 연구소의 비야네 스트롭스트룹(Bjarne Stroustrup)에 의해 개발된 프로그래밍 언어로, C 언어의 확장판입니다. C++는 객체 지향 프로그래밍(OOP) 개념을 도입하여 코드의 재사용성과 유지보수성을 높였으며, 다양한 프로그래밍 패러다임을 지원합니다.
어… 역사는 알겠고!
왜 요즘 Python처럼 쉬운 언어가 있는데 왜 복잡한 C++를 사용할까요?
이유는 바로 “속도”에 있습니다.
C++는 프로그래밍 언어의 가장 Low 레벨인 C언어를 기반으로 제작된 언어라서 속도와 효율성 측면에서 직접 컨트롤할 수 있는 장점이 있습니다.
그래서 C++을 이용하여 금융 및 과학 관련 프로그램, 실시간 처리 프로그램, 게임 엔진, 그래픽 라이브러리, 운영 체제 프로그램 등 다양한 방면에서 활용할 수 있습니다.
그렇다면 속도가 중요하다면서 Low 레벨의 언어인 C언어를 쓰지 왜 C++ 을 쓸까요?
C언어는 Low 레벨이라 컴퓨터가 이해하기 쉽게 작성되어 있습니다.
컴퓨터가 이해하기 쉽다면? 우리 개발자들한테는 이해하기 어렵겠죠..
그래서 그나마 객체 지향 특징이 들어간 C++을 사용합니다.
물론 그렇다고 C언어가 안 쓰이는 것은 아니고 오히려 더 많이 쓰입니다.
각 언어마다 특징이 있어 C언어도 많이 쓰이고 C++도 많이 쓰입니다.
C++의 특징
- C언어를 확장하여 만든 고급 범용 프로그래밍 언어입니다.
- 절차 지향적 언어 + 객체 지향형 언어의 특징을 지니고 있습니다.
- 연산자 오버로딩, 구조체, 포인터 등의 기능을 지원합니다.
- 메모리 관리를 수동으로 할 수 있습니다.
- 플랫폼에 종속적입니다.
- 표준 라이브러리 STL을 제공합니다.
자 그러면 하나씩 뜯어보도록 하겠습니다.
C++는 C언어를 기반으로 제작된 언어라서 C언어의 문법과 유사합니다.다만.. 차이점이 있다면 C언어의 업그레이드 버전이 C++이라 객체 지향의 특성이 추가된 버전이라 생각하심 됩니다.
C언어를 배웠다면 포인터, 구조체와 같은 개념이 익숙하실 겁니다.
거기에 연산자 오버로딩을 통해 객체 지향의 특성도 살려주고요.
C언어에서도 메모리 관리를 수동으로 할 수 있으며
C언어나 C++언어나 OS에서 기계어로 바로 컴파일을 진행하여 OS 플랫폼에 종속적인 언어가 되버립니다.
윈도우, 리눅스, 유닉스 등 다양한 OS 플랫폼에서 직접적으로 컴파일 하기 때문에 각각의 OS별 같은 코드이지만 결과가 달라질 수 있습니다.
표준 라이브러리(STL)에는 다양한 데이터 구조와 알고리즘을 쉽게 사용할 수 있도록 정의해놓은 라이브러리 입니다.
Vector, List, Map, Set 등 다양한 데이터 타입과, 정렬, 검색 등 다양할 알고리즘을 포함하고 있어 개발자의 생산성을 높일 수 있습니다.
끝으로, C++를 이용하여 앞으로는 HTS 프로그램을 만들어보려고 합니다.
속도와 성능이 중요한 만큼 HTS도 잘 만들어가는 과정을 보여드리도록 하겠습니다.
오늘도 감사합니다.