macOS에서 NTFS 외장하드에 쓰기 — fuse-t로 ntfs-3g 빌드하기
macFUSE(kext) 없이 fuse-t와 ntfs-3g 소스 빌드로 macOS에서 NTFS 외장하드 쓰기를 직접 뚫어낸 기록입니다. pkg-config 버전 게이트, raw/block 디바이스 차이, 한글 정규화까지 실제로 만난 함정을 정리했습니다.
로컬 TTS 엔진 chatterbox의 메모리 누수를 근본적으로 없애기 위해 Apple Silicon 네이티브 MLX 프레임워크 기반 Kokoro-82M으로 교체했습니다. peak RSS를 5GB에서 0.78GB로 줄인 실측 비교와 설치 중 만난 함정을 정리했습니다.
RAM 32GB가 넉넉히 남아도 macOS 프로세스는 SIGKILL로 죽을 수 있습니다. 진짜 원인은 디스크 여유 공간 부족으로 동적 스왑을 늘리지 못한 것이었고, Jetsam이 개입하는 위험의 임계는 사용률 %가 아니라 절대 여유 GB라는 사실을 실측으로 확인했습니다.
새 이미지를 레지스트리에 올리고 재배포했는데, 서버는 여전히 옛 버전을 띄웠습니다. :latest 태그가 왜 새 이미지를 자동으로 받아오지 않는지, 그 원리와 확실히 갱신하는 방법을 정리했습니다.
서버를 옮기며 오래된 코드를 새로 빌드하자, 잘 돌던 화면이 첫 렌더부터 하얗게 죽었습니다. 5개월 동안 배포하지 않은 main에 숨어 있던, 삭제된 기능이 남긴 dangling 참조를 추적한 기록입니다.
이미지를 옮기고 DNS만 바꾸면 끝일 줄 알았는데, Let's Encrypt 인증서가 발급되지 않았습니다. 무중단 이전의 설계와, TTL을 미리 낮추지 않아 인증서 발급이 지연된 함정을 로그와 함께 정리했습니다.
빌드를 GitHub Actions로 옮겼더니, x86 러너 위 QEMU 크로스빌드가 프론트엔드에서 6시간 멈춰 죽었습니다. 비결정적 hang의 원인과, 네이티브 arm64 러너로 6시간을 1분 34초로 줄인 과정을 정리했습니다.
작은 서버는 앱을 실행할 여유는 있어도 빌드에서 죽습니다. 빌드를 GitHub Actions로 빼고 서버는 완성 이미지를 받아 실행만 하는 pull-only 구조와, private 레지스트리 인증까지 정리했습니다.
'워터마크만 감수하면 정품과 다를 게 없다'는 무인증 윈도우 이야기. 실제로 뭐가 막히고 뭐가 되는지, 합법과 불법 사이 어디쯤인지, 마이크로소프트 공식 문서와 약관을 직접 대조해 따져봤습니다.
프리도스 노트북에 윈도우를 얹어 파는 '정품 탑재' 제품. 정품을 따로 사면 십수만 원인데 가격 차이는 왜 작을까요. 셀러들이 쓰는 라이선스의 정체를 가격 구조와 자료로 좇아봤습니다.