전체 글 131

ripgrep, rg

하위 디렉토리에서 정규식 패턴을 재귀적으로 검색하는 라인 지향 검색 도구ripgrephttps://github.com/BurntSushi/ripgreprust로 만들어진 크로스플랫폼 지향 grep 대체도구특징코드 검색에 특화되고 기본적으로 재귀적 디렉토리 검색 사용자동 필터링 : 기본적으로 디렉토리를 검색할 때 아래 조건은 검색하지 않음.gitignore .ignore .rgignore 명시되어 있는 파일은 기본적으로 검색하지 않음 → --no-ignore 로 회피 숨겨진 파일 및 디렉토리 → --hidden 로 회피바이너리 파일 (ripgrep은 NUL바이트 있으면 바이너리로 간주) → --text, -a 로 회피심볼릭 링크 연결 → --follow, -L 로 연결 전체 필터링을 회피하기 (단계별) ..

devops 2025.05.19

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

Jq 활용, Json to CSV 변환

jq 명령어를 통한 Json to CSV 변환Jq 명령어 활용https://stedolan.github.io/jq/jq is a lightweight and flexible command-line JSON processor.jq를 사용하여 JSON 배열과 NDJSON 형식의 데이터를 CSV 형식으로 변환하는 예제JSON 배열은 여러 개의 JSON 객체를 대괄호로 묶은 형식이고, NDJSON은 Newline Delimited JSON의 약자로, 한 줄에 하나의 JSON 객체를 나열한 형식 NDJSON은 MongoDB나 Elasticsearch 등에서 사용되는 데이터 형식Json 배열에서 CSV 데이터 변환[ { "fs": "/dev/mapper/vgubuntu-root", "type": "ex..

devops 2025.05.19

Multipass, Ubuntu VM 설정

Canonical 재단에서 지원하는 단일 명령으로 Ubuntu VM 구성 할 수 있는 도구 Multipasshttps://multipass.run/최소한의 오버헤드를 위한 각 플랫폼 지원 Windows : Hyper-VmacOS : QEMU, HyperKitLinux : LXDMultipass installhttps://multipass.run/install플랫폼 별 패키지 설치 방법# windows $ choco install multipass # macOS$ brew install multipass Multipass 주요 명령 및 VM Instance 생성주요 명령어launch : Ubuntu instance 생성 및 시작start, stop, restart : 시작 중지delete : Ubuntu ..

devops 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

K3S Overview

Lightweight Kubernetes : The certified Kubernetes distribution built for IoT & Edge computing특징https://k3s.io/Kubernetes의 경량화 버전으로 아래와 같은 특징 기본 설치만으로 바로 배포 테스트 가능Overlay Netowrk(Flannel), Load balancer, Ingress(Traefik), CoreDNS 등이 기본 설치 됨https://rancher.com/docs/k3s/latest/en/networking/etcd 대신 sqlite 운영High Availability with an External DBHigh Availability with Embedded DB (Experimental)Master..

devops 2025.05.19

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

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

dev 2025.05.19

MinIO Windows Service 등록

MinIO Windows Service 등록MinIO Service 등록WinSWhttps://github.com/winsw/winswWindows 실행 파일을 서비스로 래핑해주는 툴 .NET Framework / Core 기반 Windows 플랫폼에서 실행MinIO Servicehttps://github.com/minio/minio-service/tree/master/windowsWinSW 최신 Release 다운로드 및 XML 설정 파일 작성# choco install curl# 다운로드 $ curl -LO https://github.com/winsw/winsw/releases/download/v2.11.0/WinSW-x64.exe# rename$ move WinSW-x64.exe minio-serv..

devops 2025.05.19