C++ 공부

C++ 언어 소개

EJH 2025. 7. 13. 12:20
반응형

C++ 언어 소개

C++는 강력한 성능과 유연성을 갖춘 프로그래밍 언어로, 다양한 분야에서 널리 사용되고 있다. 이 글에서는 C++의 역사, 언어적 특징, 그리고 프로그램 빌드 과정을 간단히 정리한다.


1. C++ 언어의 역사

C++는 1980년대 초반, 벨 연구소(Bell Labs)의 Bjarne Stroustrup이 개발하였다. 당시 Stroustrup은 C 언어의 성능과 하드웨어 제어 능력은 유지하되, 대규모 소프트웨어 개발에 적합한 객체지향 프로그래밍 개념을 도입하고자 했다.

초기에는 **“C with Classes”**라는 이름으로 시작되었고, 이후 여러 기능이 추가되면서 1983년에 **C++**라는 이름이 붙었다. ‘++’는 C 언어에서 값을 증가시키는 연산자로, C에 기능이 추가되었다는 의미를 담고 있다.

1998년에는 첫 공식 표준인 C++98이 발표되었고, 이후 C++11, C++14, C++17, C++20, C++23 등 지속적으로 업데이트되며 현대적인 언어로 발전하고 있다.


2. C++ 언어의 특징

C++는 다양한 프로그래밍 패러다임을 지원하며, 성능과 유연성에서 강력한 장점을 가진다.

● 절차지향과 객체지향을 모두 지원한다

C++는 C의 절차지향 프로그래밍 스타일을 그대로 사용할 수 있으며, 클래스(class), 상속(inheritance), 다형성(polymorphism) 등을 통해 객체지향 프로그래밍도 가능하다.

● 템플릿을 통한 제네릭 프로그래밍이 가능하다

함수나 클래스를 다양한 타입에 대응하도록 일반화할 수 있는 템플릿 기능을 제공한다. 이를 통해 코드 재사용성과 유지보수성이 향상된다.

● 저수준 메모리 제어가 가능하다

포인터, 참조, 동적 메모리 할당 등 C와 마찬가지로 메모리를 직접 제어할 수 있어, 성능 최적화가 중요한 프로그램에 적합하다.

● 표준 템플릿 라이브러리(STL)를 제공한다

STL은 벡터, 리스트, 맵 등 자주 사용되는 자료구조와 알고리즘을 미리 구현해 놓은 라이브러리로, 개발 생산성을 크게 높여준다.

● 다양한 플랫폼과 운영체제를 지원한다

C++는 Windows, macOS, Linux 등 다양한 환경에서 컴파일되고 실행될 수 있으며, 이식성이 뛰어나다.


3. 프로그램 빌드 과정

C++ 프로그램은 작성된 소스코드가 바로 실행되는 것이 아니라, **빌드(build)**라는 과정을 통해 실행 파일로 변환된다. 일반적인 빌드 과정은 다음과 같다.

● 1. 전처리 (Preprocessing)

#include, #define과 같은 전처리 지시문을 처리하는 단계다. 이 단계에서는 매크로를 치환하고, 헤더 파일을 삽입하며, 조건부 컴파일을 수행한다.

● 2. 컴파일 (Compiling)

전처리된 코드가 **기계어로 번역될 수 있는 중간 코드(오브젝트 파일)**로 변환된다. 이 단계에서는 문법 검사, 최적화 등이 이루어진다.

● 3. 어셈블 (Assembling)

컴파일된 중간 코드를 CPU가 이해할 수 있는 **기계어(오브젝트 코드)**로 바꾼다. 일반적으로 컴파일러 내부에서 자동으로 수행된다.

● 4. 링킹 (Linking)

여러 개의 오브젝트 파일이나 라이브러리를 하나의 **실행 파일(.exe)**로 연결하는 단계다. 외부 함수나 라이브러리의 참조가 이 단계에서 해결된다.


마무리

C++는 속도와 제어가 중요한 시스템부터, 복잡한 대규모 애플리케이션 개발까지 폭넓게 활용되고 있는 언어다. C 언어의 유산을 바탕으로 객체지향, 템플릿, 라이브러리 등 현대적인 기능을 갖춘 C++는 여전히 많은 개발자들에게 사랑받고 있다.

반응형