2025/11 5

GNU Parallel: xargs를 넘어선 강력한 병렬 처리

리눅스 환경에서 대량의 데이터나 파일을 처리하다 보면, 단일 코어만 사용하는 쉘 스크립트의 성능 한계에 부딪히게 됩니다. xargs를 통해 어느 정도 병렬 처리가 가능하지만, 더 복잡하고 강력한 기능을 제공하는 도구가 바로 GNU Parallel입니다.🚀 parallel 개요GNU Parallel은 로컬 또는 원격 컴퓨터에서 작업을 병렬로 실행하기 위한 쉘 도구입니다. 덴마크의 Ole Tange가 Perl로 개발했으며, 표준 입력(stdin)이나 파일로부터 인자를 받아 명령어를 병렬로 실행합니다.가장 큰 특징은 xargs나 find -exec와 같은 기존 도구들의 사용성을 유지하면서도, 출력 제어, 작업 슬롯 관리, 원격 실행 등 고급 기능을 제공한다는 점입니다.⚙️ 주요 기능 및 내부 구현1. 출력 ..

devops 2025.11.25

Linux vs Windows 쓰레딩 모델 비교

쓰레드는 운영체제가 프로세스 내에서 작업을 병렬로 실행하기 위해 사용하는 기본 실행 단위입니다. 리눅스와 윈도우는 이 쓰레드를 관리하고 스케줄링하는 방식에서 서로 다른 모델을 채택하고 있으며, 이러한 차이는 시스템 성능과 프로그래밍 방식에 영향을 미칩니다.🐧 리눅스 쓰레딩 모델: N:1 및 1:1 혼합 (NPTL)리눅스는 역사적으로 다양한 쓰레딩 모델을 거쳐왔으나, 현재는 NPTL(Native POSIX Thread Library)이라는 1:1 모델과 N:1 모델의 장점을 결합한 형태가 주류입니다.1. 핵심 개념: 경량 프로세스 (LWP, LightWeight Process)리눅스 커널의 관점: 리눅스 커널은 프로세스와 쓰레드를 구분하지 않고, 모두 태스크(Task) 또는 경량 프로세스(LWP)로 취급..

dev 2025.11.24

Python 유용한 생산성 라이브러리

파이썬으로 개발할 때 생산성을 크게 향상시켜주는 유용한 라이브러리들을 소개합니다.tqdm간략 설명tqdm은 "taqaddum"의 약자로, 아랍어로 "진행"을 의미합니다. 긴 작업의 진행 상황을 시각적으로 보여주는 스마트한 프로그레스 바를 쉽게 추가할 수 있게 해주는 라이브러리입니다.사용 잇점작업의 진행률을 시각적으로 확인할 수 있어 대기 시간을 예측하고 지루함을 덜 수 있습니다.반복문(loop)에 간단하게 적용할 수 있어 코드 수정이 거의 필요 없습니다.처리 속도, 남은 시간 등 유용한 정보를 함께 표시해줍니다.설치pip install tqdm간략 예제 코드import timefrom tqdm import tqdmfor i in tqdm(range(100), desc="Processing"): ti..

dev 2025.11.18

nq: 가볍고 단순한 커맨드 라인 잡 큐(Job Queue) 시스템

리눅스나 macOS 환경에서 무거운 백그라운드 데몬 없이 간단하게 명령어 실행을 순차적으로 처리하고 싶을 때가 있습니다. at이나 batch 같은 전통적인 유틸리티도 훌륭하지만, 파일 시스템을 기반으로 더 직관적이고 가볍게 동작하는 nq는 훌륭한 대안이 될 수 있습니다.이 글에서는 nq의 기본 개념과 설치 방법, 그리고 실제 사용 사례를 통해 어떻게 명령어 큐를 관리하고 실행하는지 자세히 알아보겠습니다.nq란 무엇인가?nq는 'the nice queue'를 의미하는 것으로 보이며, 파일 시스템 기반의 간단한 커맨드 라인 큐 유틸리티입니다. 별도의 데몬 프로세스 없이, nq 명령어 자체가 백그라운드에서 순차적으로 작업을 처리합니다. 선행 작업이 끝나야 다음 작업이 시작되는 것을 보장해주므로, 여러 빌드 명..

devops 2025.11.17

Mackup으로 macOS 애플리케이션 설정 동기화하기

새로운 Mac을 설정하거나 여러 대의 Mac을 사용할 때마다 애플리케이션 설정을 일일이 다시 구성하는 것은 번거로운 일입니다. Mackup은 이러한 애플리케이션 설정 파일(dotfiles)을 iCloud, Dropbox, Google Drive 등과 같은 클라우드 스토리지에 백업하고, 필요할 때 손쉽게 복원하여 여러 기기 간의 설정을 동기화해주는 강력한 유틸리티입니다.이 글에서는 Mackup의 기본 개념부터 설치, 사용법, 그리고 고급 설정까지 자세히 다룹니다.Mackup이란 무엇이며 왜 필요한가?Mackup은 'Mac'과 'Backup'의 합성어로, 이름에서 알 수 있듯이 macOS 환경의 설정을 백업하고 동기화하는 데 특화된 도구입니다. 많은 애플리케이션들은 홈 디렉토리에 .zshrc, .vimrc,..

devops 2025.11.17