DuckDB CLI 및 SQL CheatSheet

DuckDB CLI 및 SQL CheatSheet - 주요 파일 포맷, DB Attach, HTTP/S3, Excel DuckDB CLI 및 SQL CheatSheet 가이드 1. DuckDB와 CLI/SQL 기능 소개 DuckDB는 고성능 분석 쿼리를 위해 설계된 인-프로세스, 컬럼 지향 OLAP 데이터베이스입니다. CLI와 SQL 인터페이스를 통해 CSV, Parquet, JSON, Excel 등의 파일 포맷을 처리하고, 데이터베이스를 관리하며, HTTP/S3와 같은 웹 기반 스토리지와 통합할 수 있습니다. 이 치트시트는 DuckDB의 CLI와 SQL 명령어를 중심으로 실용적인 예제와 모범 사례를 제공합니다. 주요 기능: ...

April 15, 2025 · Byung Kyu KIM

macOS Homebrew Cask, 추가 애플리케이션

macOS 애플리케이션 - personal installation 시스템 유틸리티 alt-tab (AltTab.app) 윈도우 스타일의 앱 전환기로, 모든 열린 창을 한눈에 보고 빠르게 전환할 수 있습니다. macOS의 기본 앱 전환 기능을 개선하여 생산성을 높이는 데 도움을 줍니다. linearmouse (LinearMouse.app) macOS용 마우스 커스터마이징 도구로, 스크롤 방향, 속도, 버튼 기능 등을 세밀하게 조정할 수 있습니다. 특히 서드파티 마우스 사용 시 macOS의 제한적인 마우스 설정을 보완해줍니다. rectangle (Rectangle.app) 키보드 단축키로 창 크기와 위치를 쉽게 조절할 수 있는 창 관리 도구입니다. 다중 모니터 환경에서 창 관리를 효율적으로 할 수 있어 작업 생산성을 크게 향상시킵니다. ...

November 17, 2024 · Byung Kyu KIM

tr, sed, sd 명령어 비교

강력한 텍스트 처리 도구인 tr, sed, 그리고 최신 도구인 sd에 대해 알아보고 비교해 보겠습니다. tr 명령어 tr은 ’translate’의 약자로, 문자열을 변환하거나 삭제하는 데 사용되는 간단하면서도 강력한 도구입니다. 주요 기능 대소문자 변환 특정 문자 삭제 문자 치환 연속된 문자 압축 기본 구문 tr [옵션] SET1 [SET2] 주요 옵션 -d: SET1에 지정된 문자 삭제 -s: SET1에 지정된 연속된 문자를 하나로 압축 -c: SET1의 보수 집합 사용 (지정되지 않은 모든 문자) 사용 예시 1. 대문자를 소문자로 변환: echo "HELLO WORLD" | tr 'A-Z' 'a-z' # 출력: hello world 2. 특정 문자 삭제: echo "Hello, World!" | tr -d 'o' # 출력: Hell, Wrld! 3. 공백을 탭으로 변환: echo "Hello World" | tr ' ' '\t' 4. 연속된 공백 압축: echo "Hello World" | tr -s ' ' # 출력: Hello World tr 명령어의 단점 복잡한 패턴 매칭 불가: 정규 표현식을 지원하지 않아 복잡한 패턴 매칭이 어렵습니다. 파일 직접 수정 불가: 입력 스트림만 처리할 수 있어 파일을 직접 수정할 수 없습니다. 대용량 파일 처리 어려움: 매우 큰 파일을 처리할 때 성능 저하나 실패가 발생할 수 있습니다. 문자 단위 처리: 문자열 단위가 아닌 문자 단위로 처리하기 때문에 특정 상황에서 제한적일 수 있습니다. sed 명령어 sed(Stream Editor)는 tr보다 더 복잡한 텍스트 처리 작업을 수행할 수 있는 도구입니다. ...

November 7, 2024 · Byung Kyu KIM

리눅스의 Init 시스템

리눅스의 Init 시스템: System V Init와 Systemd 비교 분석 및 docker 활용 개요 리눅스 시스템에서 운영체제 부팅 시 초기화를 담당하는 프로그램을 init 시스템이라고 합니다. 전통적인 System V Init와 현대적인 Systemd를 비교 분석하여, 시스템 초기화 방식의 발전과 실무적 영향을 살펴보겠습니다. System V Init와 Systemd의 역사적 배경 System V Init 1983년 Unix System V에서 처음 도입된 init 시스템으로, 당시 컴퓨팅 환경의 단순함에 맞춰 설계되었습니다. 이 시스템은 주로 서버와 메인프레임에서 사용되었으며, 런레벨 기반의 단순한 상태 전환을 제공했습니다. ...

November 3, 2024 · Byung Kyu KIM

xargs - 효율적인 명령어 인수 처리와 병렬 실행

xargs - 효율적인 명령어 인수 처리와 병렬 실행 xargs 명령어: 효율적인 명령어 확장과 파라미터 전달 xargs 명령어는 한 명령어의 출력을 다른 명령어의 인수로 전달할 때 유용하게 사용됩니다. 특히 명령어의 파라미터가 길어지거나 여러 파일, 디렉토리를 대상으로 명령어를 실행해야 할 때 xargs를 사용하면 성능과 효율성을 높일 수 있습니다. 주요 옵션과 활용 예시 1. 기본 사용법 xargs는 기본적으로 표준 입력에서 받은 데이터를 공백 또는 개행으로 구분하여 후속 명령어의 인수로 전달합니다. 예시: echo "file1 file2 file3" | xargs ls -l file1, file2, file3을 ls -l의 인수로 전달하여 파일의 상세 정보를 출력합니다. ...

October 27, 2024 · Byung Kyu KIM

sed - pattern capture substitute 활용

sed 명령어: 텍스트 패턴 캡처와 치환 활용법 sed는 파일이나 텍스트 스트림의 내용에서 특정 패턴을 찾아 변경하는 데 유용한 **스트림 편집기(Stream Editor)**입니다. 특히 정규 표현식 기능을 통해 텍스트의 특정 부분을 캡처하고 치환하는 기능이 강력합니다. 이번 글에서는 -E 및 -r 옵션을 사용하여 더 간편하게 캡처 그룹을 생성하고 치환하는 방법을 소개하겠습니다. 1. sed 명령어 정의 및 용도 sed는 파일이나 텍스트를 자동으로 조작하는 명령어로, 주로 Linux 및 Unix 환경에서 사용됩니다. sed는 스크립트 없이도 다양한 텍스트 처리 작업을 쉽게 수행할 수 있는 장점이 있으며, 주요 용도는 다음과 같습니다: ...

October 25, 2024 · Byung Kyu KIM

ARP 스푸핑, arpspoof와 fragrouter 사용법 원리

네트워크 보안 툴 arpspoof와 fragrouter 사용법 및 ARP 스푸핑 원리 1. ARP (주소 결정 프로토콜)란? 1. 정의 ARP`(Address Resolution Pro 이를 통해 로컬 네트워크에서 IP 패킷이 올바른 물리적 네트워크 장치로 전달될 수 있습니다. 2. 작동 원리 ARP는 다음과 같은 과정으로 작동합니다: ARP 요청 (Request) 송신 호스트가 목적지 호스트의 MAC 주소를 모를 때, ARP 요청 패킷을 브로드캐스트로 네트워크에 전송합니다. 이 요청 패킷에는 송신 호스트의 IP 주소와 MAC 주소, 그리고 목적지 호스트의 IP 주소가 포함되어 있습니다. ARP 응답 (Reply) 네트워크에 있는 모든 호스트가 이 ARP 요청을 수신합니다. 요청된 IP 주소를 가진 호스트는 자신의 MAC 주소를 포함한 ARP 응답 패킷을 송신 호스트에게 유니캐스트로 전송합니다. 주소 매핑 송신 호스트는 ARP 응답을 수신하고, 해당 IP 주소와 MAC 주소의 매핑을 ARP 캐시(테이블)에 저장합니다. 이후 동일한 IP 주소로의 통신이 발생할 때, ARP 캐시를 참조하여 MAC 주소를 빠르게 확인할 수 있습니다. 3. ARP 캐시 ARP 캐시는 IP 주소와 MAC 주소의 매핑을 일시적으로 저장하는 테이블입니다. 이를 통해 같은 IP 주소에 대한 반복적인 ARP 요청을 방지하고, 네트워크 성능을 향상시킬 수 있습니다. 그러나 ARP 캐시는 보통 일정 시간이 지나면 항목이 만료됩니다. ...

June 26, 2024 · Byung Kyu KIM

Docker 네트워크 - Macvlan

Docker Macvlan 네트워크 소개, 활용 및 이슈 1. Docker Macvlan 네트워크? Macvlan 네트워크는 컨테이너에 독립적인 네트워크 인터페이스를 제공하여 물리적 네트워크와 직접 상호작용 가능 이는 각 컨테이너가 고유한 MAC 주소를 가지므로 네트워크 수준에서 완전히 독립된 호스트처럼 동작 가능 호스트 머신과 같은 네트워크에 docker 컨테이너를 생성 목적 Macvlan 네트워크 설정은 물리적 네트워크 환경에 따라 적절한 서브넷과 게이트웨이를 사용 필요 (e.g. DHCP 환경) Macvlan 구성 네트워크 성능 향상: 호스트의 NAT를 거치지 않아 성능이 향상 네트워크 격리: 각 컨테이너가 고유한 MAC 주소를 가져 네트워크 레벨에서 완전히 격리 기존 네트워크와의 통합: 기존 물리적 네트워크 인프라와 쉽게 통합 Docker 네트워크 유형 브리지 네트워크 (Bridge Network) 기본 네트워크 모드로, Docker가 기본적으로 사용하는 네트워크입니다. 내부 네트워크를 생성하여 컨테이너 간의 통신을 가능하게 합니다. 호스트와 컨테이너 간의 통신은 NAT(Network Address Translation)를 사용합니다. 호스트 네트워크 (Host Network) 컨테이너가 호스트의 네트워크 스택을 공유합니다. 성능이 중요한 애플리케이션에서 사용될 수 있습니다. 컨테이너와 호스트 간의 네트워크 격리가 없습니다. None 네트워크 (None Network) 네트워크 연결이 없는 컨테이너를 생성합니다. 네트워크 격리가 필요한 경우에 유용합니다. 2. Macvlan 네트워크 설정 설치 요구 사항 Docker가 설치된 시스템, 루트 권한 또는 Docker 관리 권한 ...

June 25, 2024 · Byung Kyu KIM

Nmap vs. Netcat

Nmap vs. nc (Network Mapper vs. Netcat) 네트워크 스캐닝 도구로서 비교 Nmap vs. nc (Netcat): 네트워크 스캐닝 도구 비교 Nmap (Network Mapper) 네트워크 스캐닝 및 보안 평가 도구로, 대규모 네트워크에서 호스트, 서비스, 오픈 포트를 탐지하는 데 사용 네트워크 호스트, 서비스, 오픈 포트 스캐닝, 운영 체제 감지, 버전 감지, 서비스 식별 등 다양한 네트워크 탐지 및 보안 평가 기능 옵션 설명 예제 -p 특정 포트를 스캔합니다 nmap -p 80,443 192.168.1.100 -p- 모든 포트를 스캔합니다 nmap -p- 192.168.1.100 -sV 서비스 버전을 탐지합니다 nmap -sV 192.168.1.100 -O 운영 체제를 탐지합니다 nmap -O 192.168.1.100 -sS TCP SYN 스캔을 수행합니다 nmap -sS 192.168.1.100 -sU UDP 포트를 스캔합니다 nmap -sU 192.168.1.100 -T4 스캔 속도를 높입니다 nmap -T4 192.168.1.100 -A 공격적 스캔을 수행합니다 (OS, 서비스 탐지) nmap -A 192.168.1.100 -oN 스캔 결과를 일반 텍스트 파일로 저장합니다 nmap -oN scan_results.txt 192.168.1.100 -oX 스캔 결과를 XML 파일로 저장합니다 nmap -oX scan_results.xml 192.168.1.100 -oG 스캔 결과를 그레프블(grepable) 형식으로 저장합니다 nmap -oG scan_results.gnmap 192.168.1.100 -oA 모든 형식으로 스캔 결과를 저장합니다 (N, X, G 파일) nmap -oA scan_results 192.168.1.100 -v 스캔 중 자세한 출력을 제공합니다 nmap -v 192.168.1.100 -vv 매우 자세한 출력을 제공합니다 nmap -vv 192.168.1.100 -Pn 호스트가 응답하지 않더라도 스캔을 수행합니다 nmap -Pn 192.168.1.100 --open 열린 포트만 출력합니다 nmap --open 192.168.1.100 --reason 포트 상태 결정의 이유를 출력합니다 nmap --reason 192.168.1.100 --script NSE(Nmap Scripting Engine) 스크립트를 실행합니다 nmap --script default 192.168.1.100 --exclude 특정 IP 주소를 제외하고 스캔합니다 nmap -sn 192.168.1.0/24 --exclude 192.168.1.1 --max-retries 재시도 횟수를 지정합니다 nmap --max-retries 2 192.168.1.100 nc (Netcat) 네트워크 연결 도구로, TCP/IP 소켓을 직접 다루는 데 사용되며, 데이터 전송, 포트 스캐닝, 포트 열기 및 메시지 전송 등의 작업을 수행할 수 있음 ...

June 17, 2024 · Byung Kyu KIM

Homebrew, Formulae와 Cask의 차이점

Homebrew는 macOS와 Linux에서 소프트웨어를 쉽게 설치하고 관리할 수 있는 패키지 관리자. Homebrew https://brew.sh/{:target="_blank"} Homebrew는 macOS와 Linux에서 소프트웨어 패키지를 간편하게 설치하고 관리할 수 있는 패키지 관리자 Homebrew에는 두 가지 주요 설치 방법인 Formulae와 Cask가 있습니다. Formulae와 Cask의 차이점과 동일한 애플리케이션이 두 가지 방법으로 제공되는 예시를 설명 Homebrew 설치 macOS $ brew --version # 설치 확인 Linux $ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" $ brew --version # 설치 확인 Homebrew 주요 명령어 Formulae 설치 (CLI 애플리케이션) brew install <package-name> 예: wget 설치 ...

June 7, 2024 · Byung Kyu KIM