출처
C++ 개발자가 "이 기능, 누가 이미 만들었지?"로 구글링하는 시간을 줄이려고
분야별 오픈 소스 라이브러리를 모아 둔 cppreference 링크 목록입니다.
•
조건은 거의 하나: 소스 형태로 받을 수 있을 것
•
품질·최신성·라이선스를 보장하지 않음 ("as is")
•
GeekNews 댓글 요지: 한국어판은 업데이트가 오래됨 → 실무에선 영문 원문을 보는 편이 낫다
원인 파악을 해봅시다 :)
C++ 생태계는 "표준 라이브러리 + 언어"만으로 끝나는 언어가 아닙니다.
표준 라이브러리 = 기초
실제 제품 = Boost / Qt / Eigen / protobuf / ...
Plain Text
복사
문제는 선택지가 너무 많다는 점입니다.
네트워크만 해도 Asio, POCO, ZeroMQ, Thrift, REST SDK…
JSON만 해도 RapidJSON, jsoncpp, nlohmann/json…
그래서 "카탈로그"가 검색 엔진보다 빠른 경우가 있습니다.
여기서 우리가 꼭 알아가야할 핵심 개념!!: 분야별로 고르기
목록이 긴 이유를 한 줄로 말하면:
C++는 한 프레임워크가 전부를 덮는 문화보다,
문제 영역별로 라이브러리를 조합하는 문화에 가깝다.
대략 이런 지도로 보면 됩니다:
영역 | 대표 이름 | 언제 찾나 |
범용 | Boost, Folly, Dlib, JUCE | "표준에 없는 기본기" |
통신 | Boost.Asio, POCO, ZeroMQ, Thrift | 네트워크·RPC·메시징 |
GUI | Qt, GTKmm, wxWidgets, FLTK | 데스크톱 UI |
멀티미디어/게임 | SDL, SFML, OpenFrameworks | 창·입력·오디오 |
그래픽 | OpenGL/GLFW/GLM, bgfx, Assimp | 렌더링·모델 |
수학/ML | Eigen, Armadillo, MLPACK, Dlib | 선형대수·학습 |
병렬/가속 | TBB, OpenMP, CUDA/OpenCL 계열 | 고성능 연산 |
직렬화 | protobuf, cereal, RapidJSON | 와이어/파일 포맷 |
DB | SOCI, ODB, sqlpp11, mysql++ | ORM·쿼리 |
테스트/로그/암호 | Google Test, Catch, spdlog, OpenSSL | 개발·운영 인프라 |
한 줄: 목록의 가치는 "추천 순위"가 아니라 검색 공간 축소입니다.
자주 하는 실수들입니다! (라이브러리 고르기)
실수 1. 한국어판만 보고 "최신 목록"이라고 착각한다
댓글에도 나오듯, 한국판은 마지막 업데이트가 오래됐을 수 있습니다.
링크 깨짐·누락·옛 프로젝트가 섞여 있을 수 있으니 영문 페이지 + 실제 repo 상태를 확인하세요.
실수 2. "유명하니 일단 Boost/Qt"로 끝낸다
맞는 경우도 많지만, 헤더온리 한 줄 JSON이면 nlohmann/json으로 충분한 경우도 있습니다.
의존성 크기·빌드 시간·라이선스가 제품 제약이 됩니다.
실수 3. 라이선스를 나중에 본다
GPL(JUCE 등)과 Boost/Apache/MIT는 배포 전략이 다릅니다.
카탈로그에 있다고 = 상업 제품에 그냥 넣어도 된다는 뜻이 아닙니다.
실수 4. "목록에 있으니 품질도 OK"
원문이 스스로 말합니다: 오래됐을 수 있고, 잘못된 링크로 갈 수 있다.
스타 수, 최근 커밋, CI, 이슈 응답을 직접 봐야 합니다.
실무로 옮기면 (체크리스트)
새 C++ 기능이 필요할 때:
1. 표준 라이브러리로 충분한가?
2. 이미 프로젝트에 있는 의존성으로 되는가? (Boost가 이미 있다면…)
3. 카탈로그에서 후보 2~3개만 추린다
4. 라이선스 / C++ 표준 버전 / 플랫폼 / 헤더온리 여부를 본다
5. 작은 spike(프로토타입)로 빌드·성능·DX를 확인한다
Plain Text
복사
정리해봅시다!
1.
이 페이지는 튜토리얼이 아니라 지도다. 빠른 후보 탐색용.
2.
C++는 영역별 라이브러리 조합이 기본이라, 카탈로그가 특히 쓸모 있다.
3.
한국어판보다 영문 원문을 우선하고, 링크·활성도를 직접 검증한다.
4.
고를 때는 유명도보다 라이선스·의존성 크기·빌드·유지보수를 본다.
5.
"목록에 있다" ≠ "프로덕션에 넣어도 된다". as-is 문서를 as-is로 쓰자.