# C++의 절대적 인기

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18423](https://news.hada.io/topic?id=18423)
- GeekNews Markdown: [https://news.hada.io/topic/18423.md](https://news.hada.io/topic/18423.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-12-25T09:51:57+09:00
- Updated: 2024-12-25T09:51:57+09:00
- Original source: [learncodethehardway.com](https://learncodethehardway.com/blog/31-c-plus-plus-is-an-absolute-blast/)
- Points: 1
- Comments: 1

## Topic Body

- # C++의 재미
  - 프로그래머들이 프로그래밍을 시작한 이유를 잊어버렸다고 생각함.
  - C++로 프로젝트를 진행하며 재미를 느끼고, 다양한 아이디어를 실현할 수 있었음.
  - C++는 프로그래머가 원하는 것을 할 수 있도록 방해하지 않음.

- # C++ 템플릿 메타프로그래밍의 문제
  - 90년대 후반부터 2000년대 초반까지 C++ 커뮤니티는 템플릿 메타프로그래밍에 집착했음.
  - 이는 C++를 복잡하고 사용하기 어려운 언어로 만들었음.
  - Java는 프로그래머의 필요를 고려하여 더 나은 사용자 경험을 제공했음.

- # C++11의 놀라운 변화
  - C++11은 언어에 많은 개선을 가져왔음.
  - `auto`, `nullptr`, `range-for`, 람다 표현식, `&lt;chrono&gt;`, `&lt;regex&gt;`, `unique_ptr`, `shared_ptr`, `&lt;thread&gt;` 등의 기능이 추가되었음.
  - 이러한 변화는 C++를 더 현대적이고 사용하기 쉬운 언어로 만들었음.

- # C++의 현대적 기능
  - 파일 시스템 탐색, 패키지 관리, 행렬 라이브러리, 그래픽, GUI, TUI 등 다양한 기능을 지원함.
  - C++는 다양한 라이브러리와 API에 직접 접근할 수 있어 거의 모든 것을 만들 수 있음.

- # C++의 창의적 자유
  - C++는 창의성을 발휘할 수 있는 언어로, 다른 언어의 권위적인 제약에서 벗어남.
  - cppreference.com은 C++의 훌륭한 문서화 사이트로, 모든 키워드와 라이브러리를 잘 설명하고 있음.

- # C++의 단점
  - 컴파일러 오류 메시지가 업계 최악이며, 빌드 도구가 사용하기 어려움.
  - 언어의 복잡성과 역사적 유산으로 인해 학습 곡선이 가파름.
  - RAII(자원 획득은 초기화) 패턴이 실제 환경에서 불편할 수 있음.

- # 결론
  - C++는 여전히 재미있고 강력한 언어이며, 과거의 고정관념에서 벗어나야 함.
  - C++는 프로그래머에게 창의적 자유를 제공하며, 다양한 프로젝트를 실현할 수 있는 가능성을 열어줌.

## Comments



### Comment 32684

- Author: neo
- Created: 2024-12-25T09:51:57+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42495135) 
- C++를 싫어하지만 개인 프로젝트에서는 만족스러운 경험임. Rust와 CD/CI가 장기적인 신뢰성을 제공함. 빌드 시스템과 패키지 관리가 어려움.
  - C++의 세밀한 제어가 즐거움을 줌.
  - 빌드 시스템과 패키지 관리가 어려움.
  - C++의 문법과 런타임의 복잡함이 있음.

- C++에 대한 혼란스러운 의견이 많음. C++의 현대적 품질과 구식 문제점이 혼재함.
  - C++의 성능과 기술적 요소가 재미를 줌.
  - C++는 "진짜" 소프트웨어 개발에는 적합하지 않음.

- C++ 프로젝트에 제3자 의존성을 연결하는 데 어려움이 있음. 대부분의 현대 언어에서는 간단한 설치로 해결 가능함.
  - C++의 세부 사항을 이해하는 데 시간이 걸림.

- C++의 새로운 기능을 배우지만 컴파일러 오류로 인해 어려움을 겪음. C++14에 머물러 있음.
  - C++의 복잡함이 부담이 됨.

- C++의 불만은 주로 구식 코드베이스에서 발생함. Rust에서도 비슷한 경험을 함.
  - 나쁜 소프트웨어 개발이 문제임.

- C++에서 재미를 느끼는 사람도 있지만, 개인적으로는 C++가 복잡함.
  - 낮은 수준의 제어가 필요할 때 C를 사용함.

- C++11에 감명을 받았으며, cppreference.com의 문서가 훌륭함.
  - 다른 라이브러리를 프로젝트에 통합하는 것이 어려움.

- 현대 C++를 잘 아는 팀과 함께라면 C++는 훌륭함. 성능이 뛰어나고 디버깅과 최적화가 용이함.
  - 오래된 코드베이스에서는 다른 경험을 하게 됨.

- C++를 배웠지만 깊이 들어가지는 않음. Rust의 기능적 프로그래밍과 성능이 뛰어남.
  - C++를 사용할 이유가 많지 않음.

- C++의 `std::regex`는 성능이 좋지 않고 유니코드 지원이 부족함. 일반적으로 피해야 함.
