C++ 개발자 로드맵

C++ 은 빠른 고성능 언어로서 많은 분야에서 사용되고 있습니다. 특히 AI 시대 실시간으로 빠르게 처리하기 위한 복잡한 알고리즘 구현에 널리 쓰이고 있습니다. 이 글에서는 C++ 개발자 로드맵에 대해 알아보도록 하겠습니다.

C++ 소개

  • C++란 무엇인가요?
  • 왜 C++인가요?
  • C vs C++

C++ 설정하기

  • C++ 설치하기
  • 코드 편집기
  • C++에서의 첫 번째 프로그램

C++의 기본 연

  • C++에서의 산술 연산자
  • C++에서의 논리 연산자
  • C++에서의 반복문
  • 비트 연산

함수

  • 연산자
  • 람다

데이터 타입

  • RTTI (런타임 타입 정보)
  • 동적 타입
  • 정적 타입

포인터와 참조

  • 참조(References)
  • 메모리 모델
  • 객체의 수명
  • weak_ptr
  • shared_ptr
  • unique_ptr
  • 스마트 포인터(Smart Pointers)
  • New/delete 연산자
  • Raw 포인터
  • 메모리 누수

코드베이스 구조화

  • 헤더 파일과 CPP 파일로 코드 분리
  • 전방 선언(Forward Declaration)
  • 범위(Scope)
  • 네임스페이스

구조체와 클래스

  • 규칙의 제로, 다섯, 세 (Rule of Zero, Five, Three)
  • 다중 상속
  • 다이아몬드 상속
  • 객체 지향 프로그래밍
  • 함수 오버로딩
  • 정적 다형성
  • 가상 메서드
  • 가상 테이블
  • 동적 다형성

예외 처리

  • 접근 위반
  • 예외
  • 종료 코드

언어 개념

  • auto (자동 타입 추론)
  • 타입 캐스팅
  • static_cast
  • const_cast
  • dynamic_cast
  • reinterpret_cast
  • 정의되지 않은 동작(UB)
  • 인수 종속 검색(ADL)
  • 이름 맹글링
  • 매크로

표준 라이브러리 + STL

  • 이터레이터(Iterators)
  • 알고리즘
  • 멀티스레딩
  • iostream
  • 날짜/시간
  • 컨테이너(Containers)

템플릿

  • 변수 템플릿
  • 템플릿 특수화
  • 완전 템플릿 특수화
  • 부분 템플릿 특수화
  • 타입 특성(Type Traits)
  • SFINAE (Substitution Failure Is Not An Error)

관용구(Idioms)

  • RAII
  • Pimpl (Pointer to Implementation)
  • CRTP (Curiously Recurring Template Pattern)
  • 복사 불가 / 이동 불가
  • Erase-Remove 관용구
  • 복사와 스왑
  • 복사 시 쓰기 (Copy on Write)

표준

  • C++ 11/14
  • C++ 17
  • C++ 20
  • 최신 표준
  • C++ 0x

디버거

  • 디버거 메시지 이해하기
  • 디버깅 심볼
  • WinDBG
  • GDB

컴파일러

  • 컴파일러 단계 이해하기
  • 다양한 컴파일러와 그들의 특징
  • Clang++/LLVM
  • Intel C++
  • MSVS C++
  • GCC
  • MinGW

빌드 시스템

  • CMake
  • Makefile
  • Ninja

패키지 관리자

  • vcpkg
  • Spack
  • Conan
  • NuGet

라이브러리 사용하기

  • 라이브러리 포함하기
  • 라이센싱

라이브러리

  • Boost
  • OpenCV
  • POCO
  • protobuf
  • gRPC
  • TensorFlow
  • pybind11
  • spdlog
  • OpenCL
  • fmt
  • range-v3

프레임워크

  • gtest/gmock
  • Qt
  • Catch2
  • Orbit Profiler
  • PyTorch C++

Back to top