본문 바로가기
Programming/C++

[Modern C++ 공부 - Day0] C++11, 14, 17는 뭐가 다를까?

by 롱일스 2023. 6. 15.
반응형

안녕하세요. 요즘 많은 회사들에선 Modern C++를 사용하고 있고, 그냥 C++이 아닌 Modern C++를 자유자재로 사용하는 개발자를 원합니다. 그래서 오늘부터 Modern C++에 대해 공부하고 기록하려고 합니다. 함께 Modern C++ 뿌시러 가봅시다!

Modern C++은 C++11, 14, 17, 20 의 최신 버전 C++을 말하고, C++11 버전부터 Modern C++로 봅니다.
그럼 그 이전의 C++와는 뭐가 다를까요? 

Modern C++ 이전의 C++인 전통적 C++는 배열, 포인터, 상속이라는 특징이 있고 클래스가 있는 C언어라는 관점으로 볼 수 있습니다. 

전통적 C++에 많은 기능들이 추가된 Modern C++의 특징과 장점을 간단히 말하면, 다음과 같습니다.

  1. 표현성
    - 추상화(Abstraction)를 통해 중복 코드 작성이 감소하고, 로컬 함수(local functions)와 람다 표현식(Lambda expression) 등을 통해 STL(Standard Template Library) 컨테이너(container)와 알고리즘(Algorithm) 함수와의 결합을 통한 효율적인 코드 작성이 가능하다.
    - 이러한 특징은 불필요한 코드의 제거를 돕고, 나중의 코드 유지 및 보수를 위한 가독성 향상에 기여한다.

  2. 효율성
    - 많은 처리가 컴파일 시간에 수행되어 런타임(runtime) 시간이 단축된다.
    - 임시 데이터의 복사량이 감소하면서 효율성이 증가하고,
    - 저수준(low level) 코드 작성의 필요성이 감소하여 개발 속도가 향상된다.

  3. 안정성
    - 명시적 포인터(explicit pointers)와 힙 메모리 할당 같은 기존의 C++ 문제를 개선하고, 컴파일러에 의한 루프(loop) 생성으로 프로그램 정확성이 향상된다.
    - 개발자의 메모리 관리 부담을 줄이고, 디버깅 작업을 줄이며 시스템 충돌 발생을 감소시킨다.

위의 장점들이 아직 무슨 말인지 이해가 되지 않아도 괜찮습니다. 이제부터 구체적으로 하나하나 공부하면 위에서 언급한 특징들에 대해 자연스럽게 이해가 될 것입니다. 

오늘부터 시작!

728x90
반응형