# Modern C++ 프로그래밍 강좌

> Clean Markdown view of GeekNews topic #12073. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=12073](https://news.hada.io/topic?id=12073)
- GeekNews Markdown: [https://news.hada.io/topic/12073.md](https://news.hada.io/topic/12073.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2023-11-29T09:47:40+09:00
- Updated: 2023-11-29T09:47:40+09:00
- Original source: [github.com/federico-busato](https://github.com/federico-busato/Modern-CPP-Programming)
- Points: 40
- Comments: 1

## Topic Body

- 이 과정은 이미 C와 객체 지향 프로그래밍에 익숙한 사람들을 대상으로 하며, C++ 프로그래밍의 숙련도를 높이는 데 목적이 있음  
- C++ 프로그래밍의 기본부터 고급 C++ 의미론 및 개념에 이르기까지 다룸  
- 무료이며 자주 업데이트되고, 최신 언어 표준의 개념과 기능을 포함하며, 실용적인 교육 방식을 채택  
  
### 각 장의 주요 내용  
  
- **기본 개념** : C++의 기본 유형, 연산자, 변환 규칙, 메모리 관리, 함수 및 전처리에 대한 설명.  
- **객체 지향 프로그래밍** : 클래스 개념, 상속, 다형성, 연산자 오버로딩에 대한 이해.  
- **템플릿과 메타 프로그래밍** : 함수 및 클래스 템플릿, 컴파일 시간 유틸리티, SFINAE에 대한 심층적인 탐구.  
- **번역 단위** : 링키지, One Definition Rule, 다중 번역 단위 처리 방법에 대한 설명.  
- **코드 규약** : 프로젝트 조직, 주요 코드 규약에 대한 안내.  
- **생태계** : 디버깅, 테스트, Cmake, 문서화 및 기타 도구에 대한 정보.  
- **유틸리티** : 주요 `std` 라이브러리, 컨테이너, 반복자, 알고리즘에 대한 개요.  
- **고급 주제** : 이동 의미론, 타입 추론, 스마트 포인터, 동시성에 대한 심화 학습.  
- **최적화** : 기본 개념, 코드 최적화, 비코딩 최적화 및 벤치마킹에 대한 전략.  
  
### GN⁺의 의견  
  
이 과정은 C++의 최신 표준을 포함하여 C++ 프로그래밍의 모든 측면을 다루고 있어, 초급 소프트웨어 엔지니어가 전문가 수준으로 성장하는 데 필수적인 자료임. 실제 사례를 바탕으로 한 경험 중심의 접근 방식은 학습자에게 실용적인 지식을 제공하며, 이는 프로그래밍 역량을 향상시키는 데 매우 유익함.

## Comments



### Comment 20951

- Author: neo
- Created: 2023-11-29T09:47:40+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=38444834) 
- *해당 과정의 창시자는 NVIDIA의 팀 리더이자 CUDA cuSPARSE의 주요 소프트웨어 엔지니어임*
  - 과정 창시자의 NVIDIA 및 CUDA와의 연관성을 고려할 때, 이 경험이 C++에 능숙한 사람들에게 도움이 될 수 있음.
  
- *ChatGPTv4를 사용하여 CUDA와 호환되는 현대 C++ 코드 작성에 큰 성공을 거둠*
  - ChatGPTv4가 Rust 코드를 최신 nvcc CUDA 컴파일러와 호환되는 현대 C++로 변환하는 데 도움을 줄 수 있음.
  - 변환 과정에서 언어 차이를 설명하고, `std::*`를 사용하여 더 유연한 코드 작성을 권장함.

- *오랜 휴식 후 C++로 돌아왔으며, C++17과 같은 최근 버전은 충분히 좋지만 유니코드 지원은 아쉬움*
  - 최신 C++ 버전은 사용하기에 충분하지만, 유니코드 지원이 불편하여 개선이 필요함을 지적함.

- *임베디드 개발자로서 C++ 학습을 시작하기 위한 좋은 자료를 찾는 중임*
  - 임베디드 개발 경험이 있는 사람이 더 높은 수준의 작업으로 전환하기 위해 C++ 학습 자료를 찾고 있음.
  - 다양한 가격대의 코스가 있지만, 복잡한 상황에 맞는 코스 선택에 어려움을 겪고 있음.

- *해당 과정을 learncpp.com과 비교할 수 있는 사람이 있는지 궁금함*
  - learncpp.com 웹사이트와 비교하여 해당 과정의 효용성에 대한 의견을 구함.

- *대학 시절 잊혀진 C 기술을 다시 익히기에 적합하지만, 실제 코딩 연습이 더 필요함*
  - 이론적인 학습보다는 실제 코딩 연습을 통한 학습을 선호하는 의견을 표현함.

- *슬라이드만으로는 학습이 어렵다고 생각함*
  - 슬라이드를 통한 학습이 비효율적이라고 비판하며, 다른 학습 방법을 선호함을 나타냄.

- *스마트 포인터는 C++에서 "고급 주제"로 간주되어서는 안 됨*
  - 스마트 포인터가 메모리 관리에 있어서 가장 좋은 방법이므로, 초급자도 이를 학습해야 함을 강조함.
  - `new`와 `delete`에 대한 이해도 중요하지만, 실제로는 `unique_ptr`이나 `shared_ptr`을 사용하는 것이 더 바람직함을 언급함.

- *현대 C++에서는 new/delete를 사용해야 하는지 의문임*
  - C++ 초보자가 현대 C++에서 new/delete 키워드의 필요성에 대해 의문을 제기함.

- *변환 규칙 섹션을 어떻게 읽어야 하는지 설명해달라고 요청함*
  - 변환 규칙 섹션의 표기법에 익숙하지 않아 도움을 요청하며, 해당 부분에 대한 추가 설명을 찾음.
