최재영의 개발 일지
GitHubLinkedIn

기타

Cloudflare 네임서버 사용하기

배경 난 hosting.kr에서 도메인을 구매했다. 그리고 DNS 레코드 관리 설정에서 CNAME으로 내 도메인을 DuckDNS와 연결했다. 문제는 hosting.kr에서 루트 도메인은 CNAME을 허용하지 않는다는 것이다. 예전에 AWS Elastic IP를 사용할 때는 ip 주소를 입력하면 돼서 루트 도메인도 사용할 수 있었는데, 이 경우에는 안 되는

Caddy로 리버스 프록시 구성하기

배경 개인 서버를 그대로 네트워크에 노출하는 것은 위험하기 때문에 하나 더 남은 데스크탑으로 VPS 역할을 하는 리버스 프록시를 만드려고 했다. 여기에도 웹 서버를 띄워야 하는데, Caddy가 간편하면서도 인증서도 자동으로 설정해준다고 해서 Caddy를 사용해보기로 했다. 또한, Caddy는 로컬 환경에 설치하지 않고 도커로 띄우기로 했다. 디렉토리 구조

맥에서 리눅스 부팅 USB 만들기

준비물 4GB 이상의 USB와 리눅스 이미지를 준비한다. 나는 데비안 13 Trixie를 설치했기 때문에 debian-13-amd64-netinst.iso를 다운로드했다. USB 식별 터미널에서 USB 드라이브의 이름을 확인한다. diskutil list 내 경우에는 /dev/disk4였다. USB 포맷 포맷에는 두 가지 방법이 있다. 하나는 USB를 꽂자

개인 서버 아키텍처 계획

처음에는 데스크탑 한 대로 서버를 구축하려고 했는데, 클로드가 보안상 위험하다고 서버를 네트워크에 직접 노출시키지 않는 방안을 제안했다. 이를 위해 클라우드 서비스의 VPS(Virtual Private Server)를 사용하는 것을 추천해줬는데, 남는 데스크탑이 하나 더 있어서 그걸 리버스 프록시로 사용하기로 했다. 네트워크 흐름 사용자가 요청을 보내면 내

맥에서 HostName 변경하기

ssh를 사용하다보니 현재 설정으로는 로컬 환경인지 원격 환경인지 구분이 안 됐다. 그래서 쉘 프롬프트에 사용자 이름과 호스트 이름을 표시하도록 powerlevel10k 설정을 바꿨다. 그런데 이름이 cjymacs-macui-Macmini로 지저분하게 나왔다. 이 때 표시되는 호스트 이름은 HostName이고, ComputerName은 블루투스나 에어드랍

바이오스 부팅 에러 무시하기

배경 데스크탑을 개인 서버로 전환하면서 모니터, 키보드, 마우스를 모두 제거하고 SSH로만 운영하려고 했다. 네트워크 설정과 SSH 설정을 모두 마친 후 키보드를 제거하고 부팅했더니 BIOS에서 부팅이 멈춰버렸다. 처음에는 모니터까지 제거해서 왜 SSH 연결이 안 되는건지 알 수 없었는데, 모니터를 연결하고 보니 키보드가 없다는 에러였다. 원인 BIOS의

터미널 앱을 Alacritty에서 Ghostty로 변경

Alacritty의 한글 입력 버그를 해결하지 못해 Ghostty로 전환한 이유와 과정

터미널에서 Shift+Enter로 줄바꿈하기

터미널에서 클로드 코드로 작업하는데, 보기 좋게 프롬프트에 줄바꿈을 많이 사용한다. 줄바꿈은 터미널 기본값으로 대게 Option+Enter를 사용하는 것 같다.(alacritty, ghostty) Alacritty # alacritty/alacritty.toml [keyboard] bindings = [ { key = "Return", mods = "S

macOS에서 한글 파일명이 깨지는 이유(NFD)

증상 macOS에서 만든 한글 파일명이 Windows나 Linux, 또는 일부 프로그램에서 자모가 분리되어 보이는 현상이 있다. 예를 들어 김범수 - 지나간다.opus가 ㄱㅣㅁㅂㅓㅁㅅㅜ - ㅈㅣㄴㅏㄱㅏㄴㄷㅏ.opus처럼 풀어져서 표시된다. 맥의 Finder에서 파일명을 한글로 변경했을 때 이런 현상이 발생하고, 터미널에서 ls로 출력해보면 글자가 깨져서 나

tmux 서버와 소켓 구조

tmux의 서버-클라이언트 구조 tmux는 단순한 터미널 멀티플렉서처럼 보이지만, 내부적으로는 서버-클라이언트 구조로 동작한다. terminal ──socket──▶ tmux server ─┬─ session A ─┬─ window 1 ─┬─ pane 1 (client) │ │