dev 28

Python uv 101

Python uv 가이드: 빠르고 강력한 패키지 관리 도구1. Python uv란?uv는 Astral에서 개발한 Python 패키지 및 프로젝트 관리 도구로, 기존 pip와 venv를 대체하거나 보완할 수 있도록 설계되었습니다. Rust로 작성되어 초고속 성능을 자랑하며, 통합적인 환경 관리와 의존성 해결 기능을 제공합니다. 주요 용도는 다음과 같습니다:Python 패키지 설치 및 관리가상 환경 생성 및 동기화의존성 잠금 및 프로젝트 관리기존 워크플로우 개선주요 기능초고속 성능: pip보다 10~100배 빠른 설치 속도통합 도구: 패키지 설치, 가상 환경 생성, 의존성 잠금을 단일 명령어로 처리글로벌 캐시: 동일한 의존성을 재사용해 디스크 공간 절약호환성: 기존 pip 및 venv와의 높은 호환성uv는 ..

dev 2025.05.20

MCP 101

Model Context Protocol 이해와 활용 MCP 101: Model Context Protocol 이해와 활용Model Context Protocol(MCP)은 AI 에이전트와 외부 도구를 연결하는 JSON-RPC 기반 프로토콜입니다. 이 글에서는 MCP의 개념, 사용 시기, 다른 API와의 차이점, 동적 디스크립션 확인 및 디버깅 방법(SSE, stdout, Inspector 포함), 그리고 mcp-filesystem을 활용한 파일 핸들링 예제를 다룹니다. 또한 Claude와 VSCode Cline을 사용한 테스트 방법과 프롬프트 예제를 제공합니다.1. MCP란 무엇인가?MCP(Model Context Protocol)는 AI 모델(예: LLM)이 파일 시스템, SaaS 앱, 데이터베이스..

dev 2025.05.20

C++ 메모리 할당기 - tcmalloc, jemalloc

멀티스레드 최적화 힙 메모리 할당기: tcmalloc, jemalloc이글 UPDATE : https://cdecl.tistory.com/304왜 멀티스레드 메모리 할당기가 중요한가?기본 메모리 할당기(glibc의 malloc, Windows의 HeapAlloc)는 범용성을 목표로 설계되었지만, 멀티스레드 환경에서는 다음과 같은 문제로 성능이 저하됩니다:락 경합(Lock Contention): 다중 스레드가 동시에 메모리를 할당/해제할 때 락으로 인한 대기 시간 증가.메모리 단편화(Memory Fragmentation): 빈번한 할당/해제로 메모리 사용 효율 저하.ABI 호환성 문제: 서로 다른 컴파일러나 표준 라이브러리 간 메모리 관리 방식 차이로 인한 런타임 오류.tcmalloc, jemalloc, ..

dev 2025.05.19

GCC 설치 (`macOS`, `Windows`)

macOS 및 Windows 에 GCC 설치하기 MAC OSbrew : macOS 용 패키지 관리자 https://brew.sh/index_kobrew 사용 gcc 설치 Command line tools 설치xcode 없이 개발툴 설치 $ xcode-select --installclang 이 설치되고 gcc로 심볼링 링크 걸려 있음 $ gcc -vConfigured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1Apple clang version 12.0.5 (clang-1205.0..

dev 2025.05.19

GNU C++로 정적 라이브러리 링크하는 방법

GNU C++ 프로그램에서 정적 라이브러리를 링크하는 방법정적 라이브러리 사용사용 시 고려 사항프로그램 크기 증가: 정적 라이브러리를 사용하면 실행 파일 크기가 크게 증가할 수 있슴라이브러리 업데이트: 정적 라이브러리를 사용하면 라이브러리 업데이트 시 프로그램을 다시 컴파일해야 필요사용 장점운영 체제 의존성 감소: 정적 라이브러리를 사용하면 프로그램 실행에 필요한 모든 라이브러리가 실행 파일에 포함되어 있어 운영 체제에 동일한 라이브러리가 설치되어 있지 않아도 프로그램을 실행보안 강화: 정적 라이브러리를 사용하면 공유 라이브러리 공격과 같은 보안 취약점에 대한 위험을 줄일 수 있음성능 향상: 정적 라이브러리를 사용하면 프로그램 실행 속도를 향상시킬 수 있음정적 라이브러리 링크링크 옵션-static C 런..

dev 2025.05.19

Golang, Cgo

Cgo enables the creation of Go packages that call C code.Cgohttps://pkg.go.dev/cmd/cgoGolang에서 C 코드를 통합 할 수 있도록 만든 의사 패키지 C코드 - Go 파일 통합예제import "C" 바로 윗 부분의 주석 /* */ or // 으로 C코드 작성C 함수, 변수 영역 접근시, C 의 패키지 명으로 접근 함수, 변수선언, #include 선행처리지시자 등 일반적인 C 코드cgo Cheat Sheet : https://gist.github.com/zchee/b9c99695463d8902cd33package main/*#include // printf#include // free (C.free)void pri..

dev 2025.05.19

C++ REST SDK(cpprestsdk) Sample

Introductionhttps://github.com/Microsoft/cpprestsdkMicrosoft에서 만든 클라이언트, 서버용 C++ HTTP 통신 모듈이며, JSON URI, 비동기, 웹소켓, oAuth 등을 지원 C++11의 비동기, 병렬 프로그램 모델 지원크로스 플랫폼 지원 등..cpprestsdk package install (w/ vcpkg)https://github.com/microsoft/vcpkgvcpkg 통해서 패키지 설치 # --triplet=x64-windows-static$ vcpkg.exe install cpprestsdk:x64-windows-static...The package cpprestsdk:x64-windows-static provides CMake targe..

dev 2025.05.19

CryotoPP Example

CryptoPPhttps://www.cryptopp.com/Crypto++ 사용하기, 예제{:target="_blank"}암호화 지식 (개발자){:target="_blank"}기존 작성한 내용(5.6 버전)의 최신화(8.5 버전) : 빌드 이슈 Package 설치vcpkg 사용 : 8.5.0$ ./vcpkg install cryptoppComputing installation plan...The following packages will be built and installed: cryptopp[core]:arm64-osx -> 8.5.0...The package cryptopp:arm64-osx provides CMake targets: find_package(cryptopp CONFIG R..

dev 2025.05.19