아카이브
- 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 프로그래밍 언어 개념 로드맵 — C++로 알던 걸 Go·Rust로 잇기
- 13 / 07 불변성 — const·mut·val, 누가 무엇을 못 바꾸게 하나
- 13 / 07 Null 안전성 — '10억 달러 실수'를 언어는 어떻게 막나
- 13 / 07 람다와 클로저 — 캡처·std::function·제네릭 람다
- 13 / 07 예외 처리 — try·catch·throw와 예외 안전 3등급
- 12 / 07 Neovim과 PKM — Obsidian·org-mode, 무엇을 왜 쓰나
- 12 / 07 Neovim DAP — LSP의 형제, 디버깅용 프로토콜
- 12 / 07 XSS 분류 — Reflected·Stored·DOM-based와 Source/Sink
- 12 / 07 Git hunk이란 — diff 덩어리와 부분 스테이징(git add -p)
- 12 / 07 GitHub에서 내 활동 몰아보기 + Watch vs Star 알림 정리
- 12 / 07 SSH vs SSL/TLS — 같은 재료, 다른 조립
- 12 / 07 gradle bootRun에 JVM 옵션 넘기기 — --args와 jvmArguments가 다른 이유
- 12 / 07 이터레이터와 지연 평가 — 순회를 추상화하기
- 12 / 07 값 vs 참조 의미론 — 대입하면 복사냐 공유냐 이동이냐
- 12 / 07 동시성 조율 모델 — 공유 상태 vs 메시지 전달
- 12 / 07 서브타입 다형성 — Go interface 값·Rust dyn Trait·C++ virtual
- 12 / 07 제네릭 — 파라미터 다형성과 그 구현의 갈림길
- 12 / 07 에러 핸들링 모델 — 예외 vs 에러 값 vs Result
- 12 / 07 메모리 관리 모델 — 수동 vs GC vs 소유권
- 12 / 07 클로저란 무엇인가 — 함수가 바깥 변수를 기억하는 법
- 12 / 07 코루틴이란 무엇인가 — 스레드와 무엇이 다른가
- 12 / 07 🔀 sesh — fzf·zoxide로 즉석 tmux 세션 전환 (부트스트래퍼에서 피커로)
- 12 / 07 마지막 ⑩ 도구 — cargo·crates·모듈
- 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 학습 로드맵 — C++ 하던 사람이 무엇을 먼저
- 12 / 07 마지막 ⑦ 도구 — build·mod·fmt·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++ 하던 사람이 무엇을 먼저
- 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 브랜치 통합 함정 — 로컬 ref ≠ 원격 ref, orphan main과 non-ff
- 08 / 07 chezmoi vs 심링크 dotfiles — 근본 차이와 언제 무엇을 쓸까
- 08 / 07 심링크 dotfiles → chezmoi 이관 중 겪은 함정들
- 08 / 07 Neovim 0.11+ LSP 3계층 — mason·lspconfig·vim.lsp의 역할
- 08 / 07 snacks explorer의 focus는 nvim cwd를 안 바꾼다 — 트리에서 lazygit이 엉뚱한 곳에서 열릴 때
- 08 / 07 jenv: version '17' is not installed — Homebrew 패치 업그레이드가 JDK 심링크를 깨는 이유
- 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 로드맵 — 도구 지형도에서 Claude Code·MCP·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 차이 표기)
- 03 / 07 AltTab — 타일링 WM의 빈틈을 메우는 창 전환기
- 03 / 07 키보드 로드맵 — 세벌식·HHKB에서 내 키맵을 짜기까지
- 03 / 07 DB 로드맵 — 설계·동시성·성능·운영·분산, 다섯 질문으로 나눈 글 지도
- 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 빌드 ⑧ 컴파일·링킹과 CMake
- 03 / 07 모던 문법 ⑦ auto·constexpr와 표준 라이브러리
- 03 / 07 macOS CLI 개발 도구 모음 — Brewfile로 관리하는 터미널 툴킷
- 03 / 07 동시성 ⑥ 스레드와 비동기
- 03 / 07 제네릭 ⑤ 템플릿
- 03 / 07 STL ④ 컨테이너와 알고리즘
- 03 / 07 SQL Injection 분류 체계 — Union은 Blind의 하위 유형이 아니다
- 03 / 07 값과 소유권 ③ 이동 시맨틱과 스마트 포인터
- 03 / 07 CAP 정리 — P는 고르는 게 아니라 주어진다
- 03 / 07 객체지향 ② 클래스와 자원 관리
- 03 / 07 가상화 기술 체계 — 두 개의 분류 축으로 꿰기
- 03 / 07 C++로 사고하기 ① 참조자와 동적 할당
- 03 / 07 nginx 실무 설정 패턴 — 리버스 프록시부터 SSL 종단까지
- 03 / 07 모던 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 Memento Pattern
- 19 / 06 특정 문제에서 선명한 GoF 패턴 — Bridge · Flyweight · Interpreter
- 19 / 06 Visitor Pattern
- 19 / 06 Mediator Pattern
- 19 / 06 Prototype Pattern
- 19 / 06 lazy.nvim 플러그인 spec 필드 완전 정리 — 로드 트리거 / init·opts·config / 의존성
- 19 / 06 디자인 패턴 로드맵 — 세 갈래로 나눠 쉬운 것부터 쌓는 순서
- 18 / 06 Singleton Pattern
- 18 / 06 Iterator Pattern
- 18 / 06 Facade Pattern
- 18 / 06 Composite Pattern
- 18 / 06 Chain of Responsibility Pattern
- 18 / 06 Builder Pattern
- 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·neovim·lazyvim 글을 어떤 순서로 읽을까
- 16 / 06 tmux 로드맵 — 세션 관리를 익혀 작업 환경을 자동화하는 순서
- 16 / 06 실시간 시스템 모니터링: top, htop, btop, glances 비교
- 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 sudo로 jekyll 한 번 빌드하면 root 소유 잔여물 때문에 이후 빌드가 EACCES로 죽는다
- 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 Jekyll은 글 작성 시각이 현재보다 미래면 빌드에서 제외 — Skipping: has a future date
- 15 / 06 Gradle 테스트 로그가 안 찍히는 이유 — UP-TO-DATE 캐시와 testLogging 기본값
- 13 / 06 Spring Boot Undertow에서 HTTP·HTTPS 듀얼 포트 + 강제 리다이렉트
- 13 / 06 Spring Boot + MyBatis로 두 개의 데이터소스 쓰기
- 13 / 06 프론트에서 form POST로 새 탭 띄우기 — target=_blank 외부 시스템 연동
- 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가지 채널 비교
- 12 / 06 OSS 기여에 AI 활용 — 대필이 아니라 페어 시니어로
- 12 / 06 Jekyll Chirpy 하위 카테고리는 폴더가 아니라 front matter 배열로 만든다
- 12 / 06 crate-ci/typos 액션이 제품명을 오타로 잡으면 .github/typos.toml에 허용 단어 등록
- 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가 조용히 실패할 때 — SSH protocol과 키 등록 함정
- 08 / 06 Neovim floating window + tmux 이동/복귀 포커스 문제 해결
- 08 / 06 legacy kotlin-language-server v1.3.13 documentHighlight 크래시
- 08 / 06 GitHub repo 정리하면서 잔디 보존하기
- 08 / 06 GitHub Fork와 Use this template의 차이
- 08 / 06 Vim vs Neovim vs 배포판 — 각 계층이 제공하는 기능 정리
- 08 / 06 LFS 데이터가 사라진 repo를 subtree로 흡수하기
- 07 / 06 LazyVim 기능 지도 — Git·검색·LSP·완성을 만드는 플러그인 묶음
- 07 / 06 HTTP 보안·캐시 헤더 — Cache-Control, CSP, Permissions-Policy, Referrer-Policy
- 07 / 06 brew cleanup 후 java_home이 엉뚱한 버전을 반환할 때
- 07 / 06 AeroSpace 단축키가 갑자기 안 될 때 — macOS Secure Input
- 07 / 06 passwd 직후 su 인증이 실패할 때 점검 순서
- 07 / 06 LazyVim 의존성 계층 — lazy.nvim → core → extras → 사용자 plugin이 합쳐지는 방식
- 07 / 06 LazyVim 주요 플러그인 정리 — UI / 편집 / Git / 진단 / LSP
- 07 / 06 JPA 메모 — N+1, Hibernate 캐시, 직접/간접 참조, Element Collection
- 07 / 06 Kibana 개념 정리 — Saved Objects, Lens, Alerting, 7.x vs 8.x
- 07 / 06 CSS Variables (Custom Properties) 사용법
- 05 / 06 CopilotChat.nvim Model not found 에러 — :CopilotChatModels로 Auto 선택
- 01 / 06 커밋 author 일괄 수정 — filter-repo로 GitHub 잔디 복구 (legacy filter-branch 포함)
- 27 / 05 Windows Terminal에서 영문이 넓게 나오고 명령어가 안 먹히면 IME 전각 모드
- 21 / 05 Node 17+ localhost dual-stack — webpack-dev-server AggregateError와 browser-sync listen 함정
- 20 / 05 jenv local 11 해도 Java 17 바이트코드가 나오는 이유
- 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 nginx apex/www 도메인 분리로 인한 캐시 문제와 해결
- 22 / 04 nginx SSL 인증서 운영 가이드
- 22 / 04 HTTPS 페이지에 "주의 요함"이 뜨는 진짜 원인은 대개 Mixed Content
- 15 / 04 Vertica에서 OR 조건 JOIN은 성능을 죽인다
- 01 / 04 Java volatile vs static 차이 - 멀티스레드 환경에서의 변수 관리
- 31 / 03 Java에서 RSA + AES-GCM 하이브리드 암호화 구현
- 31 / 03 Chrome 새 탭에서 자동으로 개발자도구 열기
- 13 / 03 Windows에서 Neovim 내 Lazygit 'e' 키 에러 해결
- 13 / 03 Windows Neovim에서 Lazygit 한글 깨짐 해결
- 12 / 03 Claude Code 메모리 시스템 정리
- 06 / 03 GitHub Packages SNAPSHOT 배포 실패 트러블슈팅 (pom 누락)
- 26 / 02 Git Shallow Clone으로 비대해진 저장소 가볍게 사용하기
- 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 로그/메시지 확인법
- 16 / 01 nvm으로 Node 버전 변경 후 webpack-dev-server 프록시 ECONNREFUSED 해결기
- 15 / 01 Windows Terminal 화면(Pane) 기능 정리
- 07 / 01 Windows에서 ssh는 되는데 git clone은 실패할 때 — .ssh/config UTF-8 BOM 이슈
- 07 / 01 Windows에서 Dotfiles의 Neovim 설정 연결하기
- 04 / 01 RDB에서 조인(Join) 방식 총정리
- 04 / 01 Java 동시성 모델 정리
- 04 / 01 Java `java.util.function` 핵심 정리
- 27 / 12 SSD 형태(Form Factor)와 프로토콜(Protocol) 완벽 정리 — M.2 · NVMe · PCIe · SATA · TLC · QLC 한 번에 이해하기
- 17 / 12 LazyVim Java LSP (jdtls) 작동 안함
- 08 / 12 소프트웨어 3대 원칙(DRY · KISS · YAGNI) — 도구지 교리가 아니다
- 20 / 11 Git Partial Merge 시 develop 변경이 삭제되는 문제 정리
- 17 / 11 🧷 tmux 설정 & 플러그인 설명
- 07 / 11 Serena 기본 가이드
- 31 / 10 macOS 생산성 런처 비교와 생산성 앱 큰 그림 (Spotlight · Alfred · Raycast)
- 29 / 10 SMB로 mac ↔ Windows 파일 공유 설정
- 24 / 10 Claude Code 슬래시 명령어 사전
- 24 / 10 Claude Code 정리
- 23 / 10 Windows 로그 파일 자동 삭제 스케줄 설정 가이드
- 23 / 10 Model Context Protocol(MCP) 개념 정리
- 22 / 10 GitHub Actions Secrets & Variables 설정 가이드
- 22 / 10 Spring Boot에서 로그 레벨
- 17 / 10 Liquibase 설정과 사용 패턴 정리
- 05 / 10 Spring Boot Actuator 상세 설정 분석
- 05 / 10 JHipster 모니터링 — Actuator·Prometheus·Grafana 스택 구성
- 04 / 10 Which-Key Keymaps 정리
- 04 / 10 mini.nvim 관련 정리
- 04 / 10 Vim & Neovim 작동 원리 정리
- 03 / 10 git reflog로 삭제된 커밋·브랜치 복구하기
- 03 / 10 GitHub 다중 계정 관리 Cheat Sheet
- 02 / 10 Jib 을 이용한 JHipster 도커 이미지 빌드 및 배포
- 02 / 10 Jhipster SonarQube
- 24 / 09 Vim/Neovim 레지스터 정리
- 21 / 07 Nginx 설정: 특정 IP에 대해 HTTPS 리다이렉트 제외
- 25 / 06 SSH Tunneling
- 24 / 06 Git Submodule 을 사용하여 다른 Git 저장소를 포함하기
- 20 / 04 동적 데이터 소스 설정
- 12 / 04 Adapter Pattern
- 11 / 04 Factory Pattern
- 08 / 03 VSCode 관련 설정
- 07 / 03 Command Pattern
- 07 / 03 Observer Pattern
- 07 / 03 Template Method Pattern
- 07 / 03 Strategy Pattern
- 07 / 03 State Pattern
- 07 / 03 Proxy Pattern
- 07 / 03 Decorator Pattern
- 07 / 03 SOP(Same-Origin Policy) vs CORS(Cross-Origin Resource Sharing)
- 06 / 03 Jhipster Docker 개요
- 06 / 03 Spring Quartz
- 04 / 03 Redux Loading Bar 사용법
- 24 / 02 Windows 서비스 등록 및 관리 방법
- 21 / 02 바이너리 파일을 텍스트로 변환하여 복사 붙여넣기
- 12 / 02 Proxy (Forward vs Reverse)
- 12 / 02 Spring Boot + Webpack SPA 프로젝트 설정 (Webpack + Gradle)
- 25 / 01 Windows에서 Ubuntu 개발 환경 구축하기
- 14 / 01 Spring Boot 프로퍼티 설정 방법과 우선순위
- 14 / 01 PostgreSQL pg_dump, pg_restore 사용법
- 14 / 01 폐쇄망 환경에서 서비스 운영을 위한 환경 구축 방법
- 14 / 01 MVC 계층별 메소드 네이밍 컨벤션
- 14 / 01 컴파일된 코드로부터 java 버전 확인하기
- 13 / 01 URI, URL, URN
- 01 / 01 Tableau Trust Ticket 발급받기
- 28 / 11 Spring Batch
- 01 / 11 Learn Vimscript the Hard Way 핵심 정리
- 16 / 10 Postgresql 마운트 경로 변경
- 09 / 06 Debian vs Red Hat 계열
- 23 / 05 맥 운영체제에서 NIC(Network Interface Card) 고유 주소(mac address) 변조
- 03 / 05 트랜잭션 동시성 제어 — 격리 수준과 락, 그리고 이상 현상
- 04 / 04 Neovim으로 C++ 개발 환경 세팅 (coc.nvim + clangd)
- 21 / 03 SSH Broken Pipe Error 해결 방법
- 06 / 03 DBCP (Database Connection Pool)
- 20 / 11 Require vs Import
- 17 / 07 C++ 컴파일 시 표준(extension) 관련 에러
- 12 / 07 npm 관련 에러
- 09 / 07 /etc/profile, /etc/bashrc, ~/.bash_profile, ~/.bashrc
- 05 / 02 Let's Encrypt + Nginx 운영 가이드: 발급, 갱신, 그리고 만난 함정 4가지
- 05 / 02 새 맥 초기 설정 — 셋업 순서
- 05 / 02 Apple Silicon에서 webpack-notifier spawn 에러(-86) — Rosetta로 해결
- 08 / 12 Mac에서 Docker 실행시 Operation not permitted 에러 해결법
- 08 / 12 Spring Boot 배너 샘플
- 02 / 12 ajax Map타입 데이터 전송 안될 때
- 30 / 11 🧷 tmux 정리본 (Cheat Sheet + 사용 가이드)
- 22 / 11 MyBatis 실무 패턴 — 시퀀스 채번·1:N 컬렉션 매핑·${} vs #{}·동적 컬럼 바인딩
- 05 / 11 셸로 파일명·문자열 일괄 변경하기
- 05 / 10 유용한 웹 개발 도구
- 25 / 01 logrotate 설정