C++ 기초부터 마스터까지 — 1화
왜 우리는 C++을 배워야 하는가?
본 블로그 작성 글들은, 강의를 목표로 하고 제작되었습니다. 또한 작성된 글의 정보도 틀렸을 수 있으니, 주의해주세요.
#include <iostream>
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
해당 코드는 C++ 언어에서 Hello World를 출력하는 가장 기본적이며 처음 배우는 코드이다.
Python을 해봤다면, std::cout 부분이나, std::endl 직관적이지 못할 것이다. 그럼에도 왜 사람들은 더 쉬운 Python 같은 인간 친화적 언어를 두고, 기계 친화적 언어인 C++을 사용할까?
답은 "용도에 따라 다르다"는 것이다. Python은 프로그래밍을 해보지 않았더라도 바로 시작할 수 있을 정도로 쉽다. 그럼에도 C++을 사용하는 주된 이유는 속도라고 할 수 있다. Python은 인터프리터 언어이고, C++은 컴파일 언어이기 때문에 Python과 비교할 수 없는 속도를 낼 수 있다.
인터넷에서 밈으로나마 몇 줄의 Python 코드보다, C++의 수백 줄 코드가 더 빠른 걸 보여주는 예도 있다.
물론 Python보다 C++이 좋은 언어인 것은 아니다. 말한대로 언어는 용도가 다를 뿐, 좋고 나쁨이 없다.
속도를 중요시하는 게임 같은 프로그램은 C++을 선택할 것이고, 생산성이 중요한 프로토타입이나, 실행 속도가 중요하지 않은 프로그램은 Python을 선택할 것이다.
좋다. 프로그래밍 언어들은 용도가 다름을 알게 되었다. 그러나 풀리지 않는 의문이 있을 것이다. 만약 C++이 C언어를 이어받아, 객체지향이라는 특징이 추가되었다면, 왜 C++은 C언어를 대체하지 못하고 있는가? 라는 생각이 들 것이다.
결론부터 말하자면, C++은 C언어의 계통을 이어받았을 뿐, 다른 언어로 보는 것이 바르다고 할 정도로 달라진 상태이다. C언어는 훨씬 하드웨어 친화적이고, C++은 고수준의 추상화를 지원하여 거대한 프로그램을 체계적으로 설계하기 좋게 발전하였다. 또한 C 보다는 많은 안전장치가 생겨 C는 하드웨어나 OS, C++은 복잡한 설계가 필요한 프로그램에 사용되기 시작해, 결국 둘 다 다른 목적을 갖게 되었다.