C/C++ 동적 메모리 관리 심화: GNU Libc 고급 기능 활용

C/C++ 동적 메모리 관리 심화: GNU Libc 고급 기능 활용 C 및 C++ 프로그래밍에서 동적 메모리 할당은 전통적으로 가장 다루기 어려운 문제 중 하나였습니다. 자바와 같은 일부 언어에서 가비지 컬렉션(Garbage Collection) 메커니즘을 도입하여 프로그래머의 부담을 덜어주는 것은 당연한 일입니다. 그러나 C 개발자를 위해 GNU C 라이브러리(GNU Libc)는 메모리 사용을 ...

5월 22일 08:57에 게시됨

Qt에서 QUdpSocket 직렬화 문제 해결 방법

간단한 Qt 네트워크 프로그램을 개발하던 중, 문자열 외에 사용자 정의 구조체를 전송해야 하는 상황에 직면했습니다. 이를 해결하기 위해 memcpy() 함수를 사용해 데이터를 BYTE 배열로 직렬화하여 네트워크 전송을 구현했습니다. 직렬화는 Java에서 유래한 개념으로, C에는 존재하지 않았지만 C++에서는 후에 직렬화 및 역직렬화 개념이 도입되었습니다. 직렬화란 시스 ...

5월 21일 18:51에 게시됨

로컬 환경에서 대규모 멀티모달 모델을 고성능으로 배포하고 API로 제공하기

Python과 C++을 활용한 로컬 배포 및 API 구현 데이터 보안과 지연 시간 감소를 위해, CLIP, BLIP 또는 LLaVA와 같은 멀티모달 모델을 로컬에 직접 배포하고 효율적인 API 서비스를 구성하는 방법을 다룹니다. 필수 환경 설정 Python 3.8 이상 및 pip CUDA 11.7 이상 (GPU 사용 시) PyTorch 또는 ONNX Runtime g++ 컴파일러 (C++ 확장용) 모델 내보내기 및 추론 인터페 ...

5월 21일 11:30에 게시됨

C++ 템플릿 기반 이중 원형 연결 리스트 구현

이중 원형 연결 리스트의 노드 클래스 설계 이중 연결 리스트의 핵심은 각 노드가 이전 노드와 다음 노드를 모두 가리키는 포인터를 가진다는 점입니다. 템플릿을 활용하여 다양한 데이터 타입을 지원하도록 구현합니다. template<typename T> class DNode { public: T data; DNode* next; DNode* prev; DNode() : data(T()), next(nullptr), p ...

5월 21일 08:11에 게시됨

Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!]

A. 게임 두 명의 플레이어가 번갈아가며 숫자를 제거하는 게임을 한다. 초기에 보드 위에 n개의 정수가 존재하며, 각 턴마다 한 명의 플레이어가 하나의 수를 지운다. 이 과정은 보드에 하나의 수만 남을 때까지 반복된다. 선공은 첫 번째 턴을 맡으며, 이후 턴은 플레이어가 번갈아 진행한다. 선공은 최종 남는 수를 최소화하고자 하며, 후공은 이를 최대화하려 한다. 두 ...

5월 20일 12:01에 게시됨