아카이브
- 06 / 09 Markdown 링크 문법 — 상대경로·절대경로·앵커와 Jekyll·Obsidian 호환
- 06 / 09 딥스 0개 초보의 첫 1개 만들기 — 지지 버티기부터 보조 딥스까지
- 06 / 09 턱걸이 0개 초보의 첫 1개 만들기 — 매달리기부터 보조 네거티브까지
- 05 / 09 Xmx는 8GB인데 Java 프로세스 RSS가 9GB를 넘는 이유
- 05 / 09 🪟 Windows 패키지 매니저 — Winget·Scoop·Chocolatey, 무엇을 어디에 쓸까
- 05 / 09 Tailwind CSS + SCSS Modules 스타일링 기준
- 05 / 09 Neovim에서 리팩토링 후보 찾기 — 긴 함수·복잡도·중복 코드를 일일이 찾지 않는 방법
- 05 / 09 Vertica에서 쓸 만한 터미널 DB 클라이언트는 무엇일까?
- 05 / 09 tmux와 SSH까지 연결한 터미널 전체 스택
- 05 / 09 Neovim은 왜 TUI 앱이면서 UI 플랫폼인가
- 05 / 09 실제 TUI 앱은 어느 추상화 계층에 서 있나 — fzf부터 OpenCode까지
- 05 / 09 현대 TUI 프레임워크 비교 — 무엇을 얼마나 추상화하는가
- 05 / 09 TUI 엔진의 공통 구조 — 이벤트 루프에서 렌더링까지
- 05 / 09 curses와 ncurses — 터미널 제어가 화면·창 추상화로 올라온 순간
- 05 / 09 termcap과 terminfo — 터미널마다 다른 제어 코드를 어떻게 숨겼나
- 05 / 09 ANSI/VT Escape Sequence — 표준 출력으로 커서를 움직이고 화면을 그리는 법
- 05 / 09 termios와 raw mode — Ctrl-C는 언제 문자가 아니라 signal이 되는가
- 05 / 09 터미널은 무엇인가 — TTY에서 PTY까지
- 05 / 09 터미널 로드맵 — TTY·PTY에서 현대 TUI까지
- 05 / 09 TUI의 역사와 현대 프레임워크 — ncurses에서 OpenTUI까지
- 04 / 09 Yazi는 단순한 파일 탐색기가 아니다: 터미널 파일 관리와 확장 구조
- 01 / 09 Git 상태 감지 — dirty와 ahead는 서로 다른 축이다
- 01 / 09 Conventional Commits — 공식 규격과 팀 스타일 규칙을 분리해서 보기
- 31 / 08 Harlequin용 H2 JDBC 어댑터를 만들어 PyPI에 배포하기
- 31 / 08 Harlequin용 Vertica ODBC 어댑터를 만들어 PyPI에 배포하기
- 31 / 08 Codex 사용량이 리셋 날짜 전에 100%로 돌아오는 이유
- 30 / 08 Obsidian Plugin Architecture 이해하기
- 30 / 08 iPad에서 GitHub 저장소를 Obsidian으로 동기화하기
- 26 / 08 top, htop, btop으로 Linux CPU·메모리·프로세스 확인하기
- 22 / 08 Serena 트러블슈팅 — 다중 클라이언트·대시보드·JDTLS 오류
- 12 / 08 git-delta 사용법 — Git diff를 읽기 좋게 만드는 pager
- 12 / 08 자동 생성 테스트를 신뢰하기 전에 확인할 체크리스트
- 28 / 07 nohup로 띄운 dev 서버가 멈춘 것처럼 보이는 이유와 복구
- 16 / 07 Claude Code 웹은 내 글로벌 룰을 안 읽는다 — 한 원본에서 여러 repo로 배포하기
- 15 / 07 Neovim에서 [[위키링크]] 따라가기·백링크 — 어떤 플러그인? (그리고 vimwiki 함정)
- 14 / 07 tmux 창 전환 직후 pane 이동이 씹힐 때 — bind -r repeat-time의 함정
- 14 / 07 AeroSpace 서비스 모드 — 저빈도·위험 동작을 별도 모드로 격리하는 설계
- 14 / 07 macOS 데스크톱 알림을 osascript로 쏘기 — 그리고 안 뜰 때 (귀속 함정)
- 14 / 07 tmux 트루컬러가 이미 되는 이유 — tmux_conf_24b_colour=auto와 Tc/RGB terminfo
- 13 / 07 snacks.dashboard 헤더 다색으로 칠하기 — 그리고 평면 ASCII 아트의 레이어 한계
- 13 / 07 claude.ai 웹 지형 — Projects·Artifacts·Customize에서 Code·Routines까지
- 13 / 07 tmux엔 왜 pane '병합(merge)'이 없을까 — pane은 살아있는 프로세스다
- 13 / 07 람다와 클로저 — 캡처·std::function·제네릭 람다
- 13 / 07 예외 처리 — try·catch·throw와 예외 안전 3등급
- 12 / 07 Neovim과 PKM — Obsidian·org-mode, 무엇을 왜 쓰나
- 12 / 07 Neovim DAP — LSP의 형제, 디버깅용 프로토콜
- 12 / 07 Git hunk이란 — diff 덩어리와 부분 스테이징(git add -p)
- 12 / 07 GitHub Star vs Watch — 북마크와 알림 구독의 차이
- 12 / 07 GitHub에서 내가 관여한 Issue·PR 찾기 — involves, commenter, review 검색
- 12 / 07 gradle bootRun에 JVM 옵션 넘기기 — --args와 jvmArguments가 다른 이유
- 12 / 07 🔀 sesh — fzf·zoxide로 즉석 tmux 세션 전환 (부트스트래퍼에서 피커로)
- 12 / 07 Rust Tooling — Cargo·crate·module·rustfmt·Clippy
- 12 / 07 동시성 ⑨ thread·Send/Sync·async — fearless concurrency
- 12 / 07 소유권 심화 ⑧ 스마트 포인터 — Box·Rc·RefCell
- 12 / 07 관용구 ⑦ 반복자·클로저 — Rust다움의 본체
- 12 / 07 Oh My Tmux! — 완성형 tmux config 배포판, 무엇을 바꾸고 어떻게 커스텀하나
- 12 / 07 추상화 ⑥ trait·제네릭 — 인터페이스와 템플릿을 하나로
- 12 / 07 흐름 ⑤ error 처리 — Result·Option·?
- 12 / 07 타입 ④ 컬렉션·String vs &str — 소유권이 다시 붙는 곳
- 12 / 07 타입 ③ struct·enum·match — 데이터를 품는 enum
- 12 / 07 핵심 ② 소유권·빌림·수명 — borrow checker와 싸우는 구간
- 12 / 07 기초 ① 문법·불변성·cargo — C++과 다른 기본 태도
- 12 / 07 Rust 학습 로드맵 — 소유권에서 Rust다운 API까지
- 12 / 07 Go Tooling — build·test·fmt·mod·vet을 언제 쓰나
- 12 / 07 실전 ⑥ 표준 라이브러리·관용구·testing — Go답게 쓰기
- 12 / 07 동시성 ⑤ goroutine·channel·context — Go의 정체성
- 12 / 07 흐름 ④ error·defer·panic/recover — 실패와 정리의 역할 분리
- 12 / 07 타입 ③ slice·map·string — 겉은 C++ 컨테이너, 속은 다르다
- 12 / 07 타입 ② struct·method·interface — 클래스 없이 사고하기
- 12 / 07 기초 ① 문법·패키지·모듈 — C++과 다른 뼈대 규칙
- 12 / 07 Go 학습 로드맵 — C++ 습관을 내려놓고 Go답게 쓰기
- 12 / 07 LazyVim 밖의 인기 Neovim 플러그인 — 기본값의 대안과 2025-2026 라이저
- 11 / 07 리눅스 네트워크 기초: ip, ss로 갈아타기 + DNS 진단
- 11 / 07 tmux 훅의 두 함정 — #{window_id}와 pane-exited가 안 잡는 kill-pane
- 11 / 07 디스크 꽉 찼을 때: df, du, lsof로 범인 찾기 + mount·fstab 기초
- 11 / 07 systemd 서비스 관리: systemctl, 유닛 파일, 부팅 등록과 타이머
- 11 / 07 SSH 서버 접속과 하드닝: 키 인증, sshd_config, 잠기지 않고 문 잠그기
- 11 / 07 리눅스 로드맵 — 접속하고, 관측하고, 계정·권한을 다루고, 서비스를 띄우고, 로그를 읽는 순서
- 11 / 07 특수 권한 비트: SUID, SGID, Sticky Bit — passwd는 왜 root로 실행되나
- 11 / 07 필수 그다음 — 요즘 얹는 tmux 플러그인 (테마·추출·퍼지)
- 11 / 07 비밀번호 정책과 PAM: 만료·최소 길이·복잡도·계정 잠금 강제하기
- 11 / 07 리눅스 로그는 어디에 쌓이나: syslog(rsyslog)와 journald
- 11 / 07 tmux copy-mode 선택을 AI 에이전트 pane으로 — Y 한 키로 marked pane에 전송
- 11 / 07 리눅스 방화벽 기초: firewalld와 ufw, 그리고 그 아래의 nftables
- 11 / 07 로그인 기록 추적하기: who, w, last, lastlog, utmp/wtmp/btmp
- 11 / 07 su vs sudo, 그리고 wheel 그룹 — 리눅스 권한 상승 제대로 이해하기
- 11 / 07 🪶 smug — 의존성 없는 미니멀 tmux 세션 매니저 (프리셋에 없는 레이아웃까지)
- 11 / 07 리눅스 사용자·그룹 관리: useradd, usermod, sudo, /etc/passwd·shadow
- 09 / 07 화면이 반씩 나뉠 때 — 터미널/tmux 3계층 진단
- 09 / 07 tmux로 AI 에이전트 여러 개 관제하기 — herdr 대신 훅 기반 플러그인을 고른 이유
- 09 / 07 🧩 tmux 플러그인은 어떻게 만드나 — CLI가 곧 API
- 08 / 07 Neovim 여러 줄 메시지와 hit-enter 프롬프트 (cmdheight)
- 08 / 07 bare git repo · yadm로 dotfiles 관리하기 — 심링크 없이 홈을 워크트리로
- 08 / 07 macOS가 갑자기 ~/Desktop 접근을 막을 때 — TCC 권한 리셋
- 08 / 07 grep이 한글을 못 찾을 때 — LC_ALL=C와 멀티바이트 문자 클래스
- 08 / 07 dotfiles 로드맵 — 설정을 코드로 재현하는 방법
- 08 / 07 chezmoi 사용법 — 소스 표현과 apply 흐름
- 08 / 07 Git Branch 통합에서 non-fast-forward가 날 때 — local과 origin의 History부터 비교하기
- 08 / 07 chezmoi vs 심링크 dotfiles — Link와 Render는 무엇이 다른가
- 08 / 07 심링크 dotfiles → chezmoi 이관 중 겪은 함정들
- 08 / 07 snacks explorer의 focus는 nvim cwd를 안 바꾼다 — 트리에서 lazygit이 엉뚱한 곳에서 열릴 때
- 08 / 07 Neovim 0.11+ LSP 3계층 — mason·lspconfig·vim.lsp의 역할
- 08 / 07 jenv version is not installed — Homebrew Cellar 경로가 깨지는 이유
- 04 / 07 첫 셸 스크립트 만들고 실행하기 — shebang·실행 권한·PATH
- 03 / 07 MCP 서버 더 붙이기 — claude mcp add와 쓸 만한 서버들
- 03 / 07 Claude API 기초 — 모델·메시지·스트리밍·도구·프롬프트 캐싱
- 03 / 07 Claude Code hooks — 도구 실행 흐름에 셸 끼우기 (포맷·차단·알림)
- 03 / 07 Claude Code 실전 워크플로 — 플랜 모드·서브에이전트·병렬·헤드리스
- 03 / 07 AI 코딩 도구 지형도 — Claude Code·OpenCode·Cursor·Codex·Aider 어떻게 다른가
- 03 / 07 AI 개발 지형 — 코딩 도구·외부 연결·API 개발의 세 축
- 03 / 07 macOS에서 Wi-Fi 전환 직후 정적 라우트가 잘못 잡힐 때
- 03 / 07 zoxide로 디렉토리 이동 빠르게 — autojump 대체
- 03 / 07 Karabiner-Elements — macOS 소프트웨어 키맵 레이어
- 03 / 07 PostgreSQL 실행계획(EXPLAIN) 노드·필드 사전 — 무엇이 보이면 무슨 뜻인가
- 03 / 07 Raycast를 검색 계층으로 한정하기 — AeroSpace·Hammerspoon과 안 겹치게 쓰는 법
- 03 / 07 NoSQL 개요 — 문서·키밸류·컬럼·그래프, 언제 RDB 대신 쓰나
- 03 / 07 DB 앞단 캐싱 전략 — Redis 캐시 레이어와 무효화
- 03 / 07 정규화와 스키마 설계 — 1NF부터 BCNF, 그리고 역정규화 트레이드오프
- 03 / 07 macOS 로드맵 — 셋업·런처·창 관리의 세 갈래
- 03 / 07 JPA/ORM 핵심 — 영속성 컨텍스트·지연 로딩·N+1
- 03 / 07 VIA·VIAL 실전 — 컴파일 없이 GUI로 키맵 바꾸기
- 03 / 07 분산 DB 확장 — 샤딩·분산 트랜잭션(2PC/Saga)·합의(Raft)
- 03 / 07 PostgreSQL 모니터링 — 증상에서 pg_stat으로 원인 좁히기
- 03 / 07 AeroSpace 워크스페이스에 정보 오버레이 붙이기 — Hammerspoon 비동기 알림
- 03 / 07 QMK로 키맵 짜기 — keymap.c와 빌드 환경
- 03 / 07 PostgreSQL PITR와 백업 전략 — WAL 아카이빙·pg_basebackup·시점 복구
- 03 / 07 PostgreSQL 복제와 고가용성 — 스트리밍 복제·읽기 복제본·failover
- 03 / 07 ZMK 키매핑 가이드 — 포크부터 플래싱까지, 내 키맵을 보드에 올리기
- 03 / 07 쿼리 튜닝 실전 — 페이지네이션(keyset vs offset)과 N+1
- 03 / 07 Rectangle.app을 Hammerspoon으로 대체하기 — 화면 내 창 분할
- 03 / 07 테이블 파티셔닝 — 대용량 테이블을 나누는 기준과 파티션 프루닝
- 03 / 07 키맵 용어집 — combo·hold-tap·momentary, 레이어 키매핑 용어 정리
- 03 / 07 MVCC와 VACUUM — 격리 수준은 어떻게 구현되고 왜 청소가 필요한가
- 03 / 07 쿼리 옵티마이저 작동 원리와 실행계획(EXPLAIN) 읽기
- 03 / 07 새 맥에 더 얹을 보조 유틸 — 메뉴바·모니터·스크린샷·디스플레이·터미널
- 03 / 07 AeroSpace + Hammerspoon — 창을 한 번에 제자리로 재정렬하기
- 03 / 07 키보드 펌웨어 지형도 — QMK·ZMK와 그 위의 VIA·VIAL
- 03 / 07 RDB 인덱스 완전 정리 — B-tree 구조부터 인덱스가 안 타는 이유까지
- 03 / 07 낯선 셸 스크립트 읽기: Bash·Zsh·POSIX 함정
- 03 / 07 AltTab — 타일링 WM의 빈틈을 메우는 창 전환기
- 03 / 07 키보드 로드맵 — 손버릇에서 Firmware·Keymap까지
- 03 / 07 셸 로드맵 — 실행 모델에서 스크립트와 세션까지
- 03 / 07 Hammerspoon 기본 — init.lua·hs API·ipc CLI·모듈 구조
- 03 / 07 AeroSpace 기본 — 워크스페이스·단축키·on-window-detected
- 03 / 07 HHKB 입문 — 미니멀 배열의 철학과 프로그래머가 사랑하는 이유
- 03 / 07 Rectangle.app 기본 — 가장 쉬운 macOS 창 분할
- 03 / 07 macOS 시스템 설정 — 세벌식·트랙패드·터미널·앱 권한
- 03 / 07 dotfiles를 git 저장소 + 심볼릭 링크로 관리하기
- 03 / 07 세벌식 390 입문 — 왜 세벌식인가, 그리고 숫자 넘패드까지 딸려오는 자판
- 03 / 07 Homebrew Brewfile로 패키지 선언적으로 관리하기
- 03 / 07 ZMK 키맵 설계기 — HHKB + 40% + 세벌식 390, 그리고 실수로 안 눌리게 만들기
- 03 / 07 C++ 컴파일·링킹과 CMake — Source에서 Executable까지
- 03 / 07 모던 문법 ⑦ auto·constexpr와 표준 라이브러리
- 03 / 07 macOS CLI 개발 도구 모음 — Brewfile로 관리하는 터미널 툴킷
- 03 / 07 동시성 ⑥ 스레드와 비동기
- 03 / 07 제네릭 ⑤ 템플릿
- 03 / 07 STL ④ 컨테이너와 알고리즘
- 03 / 07 값과 소유권 ③ 이동 시맨틱과 스마트 포인터
- 03 / 07 CAP 정리 — P는 고르는 게 아니라 주어진다
- 03 / 07 객체지향 ② 클래스와 자원 관리
- 03 / 07 C++로 사고하기 ① 참조자와 동적 할당
- 03 / 07 nginx 실무 설정 패턴 — 리버스 프록시부터 SSL 종단까지
- 03 / 07 모던 C++ 학습 로드맵 — 객체 수명에서 모던 C++까지
- 03 / 07 ORA-12514 리스너 서비스 오류의 원인과 해결
- 03 / 07 PostgreSQL 메이저 업그레이드 14→17 — pg_upgrade 실전 절차
- 03 / 07 터미널 한글 깨짐, 3층위로 구분하기 — 명령이 실행되느냐로 원인을 가른다
- 03 / 07 vim.api 아래층 — nvim_* API·MessagePack-RPC·LuaJIT
- 03 / 07 LazyVim 사용자가 본 Emacs — 에디터가 아니라 Elisp 런타임
- 03 / 07 🌀 tmux — 터미널 열 때마다 새 세션이 생기는 이유 (attach -t 함정)
- 03 / 07 Telescope vs fzf — 퍼지 파인더의 경계선
- 19 / 06 Neovim 플러그인 문서화 — vimdoc 포맷과 panvimdoc
- 19 / 06 Neovim 플러그인 비동기 — vim.system · jobstart · vim.uv
- 19 / 06 Neovim autocommand·이벤트 심화 — 플러그인은 이벤트로 움직인다
- 19 / 06 Neovim 플러그인의 본체 — 버퍼·윈도우·extmark 조작
- 19 / 06 Neovim의 vim 전역 API 지도 — vim.api vs vim.fn, 옵션·매핑·커맨드
- 19 / 06 lazy.nvim 플러그인 spec 필드 완전 정리 — 로드 트리거 / init·opts·config / 의존성
- 18 / 06 Neovim 플러그인 테스트 방법 — plenary / mini.test / busted+nlua
- 17 / 06 jvm-env.nvim 발행 회고 — 첫 OSS Neovim 플러그인의 보강 사이클과 awesome-neovim 등록
- 17 / 06 Copilot Business + CopilotChat.nvim "Model not found" 진단
- 16 / 06 Neovim 로드맵 — Vim 바닥에서 LazyVim과 Plugin 개발까지
- 16 / 06 tmux 로드맵 — 세션 관리의 핵심과 선택 확장
- 16 / 06 셸 백그라운드 잡: &, nohup, disown, tmux의 차이
- 16 / 06 프로세스 찾고 종료하기: pgrep, pkill, pidof, lsof, kill
- 16 / 06 LazyVim에서 특정 LSP의 server_capabilities 한 줄로 끄기
- 16 / 06 Neovim을 어디서 시작할까 — Vanilla / kickstart.nvim / LazyVim 비교
- 16 / 06 kotlin-language-server가 import를 못 잡을 때 — kls_database.db 캐시 삭제
- 16 / 06 Jekyll·Chirpy 운영 트러블슈팅 — 카테고리, 미래 시각, sudo 권한 문제
- 15 / 06 Neovim 프로젝트별 로컬 설정 가이드 — exrc · .nvim.lua · trust · dotfiles 모듈 재사용
- 15 / 06 Lua 에러 처리
- 15 / 06 Vimscript 종합 가이드 (legacy)
- 15 / 06 Lua 종합 가이드 (Neovim 컨텍스트)
- 15 / 06 Lua 모듈
- 15 / 06 Lua 메타테이블
- 15 / 06 Neovim LSP가 안 붙을 때 — 헤드리스 모드로 attach 검증하기
- 15 / 06 Gradle 테스트 로그가 안 찍히는 이유 — UP-TO-DATE 캐시와 testLogging 기본값
- 13 / 06 Spring Boot Undertow에서 HTTP·HTTPS 듀얼 포트 + 강제 리다이렉트
- 13 / 06 Spring Boot + MyBatis로 두 개의 데이터소스 쓰기
- 13 / 06 List를 Map으로 — Stream Collectors.toMap
- 13 / 06 HashMap 합치기 — putAll vs merge
- 13 / 06 Apache POI로 엑셀 파일 읽기 — Workbook/Sheet 유틸
- 12 / 06 Jekyll Chirpy 테마에 포스트 조회수 위젯 붙이기 — 왜 GoatCounter 외엔 선택지가 없나
- 12 / 06 fork 없이 복사로 시작한 Jekyll Chirpy 블로그 upstream 동기화
- 12 / 06 Lua vs Vimscript 성능 — 정량 차이와 체감되는 영역
- 12 / 06 lazygit nvim-remote preset의 cmd 분기 부재 — 본체로 거슬러 올라가 이슈 제기
- 12 / 06 한 Neovim 플러그인에 Lua와 Vimscript 섞기 — 분담 기준과 안티패턴
- 12 / 06 Neovim 플러그인을 Lua로 짤까 Vimscript로 짤까 — 언어 선택 기준
- 12 / 06 Neovim 플러그인 작성 규칙 — runtimepath 디렉토리 관례 정리
- 12 / 06 vim-dadbod 어댑터 플러그인 만들기 — 디렉토리 골격부터 dadbod-ui 트리 통합까지
- 12 / 06 awesome-neovim에 내 플러그인 PR 보내기 — gh CLI로 한 번에
- 12 / 06 직접 만든 Neovim 플러그인 노출시키기 — 4가지 채널 비교
- 11 / 06 Neovim swap 파일 안전하게 정리하기
- 10 / 06 tmux 시스템 클립보드 — set-clipboard on 한 줄, pbcopy 경로의 함정(한글 깨짐·server 환경)
- 10 / 06 CLI 인자 컨벤션 — positional과 --flag는 왜 섞어 쓰나
- 09 / 06 LazyVim의 Git 플러그인 구성 — gitsigns · lazygit · snacks
- 09 / 06 비정형 도메인 RECORD_ID를 레벨 테이블에 사전 적재하여 조회 성능 개선
- 09 / 06 Spring SSE 성능 문제 — Thread.sleep과 emitter 덮어쓰기
- 08 / 06 gh repo create --push에서 저장소만 생성되고 Push가 실패할 때
- 08 / 06 Neovim floating window + tmux 이동/복귀 포커스 문제 해결
- 08 / 06 legacy kotlin-language-server v1.3.13 documentHighlight 크래시
- 08 / 06 GitHub 저장소 정리와 Contribution 보존 — 삭제 전에 검증해야 할 것
- 08 / 06 GitHub Fork vs Use this template — 관계를 이어갈 것인가, 출발점만 복사할 것인가
- 08 / 06 Vim vs Neovim vs 배포판 — 기능은 어느 계층에서 오는가
- 08 / 06 LFS Object가 사라진 저장소를 Subtree로 가져올 때 실패하는 이유와 복구
- 07 / 06 LazyVim 기능 지도 — Git·검색·LSP·완성을 만드는 플러그인 묶음
- 07 / 06 LazyVim 의존성 계층 — lazy.nvim → core → extras → 사용자 plugin이 합쳐지는 방식
- 07 / 06 LazyVim 주요 플러그인 정리 — UI / 편집 / Git / 진단 / LSP
- 07 / 06 brew cleanup 후 java_home이 JDK를 못 찾을 때 — Cellar가 아니라 opt를 연결한다
- 07 / 06 AeroSpace 단축키가 갑자기 안 될 때 — macOS Secure Input 확인하기
- 07 / 06 passwd 직후 su 인증이 실패할 때 점검 순서
- 07 / 06 JPA 메모 — N+1, Hibernate 캐시, 직접/간접 참조, Element Collection
- 07 / 06 Kibana 개념 정리 — Saved Objects, Lens, Alerting, 7.x vs 8.x
- 05 / 06 CopilotChat.nvim Model not found 에러 — :CopilotChatModels로 Auto 선택
- 01 / 06 GitHub Contribution이 누락될 때 — Author Email부터 History Rewrite까지
- 21 / 05 webpack-dev-server AggregateError — localhost Dual-stack·Port Listen 경계 진단
- 20 / 05 jenv local 11인데 Java 17 바이트코드가 나올 때 — Gradle JVM과 Target 분리하기
- 20 / 05 Gradle 데몬이 옛 환경변수를 들고 있을 때
- 15 / 05 Windows에서 포트가 '갑자기' 안 잡히면 Hyper-V 동적 예약 범위부터 확인
- 15 / 05 NoClassDefFoundError — 라이브러리가 transitive 의존성을 POM에 선언 안 한 경우
- 15 / 05 GitHub Packages 인증 실패 시 3단계 단계별 검증
- 14 / 05 nginx는 언더스코어가 들어간 요청 헤더를 기본적으로 버린다
- 13 / 05 Windows에서 WiFi(인터넷) + Ethernet(사내망) split routing
- 11 / 05 Java Lock 종류 비교 — synchronized부터 StampedLock까지
- 08 / 05 nvim-treesitter "..<" query 에러 — 파서 버전 불일치부터 main 브랜치/0.12 함정까지
- 07 / 05 LazyVim extra의 플러그인 spec에 의존성만 보강하기
- 07 / 05 Windows Git Bash의 ln -s는 native symlink가 아니라 복사로 fallback된다
- 06 / 05 vim-dadbod + PostgreSQL .pgpass 인증 (Windows)
- 06 / 05 vim-dadbod-ui dbout 결과창 레이아웃 커스터마이징
- 06 / 05 PowerShell 프로필이 nvim-lint(ktlint) JSON 출력을 깨뜨릴 때
- 04 / 05 LazyVim Trouble — 코드 문제와 목록 탐색
- 29 / 04 IntelliJ DB SSH 터널 — JDBC URL은 localhost가 아닌 원격 목적지로
- 24 / 04 apex와 www를 함께 서비스할 때 — Origin 분리와 오래된 Frontend Cache 진단
- 22 / 04 Nginx TLS 운영 — 인증서 배치·키 처리·Reload·Process 복구
- 15 / 04 Vertica OR JOIN 성능 저하 — Join Filter로 빠질 때 진단과 재작성
- 01 / 04 Java volatile vs static 차이 - 멀티스레드 환경에서의 변수 관리
- 13 / 03 Windows에서 Neovim 내 Lazygit 'e' 키 에러 해결
- 12 / 03 Claude Code 메모리 시스템 정리
- 06 / 03 GitHub Packages SNAPSHOT 배포 실패 트러블슈팅 (pom 누락)
- 26 / 02 Git Shallow Clone — 전체 History 없이 필요한 깊이만 가져오기
- 21 / 02 🧷 tmux 유용한 설정 정리 (.tmux.conf 기준)
- 21 / 02 direnv 사용법 정리
- 21 / 02 JVM 공용 패키지 관리 (Gradle 멀티모듈 + GitHub Packages)
- 21 / 02 🧷 tmux 세션 부트스트랩 — 세션 매니저와 그 속살(셸 스크립트)
- 21 / 02 JS 공용 패키지 관리 (npm workspaces + GitHub Packages)
- 04 / 02 LazyVim에서 Diagnostics·LSP 로그·메시지 확인하기
- 16 / 01 Node 버전 변경 뒤 webpack Proxy ECONNREFUSED — localhost·IPv4·IPv6 경계 진단
- 07 / 01 Windows에서 ssh는 되는데 git clone은 실패할 때 — .ssh/config UTF-8 BOM 이슈
- 07 / 01 Windows에서 Dotfiles의 Neovim 설정을 Junction으로 연결하기
- 04 / 01 RDB JOIN 실행 전략 — Nested Loop·Hash·Merge를 언제 고르는가
- 04 / 01 Java 동시성 — 작업·실행·결과·공유 상태의 네 축
- 04 / 01 Java `java.util.function` 핵심 정리
- 17 / 12 LazyVim Java LSP (jdtls) 작동 안함
- 20 / 11 Git에서 일부 변경만 Merge한 뒤 나머지 변경이 다시 안 보이는 이유
- 17 / 11 🧷 tmux 설정 & 플러그인 설명
- 07 / 11 Serena 기본 가이드
- 31 / 10 macOS Launcher 비교 — Spotlight vs Alfred vs Raycast
- 24 / 10 Claude Code 슬래시 명령어 사전
- 24 / 10 Claude Code 정리
- 23 / 10 Windows 로그 파일 자동 삭제 스케줄 설정 가이드
- 23 / 10 Model Context Protocol(MCP) 개념 정리
- 22 / 10 GitHub Actions Secrets vs Variables — 민감도와 적용 범위를 분리해서 설계하기
- 22 / 10 Spring Boot 로그 레벨 — Logger 계층과 Threshold로 이해하기
- 17 / 10 Liquibase 설정과 사용 패턴 정리
- 05 / 10 Spring Boot Actuator 상세 설정 분석
- 05 / 10 JHipster 모니터링 — Actuator·Prometheus·Grafana 스택 구성
- 04 / 10 Which-Key로 발견 가능한 Keymap 설계하기
- 04 / 10 mini.nvim — 작은 모듈을 골라 조합하는 Neovim 플러그인 묶음
- 04 / 10 Vim과 Neovim은 어떻게 동작하는가 — Core에서 UI까지
- 03 / 10 git reflog로 사라진 커밋·브랜치 복구하기
- 03 / 10 GitHub 다중 계정 — 인증과 Commit Identity를 분리해서 관리하기
- 02 / 10 JHipster Docker 배포 — Jib 빌드에서 Registry·Compose 실행까지
- 02 / 10 Jhipster SonarQube
- 24 / 09 Vim/Neovim 레지스터 — 복사·삭제·붙여넣기가 지나가는 저장 계층
- 21 / 07 Nginx에서 특정 Client만 HTTPS Redirect 예외로 둘 때
- 24 / 06 Git Submodule — 저장소 안에 다른 저장소의 특정 커밋을 연결하는 구조
- 20 / 04 Spring 동적 DataSource — Routing Key가 Connection 선택으로 이어지는 구조
- 06 / 03 Jhipster Docker 개요
- 06 / 03 Quartz Scheduler — Job·Trigger·State·Cluster 구조 이해하기
- 24 / 02 Windows 서비스 등록 및 관리 방법
- 12 / 02 Spring Boot + Webpack SPA 프로젝트 설정 (Webpack + Gradle)
- 25 / 01 Windows에서 WSL 2 + Ubuntu 개발 환경 구축하기
- 14 / 01 Spring Boot 프로퍼티 설정 방법과 우선순위
- 14 / 01 PostgreSQL pg_dump, pg_restore 사용법
- 14 / 01 폐쇄망 RHEL 계열 서버에 RPM 패키지와 의존성 반입하기
- 14 / 01 MVC 계층별 메소드 네이밍 컨벤션
- 01 / 01 Tableau Trusted Ticket — 임베딩 인증과 발급 실패 진단
- 28 / 11 Spring Batch — Job·Step·Chunk와 재시작 메타데이터 구조
- 01 / 11 Learn Vimscript the Hard Way 핵심 정리
- 16 / 10 Postgresql 마운트 경로 변경
- 09 / 06 Debian 계열 vs Red Hat 계열 — 패키지·운영 정책의 차이
- 06 / 03 DB Connection Pool — HikariCP를 앱과 DB 사이에서 사이징하기