일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 깃
- docker
- vim
- C언어 포인터
- Houdini
- 구조체
- git
- gitlab
- Algorithm
- c언어
- HTML
- 플러터
- c# winform
- 포인터
- Unity
- jupyter
- c#
- 유니티
- C++
- C# delegate
- c# 추상 클래스
- Flutter
- Data Structure
- 도커
- jupyter lab
- github
- Python
- 다트 언어
- c# 윈폼
- dart 언어
- Today
- Total
nomad-programmer
[Programming/C++] C++ 개발자를 위한 최고의 라이브러리 11가지 본문
C++ 개발자가 선호하는 11가지 라이브러리를 소개한다.
1. 액티브 템플릿 라이브러리 (Active Template Library, ATL)
액티브 템플릿 라이브러리(Active Template Library, ATL)는 COM(구성 요소 개체 모델) 개체를 만들 수 있는 템플릿 기반 C++ 클래스의 세트이다.
https://learn.microsoft.com/ko-kr/cpp/atl/active-template-library-atl-concepts?view=msvc-170
2. 아시오 C++ 라이브러리 (Asio)
asio는 네트워크 프로그래밍을 위한 C++ 라이브러리다. 오픈 소스이며 크로스 플랫폼을 지원한다. 네트워크 및 로우레벨 I/O 프로그래밍에 사용되며 일관적인 비동기 모델을 지원한다. 동시성, C++ 네트워킹 및 기타 유형의 I/O를 위한 기본적인 구성 요소를 제공하며 게임과 앱부터 상호작용이 많은 웹사이트 및 실시간 거래 시스템에 이르기까지 다양한 분야에서 활용된다. asio를 사용하는 프로젝트로는 웹소켓 PP 라이브러리와 루아(Lua) 언어를 위한 DDT3 원격 디버거가 있다.
3. 부스트 라이브러리 (Boost)
부스트(Boost)는 C++ 프로그래밍 언어를 위한 선형대수, 의사 난수 발생, 멀티스레딩, 영상 처리, 정규 표현식 그리고 유닛 테스트와 같은 작업들과 구조들을 지원하는 라이브러리들의 집합니다. 이식 가능한 무료 C++ 라이브러리를 제공하며 C++ 표준 라이브러리와 함께 사용할 수 있다. 대부분의 현대 운영체제에서 실행되며 많은 리눅스 배포판에서는 부스트 패키지가 기본 내장된다.
4. 신더 라이브러리 (Cinder)
신더(Cinder)는 고급 비주얼 기능을 구현하기 위해 C++로 디자인된 오픈 소스 프로그래밍 라이브러리이다. 오디오, 기하학, 그래픽, 비디오와 같은 분야에 유용하며 플랫폼 네이티브 윈도잉과 이벤트 처리, I/O 추상화를 지원하고 XML과 JSON 파싱을 위한 API를 내장했다.
5. 아이겐 라이브러리 (Eigen)
아이겐(Eigen)은 행렬, 벡터, 수치 계산 솔버 및 관련 알고리즘을 포함한 선형 대수를 위한 C++ 템플릿 라이브러리이다. 작은 행렬과 고정 행렬부터 큰 조밀 행렬까지 모든 행렬 크기가 지원된다. 알고리즘은 안정성을 기준으로 선택되며, 모든 표준 수치 유형이 지원된다. 속도를 위해 똑똑하게 임시 변수를 제거하고 지연 연산을 활성화하는 표현식 템플릿을 제공한다.
https://eigen.tuxfamily.org/index.php?title=Main_Page
6. 플로트X 라이브러리 (FloatX)
플로트X(FloatX, Float eXtended)는 저정밀 부동소수점 형식 에뮬레이션을 위한 헤더 라이브러리이다. C++ 컴파일러와 기본적으로 호환되지만 파이썬, 포트란과 같은 다른 언어에서도 플로트X를 호출할 수 있다. 부동소수점 형식은 기본 단정밀도와 배정밀도 형식 이상으로 확장된다. 플로트X는 오픈 트랜스프리시전 컴퓨팅(Open Transprecision Computing) 이니셔티브에서 만들어졌으며 아파치 라이런스 2.0에 따라 무료 제공된다.
https://github.com/oprecomp/FloatX
7. OpenCV 라이브러리 (Open Source Computer Vision Library)
OpenCV는 C++로 작성되어 아파치2 라이선스로 제공되는 컴퓨터 비전 및 머신 러닝 라이브러리이다. 컴퓨터 비전 애플리케이션을 위한 공통 인프라를 제공하고 상용 제품에서 기계 인식의 사용을 가속화하기 위한 목적으로 만들어졌다. 얼굴 인식, 사물 탐지, 사물 분류, 3D 모델 추출, 이미지 검색 등 많은 기능을 위한 2,500개 이상의 최적화된 알고리즘을 제공하며 수많은 사용자로 구성된 커뮤니티도 있다.
8. 포코 라이브러리 (Poco: Portable Components)
포코 C++ 라이브러리는 boost::asio처럼 네트워크 라이브러리이다. 그리고 C++ 개발을 간소화하기 위한 목적으로 만들어졌다. 크로스 플랫폼 C++ 라이브러리이기 때문에 데스트탑과 서버, 모바일 및 IoT 디바이스에 이르기까지 다양한 시스템에서 실행되는 인터넷 및 네트워크 애플리케이션을 구축할 때 쓰기 유용하다. 머신 러닝이나 데이터 분석을 위해 REST API를 사용해 마이크로 서비스를 구축하는 데도 사용된다. 포코 라이브러리의 개념은 자바 클래스 라이브러리, 마이크로소프트 닷넷 프레임워크, 애플 코코아와 비슷하다.
개발자는 포코 라이브러리를 사용해서 C++로 SQL 데이터베이스, Redis, 몽고 DB와 통신하는 애플리케이션 서버를 구축하거나 클라우드 백엔드와 통신하는 IoT 디바이스용 소프트웨어를 제작할 수 있다. 라이브러리의 기능으로는 캐시 프레임워크, HTML 양식 처리, 파일 전송을 위한 FTP 클라이언트, HTTP서버 및 클라이언트가 있다. 포코 라이브러리는 부스트 소프트웨어 라이선에 따라 무료로 제공되며 github에서 다운로드 할 수 있다.
9. 벨록스 라이브러리 (Velox)
벨록스는 OLAP 시스템을 위한 임베딩 가능한 벡터화된 실행 라이브러리이다. 데이터 처리 시스템과 쿼리 엔진을 최적화하기 위한 용도로 만들어졌다. 2020년 페이스북의 내부 엔지니어링 프로젝트로 시작됐고 이후 오픈 소스화됐다.
https://github.com/facebookincubator/velox
10. Wt 라이브러리
Wt는 최신 C++의 웹 GUI 라이브러리이다. 한 줄의 JavaScript를 작성하지 않고도 위젯을 사용하여 대화형 웹 UI를 빠르게 개발할 수 있다. Wt는 모든 요청 처리 및 페이지 렌더링을 처리하므로 기능에 집중할 수 있다. 서버측 솔루션인 Wt는 요청 처리와 페이지 렌더링을 수행하며, 내장 보안 기능, PDF 렌더링, 2D 및 3D 페인팅 시스템, 개체 관계형 매핑 라이브러리, 차트 라이브러리, 인증 프레임워크를 제공한다. 핵심 라이브러리는 오픈 소스이며 리눅스, 유닉스 또는 윈도우에 배치 가능한 혼합형 싱글 페이지 프레임워크를 제공한다.
11. 욕토/GL 라이브러리 (Yocto/GL)
욕토/GL은 물리 기반 그래픽 알고리즘을 구축하기 위한 작은 C++ 17 라이브러리 모음이다. 개발 편의성을 위해 데이터 지향 스타일로 작성되며 용이한 코드 탐색을 위해 여러 작은 레이브러리로 분할된다. 데이터는 단순한 구조로 저장되며 free 함수를 통해 또는 직접 접근할 수 있다. MIT 라이선스로 제공되며 github에서 받을 수 있다.
'Programming > C++' 카테고리의 다른 글
[Programming/C++] C++ 코딩 표준 참고 사이트 (0) | 2023.01.26 |
---|---|
[Programming/C++] 템플릿 (Template) (0) | 2023.01.26 |
[Programming/C++] 네임스페이스 (namespace) (2) | 2023.01.24 |
[Proramming/C++] C++ 스타일의 형 변환 (0) | 2023.01.24 |
[Programming/C++] 예외에 안전한 코드 생성 (4) | 2023.01.23 |