홈시리즈멘토링

© 2026 정기창. All rights reserved.

본 블로그의 콘텐츠는 CC BY-NC-SA 4.0 라이선스를 따릅니다.

☕후원하기소개JSON Formatter러닝 대기질개인정보처리방침이용약관

© 2026 정기창. All rights reserved.

콘텐츠: CC BY-NC-SA 4.0

☕후원하기
소개|JSON Formatter|러닝 대기질|개인정보처리방침|이용약관

기창이의 기술 블로그2페이지

RAM 32GB가 남는데 프로세스가 죽었다 — macOS 스왑과 Jetsam OOM

RAM 32GB가 넉넉히 남아도 macOS 프로세스는 SIGKILL로 죽을 수 있습니다. 진짜 원인은 디스크 여유 공간 부족으로 동적 스왑을 늘리지 못한 것이었고, Jetsam이 개입하는 위험의 임계는 사용률 %가 아니라 절대 여유 GB라는 사실을 실측으로 확인했습니다.

2026. 7. 12.

Docker :latest로 재배포했는데 옛 이미지가 뜨는 이유

새 이미지를 레지스트리에 올리고 재배포했는데, 서버는 여전히 옛 버전을 띄웠습니다. :latest 태그가 왜 새 이미지를 자동으로 받아오지 않는지, 그 원리와 확실히 갱신하는 방법을 정리했습니다.

2026. 7. 11.

삭제한 기능이 남긴 참조가 새 빌드를 죽였습니다

서버를 옮기며 오래된 코드를 새로 빌드하자, 잘 돌던 화면이 첫 렌더부터 하얗게 죽었습니다. 5개월 동안 배포하지 않은 main에 숨어 있던, 삭제된 기능이 남긴 dangling 참조를 추적한 기록입니다.

2026. 7. 10.

무중단 서버 이전: DNS 컷오버와 Let's Encrypt 타이밍 함정

이미지를 옮기고 DNS만 바꾸면 끝일 줄 알았는데, Let's Encrypt 인증서가 발급되지 않았습니다. 무중단 이전의 설계와, TTL을 미리 낮추지 않아 인증서 발급이 지연된 함정을 로그와 함께 정리했습니다.

2026. 7. 9.

arm64 Docker 빌드가 QEMU에서 멈출 때: 네이티브 러너로 해결

빌드를 GitHub Actions로 옮겼더니, x86 러너 위 QEMU 크로스빌드가 프론트엔드에서 6시간 멈춰 죽었습니다. 비결정적 hang의 원인과, 네이티브 arm64 러너로 6시간을 1분 34초로 줄인 과정을 정리했습니다.

2026. 7. 8.

빌드는 CI에서, 실행은 서버에서: GHCR pull-only 배포

작은 서버는 앱을 실행할 여유는 있어도 빌드에서 죽습니다. 빌드를 GitHub Actions로 빼고 서버는 완성 이미지를 받아 실행만 하는 pull-only 구조와, private 레지스트리 인증까지 정리했습니다.

2026. 7. 7.

정품 인증 안 한 윈도우, 정품과 정말 차이 없을까

'워터마크만 감수하면 정품과 다를 게 없다'는 무인증 윈도우 이야기. 실제로 뭐가 막히고 뭐가 되는지, 합법과 불법 사이 어디쯤인지, 마이크로소프트 공식 문서와 약관을 직접 대조해 따져봤습니다.

2026. 7. 6.

쿠팡 윈도우 정품 탑재 노트북, 그 '정품'의 정체를 파봤습니다

프리도스 노트북에 윈도우를 얹어 파는 '정품 탑재' 제품. 정품을 따로 사면 십수만 원인데 가격 차이는 왜 작을까요. 셀러들이 쓰는 라이선스의 정체를 가격 구조와 자료로 좇아봤습니다.

2026. 7. 5.

서브에이전트 모델 티어링: 위임까지 최상위 모델일 필요는 없습니다

메인 에이전트를 가장 비싼 모델로 켜둔 어느 날, 로그 몇 줄 요약하는 서브에이전트까지 같은 모델을 상속하고 있다는 걸 뒤늦게 알아차렸습니다. 무지성 상속도 다운그레이드도 답이 아니었습니다. 작업마다 최저 충분한 모델 티어를 고르는 판정 기준을 정리했습니다.

2026. 7. 4.
<이전12345...24>다음