Ubuntu 파일 압축·해제 완전 정리 — zip과 tar(gzip/bzip2)
여러 파일은 zip -r, 디렉토리 묶음은 tar -czvf. gzip과 bzip2의 차이와 압축/해제 명령을 예제로 정리
여러 파일은 zip -r, 디렉토리 묶음은 tar -czvf. gzip과 bzip2의 차이와 압축/해제 명령을 예제로 정리
Use zip -r for multiple files and tar -czvf to bundle directories. Learn the difference between gzip and bzip2 with hands-on examples
fc-list :lang=ko 결과가 코딩 폰트뿐이라면 — fonts-noto-cjk, fonts-nanum 설치로 한글 렌더링 해결
SSH 키 생성(ssh-keygen), 공개키 등록(ssh-copy-id), 권한 설정, config 파일 활용까지 정리
SSH key generation (ssh-keygen), public key registration (ssh-copy-id), permission settings, and using the config file
Ubuntu 24.04 LTS에서 adduser를 이용한 사용자 계정 생성, sudo 그룹 추가를 통한 관리자 권한 부여, 계정 삭제까지 사용자 관리 방법 정리
User management on Ubuntu 24.04 LTS — creating accounts with adduser, granting admin privileges via the sudo group, and deleting accounts
Ubuntu 24.04 LTS 영어 설치 후 fcitx-hangul, ibus-hangul 한글 입력기 설치 및 한영 전환 단축키 설정 방법
tmux 세션 생성/분리/접속, 화면 분할(pane), 윈도우 전환 등 기본 사용법 가이드
A guide to tmux basics: creating/detaching/attaching sessions, splitting screens (panes), and switching windows
du -h –max-depth=1 sort -hr 명령어로 디렉토리 용량을 한눈에 파악하는 방법
Use du -h –max-depth=1 sort -hr to see directory sizes at a glance
sources.list를 수정하여 Ubuntu 패키지 저장소를 카카오, KAIST 한국 미러로 변경하는 방법
pwquality.conf의 usercheck 설정으로 패스워드 검증 정책을 변경하는 방법
Change usercheck = 0 in /etc/security/pwquality.conf to allow passwords that contain the username — useful for test and dev environments.
crontab 설치, 설정 규칙, Python 가상환경에서의 자동 실행까지 cron 사용법 정리
A summary of cron usage including crontab installation, configuration rules, and running scripts from a Python virtual environment
Ubuntu Timezone을 Asia/Seoul로 변경하고 NTP로 시간 동기화하는 방법
How to change the Ubuntu timezone to Asia/Seoul and synchronize time via NTP
Ubuntu LTS 2년 주기 릴리즈, 5년 기본 지원, ESM 10년 보안 유지보수 정리
Ubuntu LTS releases every 2 years with 5 years of standard support and up to 10 years of security maintenance via ESM. Interim releases ship every 6 months w...
shred, badblocks, dd를 활용한 Linux 하드디스크 완전 삭제(데이터 복구 불가) 방법
How to securely erase a Linux hard disk (unrecoverable) using shred, badblocks, and dd
hostnamectl set-hostname 명령으로 Ubuntu 호스트 이름을 변경하는 방법
Use hostnamectl set-hostname to rename an Ubuntu machine — takes effect immediately without a reboot.
fdisk 대신 parted를 사용하여 2TB 이상 디스크를 GPT 파티션으로 포맷하고 마운트하는 방법
Use parted instead of fdisk to format disks larger than 2TB as GPT and mount them
dpkg -l ubuntu-desktop 명령으로 Ubuntu Desktop/Server 구분 및 운영체제, 커널 버전 확인법
Use dpkg -l ubuntu-desktop to distinguish Ubuntu Desktop from Server, and inspect OS and kernel versions with cat /etc/*release and uname -a.
dmidecode, lscpu, lshw, lsblk 등을 활용한 Linux 서버 하드웨어 정보 확인 방법
How to inspect Linux server hardware using dmidecode, lscpu, lshw, lsblk, and friends
systemctl mask 명령으로 Ubuntu의 절전모드(Suspend/Sleep/Hibernate)를 비활성화하는 방법
Use systemctl mask to disable Ubuntu’s power-saving modes (Suspend/Sleep/Hibernate) and prevent SSH session drops on headless servers.
unattended-upgrade로 인한 NVIDIA 드라이버 버전 불일치 오류 해결법 (모듈 재로드, 자동업데이트 방지)
How to resolve the NVIDIA driver version mismatch caused by unattended-upgrade (reload modules, prevent auto-updates)
Ubuntu 16.04 영문 설치 후 fcitx-hangul 설치, 한영 전환 단축키(Multikey) 설정 가이드
조사 → 백업 → interactive rebase(drop/reword) → conflict 해결 → filter-branch(author/date) → force-with-lease push까지, Git 히스토리 재작성의 표준 워크플로우
The standard workflow for rewriting Git history: investigate → back up → interactive rebase (drop/reword) → resolve conflicts → filter-branch (author/date) →...
includeIf로 author를 분리하고 SSH 별칭으로 인증을 분리하면 cd만으로 계정이 자동 전환된다. 4가지 방법 단계별 가이드와 비교표
Separate author with includeIf, separate auth with SSH host aliases — and accounts switch automatically with cd. Four methods compared step by step
단순한 봇 워크플로(stale.yml)부터 다중 잡 빌드/배포 워크플로(deploy.yml)까지, 같은 5개 용어로 표현되는 GitHub Actions의 동작 모델을 두 가지 실제 YAML로 라인 단위 분석
gh auth switch 한 줄로 git push의 인증 주체가 바뀐다. credential helper 동작 원리·PAT 발급·계정 전환·실전 함정까지 한 번에 정리
From a simple bot workflow (stale.yml) to a multi-job build/deploy workflow (deploy.yml) — learn the GitHub Actions execution model by line-by-line analysis ...
One gh auth switch line changes who your git push goes as. Credential helper internals, PAT issuance, account switching, and real-world pitfalls in one guide
git stash로 로컬 변경사항을 임시 저장하고, pull 후 복원하여 충돌 없이 원격 변경사항을 받는 방법
Temporarily save local changes with git stash, pull, then restore — receive remote updates without merge conflicts
branch는 움직이는 포인터, tag는 고정된 포인터 — 개발 흐름과 릴리스 관리에서의 활용법
Branch is a moving pointer, tag is a fixed pointer — how to use each for development flow and release management
Windows와 Linux 간 줄바꿈 문자(LF/CRLF) 차이로 인한 Git warning 원인 분석과 .gitattributes, core.autocrlf 설정을 통한 해결 방법 정리
Analyzing the Git warning caused by line-ending differences (LF/CRLF) between Windows and Linux, and resolving it via .gitattributes and core.autocrlf settings
git –amend로 커밋 내용/메시지 수정 후 –force-with-lease로 안전하게 force push하는 방법
Modify commit content/message with git –amend, then safely force push with –force-with-lease
기존 Git 커밋의 Author 변경 및 CommitDate를 AuthorDate에 맞추는 다양한 방법 가이드
Guide to changing the Author of existing Git commits and aligning CommitDate with AuthorDate using several approaches
GitLab Rails console에서 math_rendering_limits_enabled를 비활성화하여 LaTex 렌더링 제한을 해제하는 방법
Fix GitLab’s LaTeX rendering cutoff by disabling math_rendering_limits_enabled through the GitLab Rails console
SSH Key 생성/등록, git config credential.helper store/cache로 Git 인증을 간편하게 하는 방법
Streamline Git authentication with ssh-keygen SSH key registration or git config credential.helper store/cache
git shortlog –since –before 옵션으로 기간별 커밋 통계를 확인하는 방법
Check period-based commit statistics per contributor or total using git shortlog with –since and –before options
GitHub API + Personal Access Token으로 CLI에서 Remote Repository를 생성하는 방법
Create a GitHub remote repo from the terminal using curl, the GitHub API, and a Personal Access Token — no web UI needed
git branch, git checkout으로 브랜치 생성/변경 후 main에 merge하는 방법
Create and switch Git branches with git branch and git checkout, then merge changes back into main
git config –global로 Git 계정(user.name, user.email)을 변경하는 방법
How to change your Git account (user.name, user.email) with git config, manage multiple accounts with includeIf, and use SSH config for seamless account swit...
SEO series Part 4. Diagnose remaining Search Console issues by four categories, then apply noindex meta automation in seo.html and trailing slash fixes in na...
SEO 시리즈 4편. Search Console에 남는 잔여 이슈를 4가지 분류로 진단하고, seo.html에 noindex 자동 출력 로직과 navigation trailing slash 수정으로 깔끔하게 마무리한다
Liquid Exception: undefined method gsub for an instance of Integer — fixed by adding a single append ‘’ before slugify
SEO series Part 3. When categories/tags/pagination get mixed into the sitemap, Google judges the entire sitemap as low quality. A site-wide audit and the fix...
Liquid Exception: undefined method gsub for an instance of Integer — slugify 앞에 append ‘’ 한 줄 추가로 해결
SEO 시리즈 3편. sitemap에 카테고리/태그/pagination이 섞여 있으면 Google이 sitemap 전체를 저품질로 판단한다. 사이트 단위 감사 결과와 수정 방법 정리
SEO series Part 2. Empty url → missing canonical, future: false → today’s posts excluded from build, missing timezone → KST date-boundary misjudgment. Fixed ...
SEO 시리즈 2편. url 비어있음 → canonical 누락, future: false → 오늘 작성 포스트 빌드 제외, timezone 누락 → KST 날짜 경계 오판. _config.yml 3줄로 해결
MDX build pipeline 15~30 seconds vs MD rendering hundreds of ms — why the gap is so large, and what to pick for which situation
MDX 빌드 파이프라인 15~30초 vs MD 렌더링 수백ms — 왜 이렇게 차이가 나는지, 어떤 상황에 무엇을 선택해야 하는지
A guide to mermaid2img.sh — a single script that handles environment setup, mermaid block extraction, mmdc rendering, and format conversion
환경 자동 구성부터 mermaid 블록 추출, mmdc 렌더링, 포맷 변환까지 단일 스크립트로 처리하는 mermaid2img.sh 가이드
SEO series Part 1. The per-post SEO basics you can finish in a single post: description/excerpt/tags frontmatter, the jekyll-seo-tag plugin, and permalink an...
SEO 시리즈 1편. description/excerpt/tags frontmatter, jekyll-seo-tag 플러그인, permalink·파일명 등 포스트 단위에서 끝낼 수 있는 SEO 기본기
Use the Mermaid v11 CDN to draw flowcharts, sequence diagrams, Gantt charts and more in a Jekyll blog
A 3-step guide for adding a new category via navigation.yml, a category archive page, and post frontmatter
Mermaid v11 CDN 설정으로 Jekyll 블로그에서 플로우차트, 시퀀스, 간트 등 다이어그램을 사용하는 방법
navigation.yml, 카테고리 아카이브 페이지, frontmatter 설정으로 새 카테고리를 추가하는 3단계 가이드
Install Ruby and Jekyll on Ubuntu, then run a GitHub blog as a local server to preview it
Ubuntu에서 Ruby, Jekyll 설치 후 GitHub 블로그를 로컬 서버로 실행하여 미리보기하는 방법
Register with Google Search Console, generate sitemap.xml, and configure robots.txt to expose your GitHub blog to search engines
Google Search Console 등록, sitemap.xml 생성, robots.txt 설정으로 GitHub 블로그 검색 엔진 노출시키기
From signing up for Google Analytics GA4 to creating a Measurement ID and wiring it into the Jekyll _config.yml
Google Analytics GA4 가입, 측정 ID 생성, Jekyll 블로그 _config.yml 설정까지 방문자 통계 적용법
Generate a favicon with favicon-generator and apply it to a Jekyll blog
favicon-generator를 이용한 파비콘 생성 및 Jekyll 블로그에 적용하는 방법
A reference for markdown syntax, image uploads, code blocks, links, and emoji when writing GitHub blog posts
GitHub 블로그 포스트 작성을 위한 마크다운 문법, 이미지 업로드, 코드블록, 링크, 이모지 사용법 정리
runserver 대신 Gunicorn, systemd 자동 실행, DDNS/포트포워딩 설정까지 Django 홈서버 배포 가이드
A Django home-server deployment guide covering Gunicorn instead of runserver, systemd auto-start, and DDNS/port-forwarding setup
Django Serializer에서 ForeignKey 값이 NULL로 인식되어 Not null constraint failed 오류가 발생하는 원인과 해결 방법입니다.
Cause and fix for the Not null constraint failed error in a Django Serializer where a ForeignKey value is treated as NULL.
Django 관리자 페이지에서 패스워드 검증을 비활성화하여 간단한 비밀번호를 사용할 수 있도록 설정하는 방법을 설명합니다.
How to disable password validation on the Django admin page so you can use a simple password.
Linux, PowerShell, BashShell 환경별 FLASK_APP 환경 변수 설정 방법
venv 환경을 git clone으로 다른 머신에서 사용 시 Unable to create process using 오류 해결법
How to set the FLASK_APP environment variable on Linux, PowerShell, and Bash
How to fix the Unable to create process using error when reusing a venv environment cloned from git on another machine
Selenium에서 ChromeDriver 버전 불일치로 SessionNotCreatedException 발생 시 webdriver-manager로 해결하는 방법입니다.
Fix Selenium’s SessionNotCreatedException by installing webdriver-manager for automatic ChromeDriver version matching.
Selenium에서 ‘element is not clickable at point’ 오류 발생 시 maximize_window()로 해결하는 방법을 안내합니다.
Call maximize_window() or scroll the element into view when Selenium cannot click a button due to viewport size.
pipenv, venv를 사용한 Python 가상 환경 구성 및 활성화 방법
pip 업그레이드 중 ‘No module named pip’ 오류가 발생했을 때 get-pip.py로 pip를 재설치하여 해결하는 방법을 안내합니다.
pip 실행 시 ‘Ignoring invalid distribution -ip’ 경고가 발생하는 원인과 임시 디렉토리 삭제로 해결하는 방법을 설명합니다.
How to create and activate a Python virtual environment using pipenv and venv.
Reinstall pip with get-pip.py or python -m ensurepip when a failed upgrade leaves pip missing entirely.
Remove the leftover ~ip directory from your site-packages to silence the ‘Ignoring invalid distribution’ warning.
Claude Code forgets everything when a session ends. agentmemory auto-records your work via hooks and re-injects it next session, eliminating re-explaining
Claude Code는 세션이 끝나면 다 잊는다. agentmemory는 훅으로 작업을 자동 기록하고 다음 세션에 다시 주입해 ‘재설명’을 없앤다
A comparison of Claude Code’s 5 permission modes, how to run them, real-world incident cases, and a Docker-isolation safety guide.
Claude Code 권한 모드 5단계 비교, 실행 방법, 실제 사고 사례, Docker 격리 안전 가이드
From installation to real-world use of the omc plugin, which automatically dispatches complex Claude Code tasks to specialist agents.
Claude Code에서 복잡한 작업을 자동으로 전문 에이전트에게 분배하는 omc 플러그인의 설치부터 실전 활용까지
How to apply CLAUDE.md, Skill, and Hook to real projects, plus advanced skill structures, Agent Team collaboration, and FAQ.
Three layers for keeping rules in place when developing with Claude Code: CLAUDE.md, Skill, and Hook — concepts, usage, and the optimal combination.
Part 2 guide covering automation scripts, inter-agent communication strategies, a full-stack hands-on example, and FAQ for the Multi-Agent environment.
How to run multiple agents simultaneously in Claude Code CLI using tmux and git worktree, with the Multi-Agent concept and practical configuration.
CLAUDE.md, Skill, Hook을 실제 프로젝트에 적용하는 방법과 고급 스킬 구조, Agent 팀 협업, FAQ를 정리한 가이드입니다.
Claude Code로 개발할 때, 대화로 전달한 규칙이 컨텍스트에서 밀려나는 문제를 CLAUDE.md, Skill, Hook 세 가지 레이어로 해결하는 방법을 작성한다. 1부에서는 각 레이어의 개념과 사용법, 최적 조합까지 다룬다.
Multi-Agent 환경의 자동화 스크립트, Agent 간 소통 전략, 풀스택 실전 예제와 FAQ를 다루는 2부 가이드입니다.
Claude Code CLI에서 tmux와 git worktree를 활용해 여러 Agent를 동시에 실행하는 Multi-Agent 개념과 실전 구성 방법을 설명합니다.
임시 포트에 Harbor를 먼저 띄워 이미지를 옮긴 뒤, 짧은 컷오버로 기존 포트를 넘겨받는다 — 노드 설정 변경 없이 registry:2 → Harbor 전환
Bring up Harbor on a temporary port first, move the images, then take over the original port in a short cutover — switching registry:2 to Harbor with no node...
AI 모델을 Docker처럼 다루기 — OCI Artifacts로 Docker Hub, Harbor 같은 기존 레지스트리에서 모델을 push/pull 하는 새로운 표준
Treating AI models like Docker — push/pull models from existing registries like Docker Hub and Harbor via OCI Artifacts, the new standard
docker compose down만으로는 볼륨과 이미지가 남는다 — 상황별 삭제 옵션과 완전 초기화 방법
docker compose down alone leaves volumes and images behind — situational delete options and full reset methods
Dockerfile 작성, 이미지 빌드, 컨테이너 실행, Nginx 포트포워딩까지의 과정
Walk through writing a Dockerfile, building the image, running the container, and forwarding the Nginx port
docker.sock permission denied 오류를 usermod docker 그룹 추가로 해결하기
docker-compose.yml version unsupported 오류 원인 및 재설치 해결 방법
Resolve the docker.sock permission denied error by adding your user to the docker group with usermod
Reinstall docker-compose to the latest version to fix the ‘version is unsupported’ error
wsl –install -d Ubuntu-22.04로 원하는 버전 설치, 기본 배포판 설정, Microsoft Store 대안까지
wsl –unregister로 배포판 삭제, wsl –uninstall로 전체 제거, Windows 기능에서 WSL 비활성화까지
wsl -u root로 root 접속 후 passwd 명령어로 비밀번호 재설정하기
Use wsl –install -d Ubuntu-22.04 to install the version you want, set the default distribution, with a Microsoft Store alternative
Use wsl –unregister to delete a distribution, wsl –uninstall to remove WSL entirely, or disable WSL from Windows Features
Log in as root with wsl -u root, then reset the password using passwd
WSL 프로필과 Ubuntu 프로필의 색 구성표 차이를 이해하고, 원하는 배경색을 설정하는 방법
\wsl$, /mnt/c 경로부터 네트워크 드라이브 매핑, VS Code 연동까지 WSL 파일 접근 5가지 방법
Understand the color scheme difference between the WSL profile and the Ubuntu profile, and learn how to set the background color you want
Five ways to access WSL files: \wsl$ and /mnt/c paths, network drive mapping, VS Code integration, and more
WSL2 활성화, Ubuntu 설치, 초기 설정, Windows Terminal 연동까지 Windows 11에서 WSL 기반 Linux 환경 구성 방법 정리
Enable WSL2, install Ubuntu, perform initial setup, and integrate with Windows Terminal to build a WSL-based Linux environment on Windows 11
multipass launch 한 줄로 Ubuntu VM 생성. 설치부터 리소스 지정, cloud-init, libvirt/KVM 비교까지 개발·테스트용 VM 환경을 정리
Create an Ubuntu VM with a single multipass launch. From installation to resource options, cloud-init, and a libvirt/KVM comparison for dev and test environm...
netplan Bridge 설정과 virsh로 VM 기본 네트워크를 Bridge로 변경하는 방법
Configure a netplan bridge and change the VM default network to it via virsh
iptables NAT/FORWARD 규칙으로 호스트 서버의 VM에 외부 접근 허용하기
Configure iptables NAT/FORWARD rules to expose a VM running on a host server to outside clients
VM Clone 후 DHCP IP 할당 실패 원인(machine-id)과 해결 방법
After VM clone, DHCP fails because of duplicate machine-id — fix by regenerating /etc/machine-id
virt-manager에서 virtiofs로 Host-VM 공유폴더 생성 및 마운트하기
Create and mount a Host-VM shared folder via virtiofs in virt-manager
OS에 보이는 디스크는 Virtual Disk일 수 있다 — RAID Controller 뒤의 Physical Disk를 smartctl megaraid 옵션으로 확인하기
The disk visible to the OS may be a Virtual Disk — use smartctl with the megaraid option to inspect Physical Disks behind the RAID Controller
일반 포맷으로는 SSD 데이터가 복구 가능하다 — Secure Erase, Rufus+ISO, DiskPart clean all 세 가지 방법 비교
Harbor는 Enterprise급 Private OCI Registry — Kubernetes와 OpenStack에서 컨테이너 이미지를 표준 방식으로 push/pull하는 저장소
Regular formatting leaves SSD data recoverable — compare Secure Erase, Rufus+ISO, and DiskPart clean all
Harbor is an Enterprise-grade Private OCI Registry — a standard repository for pushing/pulling container images in Kubernetes and OpenStack
비정형 데이터 저장에 적합한 오브젝트 스토리지의 개념과 동작 원리
Object storage concept and operation, suited for unstructured data
VSCode snippets로 prefix + Tab 키를 활용한 반복 구문 자동완성 설정하기
Configure VSCode snippets to expand repeated code via prefix + Tab
PowerShell ExecutionPolicy를 RemoteSigned로 변경하여 스크립트 실행 권한 오류 해결하기
Fix the PowerShell script execution permission error by setting ExecutionPolicy to RemoteSigned
VS Code tasks.json으로 같은 디렉토리의 분할 파일을 한 번에 컴파일하기
Use the ${fileDirname}/*${fileExtname} variable in tasks.json to pass every source file in the active directory to g++ or gcc in a single build task.
STATUS 컬럼의 의미, field-selector의 함정, Completed가 정상인지 판단하는 법까지 — 운영 중 문제 Pod를 빠르게 솎아내는 실전 레퍼런스
What the STATUS column really means, the field-selector pitfall, and how to tell whether Completed is normal — a practical reference for quickly isolating br...
K8s 업데이트는 두 층위로 분리해서 봐야 한다 — API 차원의 strategy(A)와 배포 패턴(B). Rolling/Blue-Green/Canary 비교부터 NVIDIA driver 같은 host kernel 결합 워크로드 실무 적용까지
K8s updates must be understood as two layers — API-level strategy (A) and deployment pattern (B). From Rolling/Blue-Green/Canary comparison to host-kernel-co...
인벤토리 등록, SSH/sudo 설정, scale.yml –limit 실행, fact cache 404 에러 해결까지 실전 가이드
Inventory registration, SSH/sudo setup, scale.yml –limit execution, and solving the fact cache 404 error — a real-world walkthrough
Error: cannot open display: localhost:10.0 — Snap Firefox의 XAUTHORITY 미설정이 원인, 환경변수 명시적 설정으로 해결
Error: cannot open display: localhost:10.0 — Snap Firefox’s missing XAUTHORITY is the root cause; fix by setting it explicitly
kebab-case, snake_case, camelCase, PascalCase 등 네이밍 컨벤션의 차이와 언어별 사용 기준
Differences and language-specific usage of kebab-case, snake_case, camelCase, and PascalCase
MOD 함수 + 조건부 서식으로 정수는 정수로, 실수는 소수점 2자리까지 표시하는 엑셀 설정법
Use MOD + conditional formatting so integers stay as integers and decimals show 2 places
DuckDNS 도메인 등록, iptime 포트포워딩, Nginx 리버스 프록시, Let’s Encrypt 인증서 발급까지의 전체 과정. 외부 DDNS를 지원하지 않는 iptime 모델 대응 방법 포함
Full walkthrough: DuckDNS domain registration, iptime port forwarding, Nginx reverse proxy, Let’s Encrypt cert issuance, including iptime models that don’t s...