개발자를 위한 추천 Vundle 플러그인 8가지
Vundle로 플러그인 매니저 자체는 갖췄어도, .vimrc에 아무것도 선언하지 않은 vim은 여전히 텍스트 편집기 수준을 벗어나지 못한다. 파일 탐색, git 상태 확인, 코드 자동완성, 린팅처럼 IDE에서는 당연하게 여기는 기능들은 결국 플러그인을…
Vundle로 플러그인 매니저 자체는 갖췄어도, .vimrc에 아무것도 선언하지 않은 vim은 여전히 텍스트 편집기 수준을 벗어나지 못한다. 파일 탐색, git 상태 확인, 코드 자동완성, 린팅처럼 IDE에서는 당연하게 여기는 기능들은 결국 플러그인을…
vim에서 플러그인을 쓰려면 원래는 ~/.vim/plugin, ~/.vim/autoload 같은 디렉터리 구조를 직접 이해하고, 저장소를 하나씩 git clone한 뒤 runtimepath까지 손으로 맞춰야 했다. 플러그인이 두세 개만 넘어가도 버전 관리, 업데이트, 제거 작업이 금방…
AOSP(Android Open Source Project)처럼 수백 개의 Git 저장소로 쪼개진 대형 프로젝트를 다뤄본 적이 있다면, 저장소 하나하나를 git clone하고 브랜치를 맞추고 동시에 pull하는 일이 얼마나 번거로운지 알 것이다. 저장소마다 리비전이 어긋나거나,…
서버에서 상시 실행되는 스크립트나 데몬을 만들 때 가장 흔한 실수는 nohup ./script.sh &나 crontab의 @reboot 항목으로 급하게 띄우는 것이다. 이런 방식은 서버가 재부팅되거나 프로세스가 죽었을 때 아무도 재시작해주지 않고, 로그는…
quilt로 관리하던 패치 세트를 Git 저장소로 옮길 때, 흔히 patches 디렉터리를 하나씩 quilt push로 적용하고 그때마다 git add -u, git commit을 반복하는 방법을 쓴다. 패치가 몇 개 안 되면 괜찮지만,…
Embedded SoC 중에는 HW 압축 Unit을 내장한 것들이 있고, 이런 유닛은 대개 리눅스 커널의 crypto subsystem에 압축 알고리즘으로 등록돼 zram 같은 모듈에서 바로 활용할 수 있다. 문제는 squashfs다. AppImage, snap,…
CMake로 여러 타깃을 나눠 빌드하다 보면 "라이브러리는 분명히 링크했는데 헤더를 못 찾는다"는 에러를 자주 마주친다. 원인은 대부분 target_link_libraries의 PUBLIC/PRIVATE/INTERFACE 키워드를 잘못 골랐기 때문이다. 이 세 키워드는 단순히 "링크한다/안 한다"가 아니라,…
C++ 프로젝트가 파일 몇 개를 넘어서면 컴파일 명령이 금방 복잡해진다. 소스 파일이 여러 디렉터리에 흩어지고, 라이브러리를 따로 빌드해서 링크해야 하고, 리눅스에서는 GCC, macOS에서는 Clang, 윈도우에서는 MSVC를 각각 다르게 호출해야 한다.…
Cloudways는 관리형 호스팅이라 편하지만 트래픽이 늘면 비용이 빠르게 올라간다. 같은 사양의 순수 VPS로 옮기면 비용을 크게 줄일 수 있는데, 이 글은 Cloudways에서 운영 중인 WordPress를 Vultr VPS(Ubuntu 24.04 + Nginx…
Linux 커널을 소스에서 빌드하다 보면 tools/objtool을 컴파일하는 단계에서 gelf.h 헤더를 찾지 못해 빌드가 중단되는 경우가 있다. objtool은 커널 빌드 시 오브젝트 파일의 제어 흐름을 분석해 ORC unwinder 테이블 생성, retpoline/livepatch…