10 파이스의 두 번 이사 — PC → 맥북 → 맥미니
이 페이지 목차
목적만든 순서1 · 이사 전 준비 — 계산부터 맥북으로 (8/19~8/20)2 · 1차 이사 — PC → 맥북 (8/20 오후 ~ 8/21 아침)3 · 첫 함정 넷 — .env BOM · gui 도메인 · 아침의 어댑터 · 빠진 감시기와 자기 bootout (8/20~8/31)4 · 아흐레 동안 파이스가 두 마리였다 (8/20~8/29)5 · 실행 전에 취소한 안 — 우분투 미니PC (9/15)6 · 2차 이사 — 맥북 → 맥미니 M4 (9/17)7 · 이사 뒤 남은 것 (9/17 저녁)8 · 메이저 업그레이드가 반만 살려 놓은 날 (9/19)9 · 설정 사본과 실물 맞추기 · 일감을 launchd 에 직접 (9/25, 10/1)10 · 10/8 새벽 — 로그인 세션째 내려간 6시간 반💡 설명함정과 배운 것출처뒷이야기 · 10 / 17단계 · 2026-08-19 ~ 10-08 · 갈래 파이스
이전 단계: 09 회사 자료를 파이스에 — 색인과 MCP 창구 · 다음 단계: 11 밖에서 배워 넣기 — 계약 감사 · Hermes · 기록 재생
핵심 요약
| 항목 | 내용 |
|---|---|
| 이 단계에서 한 일 | 파이스 본체를 24시간 켜 둘 집을 찾아 옮겼다. 8/20 밤 PC → 맥북, 9/17 맥북 → 맥미니. 그 사이 9/15 에 세운 우분투 미니PC 안은 실행하기 전에 취소했다. 실제 이사는 두 번이다. 옮길 때마다 새 함정을 배웠고, 10/8 새벽에 로그인 세션째 내려간 사고로 이 단계가 마무리됐다. |
| 기간 | 2026-08-19 ~ 10-08 (이사 8/20 밤 · 9/17) |
| 규모 | 8/19~8/21 커밋 30개(이사 당일 8/20 14개) · 9/15~9/17 커밋 19개(맥미니 이사 당일 9/17 4개, 그중 이사 문서 1개). 맥미니 이사는 설정을 하나도 고치지 않았다. 저장소의 launchd 사본 etc/launchd plist 15개 · 맥미니 launchd 에 com.pais.* 22개 등록(상시 서비스 7개, 나머지는 시각·주기 작업) |
| 다룬 도구 | macOS launchd · cloudflared · DNS CNAME · Tailscale · SSH · git push(updateInstead) · smbfs · 맥미니 M4 |
| 결과 | PC 가 꺼지면 파이스도 꺼지는 구조 → 로그인만 되면 스스로 뜨는 맥미니(9/17 재부팅 실측: 자동 로그인까지 49초, 파이스 응답까지 약 1분) · 10/8 사고는 01:43 로그인 세션 종료 → 08:17 재부팅 명령 → 08:30 로그인 안정(재부팅 명령부터 약 13분, 맥 로그인 기록) |
| 공개 범위 | 사내(로그인 뒤) — 🔒 주소 · IP · 호스트 이름 · 토큰 · NAS 경로는 넣지 않음 |
한 줄 요약 — 이사는 코드 몇 줄이 아니라 "로그인해야 뜨는 서비스"와 "두 마리가 되는 틈"과의 싸움이었고, 겪은 함정은 저장소 규칙과 점검 스크립트로 남았다.
10단계 · 파이스의 두 번 이사 — PC → 맥북 → 맥미니
목적
파이스는 8월 초 PC 에서 시작해 PC 에서 돌았다. 밖에서 여는 주소(터널)는 문일 뿐 서버가 아니어서 PC 가 꺼지면 파이스도 꺼졌다. 터널이 있으면 PC 가 꺼져도 된다는 오해를 8/20 에 바로잡았다(기억 노트). 비서가 24시간 살아 있으려면 24시간 켜 두는 기계가 필요했다.
이 단계는 그 집을 찾아 옮긴 기록이다. 실제로 옮긴 건 두 번(8/20 PC → 맥북, 9/17 맥북 → 맥미니)이다. 그 사이 9/15 에 세운 우분투 미니PC 안은 실행하기 전에 취소했다. 취소한 계획도 이사의 일부라서 같이 적는다.
만든 순서
1 · 이사 전 준비 — 계산부터 맥북으로 (8/19~8/20)
8/19 09:55(53b52b0)에 로컬 모델 계산을 맥북으로 넘겼다. 커밋 메시지의 목표는 "데스크탑을 최대한 가볍게, 맥북에 많이 얹기"였다. M4 16GB 를 핫스팟 너머로 재서 정했다.
- 임베딩(글을 숫자 줄로 바꾸는 계산, bge-m3): PC 131ms/건 → 맥 114ms/건. 13% 빠르다. 117만 장이면 5시간 차이다.
- gemma4:12b: 첫 호출 32.4초(모델 올리기), 이후 5.6초 · 초당 12.8토큰 · 한국어 정확.
- 24GB 짜리 모델은
signal: killed로 죽었다. 16GB 램의 천장을 그렇게 확인했다.
옮긴 것은 계산이지 저장이 아니다. 볼트와 색인 파일은 PC 에 그대로 뒀다. 파이스가 PC 에서 도는 동안 옮기면 117만 장을 네트워크 너머로 훑게 되기 때문이다. 맥북 주소가 하루에 세 번 바뀌어서 8/20 15:45 에는 로컬 모델 주소를 쉼표로 여럿 적게 했다. 동시에 찔러 1.5초 안에 먼저 답하는 곳을 쓰고, 순서가 곧 우선순위다(4fdd58a).
같은 8/19 10:24(e8fb815)에는 "파이스가 죽었다"는 신고가 있었는데 파이스는 멀쩡했다. cloudflared(터널 프로그램)가 조용히 사라져 밖에서 530(터널이 끊겼다는 오류)이 나고 있었다. 본체는 감시기가 0.5초 만에 살리는데 터널은 아무도 안 보고 있었다. 감시기가 터널도 1분마다 확인하게 했고, 강제로 죽이니 20초 만에 되살아났다.
2 · 1차 이사 — PC → 맥북 (8/20 오후 ~ 8/21 아침)
이사는 밑에서부터 한 겹씩 했다.
- 두뇌 관문(omniroute): PC 의 백업 DB(85MB)를 맥에 복원했다. 공급자 36개 중 35개가 동기화됐고 복호화 오류는 0 이었다. PC 쪽은 내리고 자동 시작도 껐다. 로그인 토큰이 돌려쓰는 방식이라 두 대가 같은 계정을 갱신하면 서로 무효로 만든다. 맥의 계정 4개가 전부 error 였던 원인이 그것이었다.
- 9router(또 하나의 두뇌 중계 프로그램): 맥에서 상시로 띄웠다. 붙이자 관문의 모델 동기화가 35/36 에서 36/37 이 됐다.
- 파이스 본체(8/20 밤): launchd 로 띄웠다(이때 감시기를 빠뜨렸다는 것은 3번에서). 맥에서 셀프체크가 33/33 으로 통과했다. 이사에 맞춰 고친 커밋은 이날 다섯이다(제목으로 고른 수, 4fdd58a · 3e24dc7 · 55893a5 · bb9fefb · 23bb13b). 이식 코드는 이미 맥 분기가 있어 사실상 셀프체크 2건만 고쳤다. 설정의 주소는 전부 같은 기계(localhost)로 돌렸고, PC 의 파이스는 내렸다.
- NAS 카드 이송(8/21 아침): 맥에 1,659,632장이 들어갔다. PC 쪽은 1,659,633장이었다. 한 장 차이는 옛 한글 인코딩(CP949)으로 깨진 파일 이름을 맥의 파일 시스템(APFS)이 거부한 것이다. 예정된 손실이었다. NAS 15곳 자동 마운트도 첫 아침에 약속대로 붙었다.
- 터널과 DNS: 맥 전용 터널을 새로 만들고 주소의 CNAME 을 새 터널로 바꿨다(Cloudflare 대시보드에서만 된다). 맥 터널만 끄니 530, 켜니 200. 8/21 아침에 세 주소까지 옮긴 뒤 PC 터널을 통째로 꺼도 세 주소가 모두 맥에서 직접 응답했다.
- GitHub 저장소 전용 배포 키로 자가 업그레이드 고리를 이었다. 수정 → 검증 → 커밋 → 재시작 → 푸시를 파이스가 혼자 한다.
3 · 첫 함정 넷 — .env BOM · gui 도메인 · 아침의 어댑터 · 빠진 감시기와 자기 bootout (8/20~8/31)
- .env 의 BOM. 윈도우에서 만든
.env첫 줄에 BOM(글자 앞에 붙는 3바이트 표식)이 있었다. 관문이 변수 이름을 "BOM+이름"으로 읽어 암호화 키가 없는 것이 됐고, PC 백업을 복원하자 복호화 오류 205개와 전 공급자 Invalid API key 가 나왔다. 화면에는 연결이 있어 보이는데 호출만 전부 실패하는, 원인 찾기 제일 어려운 꼴이다. 시작 스크립트가 3바이트를 떼어 진짜 환경변수로 넘기게 했고.env는 건드리지 않았다. PC 쪽이 같은 파일로 돌고 있어서다. - launchd gui 도메인. 서비스를 사용자 로그인 세션(gui 도메인)에 올렸더니 로그인해야 뜬다. 재부팅 뒤에 자동으로 뜨게 하려면 자동 로그인이 필요했다. NAS 마운트가 Finder(화면 프로그램)를 쓰기 때문에 화면 세션이 필요했다는 사실은 확인했고, 설계 이유를 따로 적은 기록은 찾지 못했다.
- 8/21 아침의 배터리. 뚜껑을 여니 배터리가 줄고 CPU 가 200%씩 뛰었다. 진짜 원인은 30W 어댑터였다. 100W 정품으로 바꾸니 한 시간에 57% → 97%. 소프트웨어만 파다가 늦었다. 곁가지 하나는 바탕화면에 풀어 둔 카드 43만 개를 iCloud 가 올리고 있던 것이다. 큰 폴더는 Desktop 이나 Documents 아래에 풀지 않는다.
- 빠진 감시기와 자기 bootout. 8/20 에 맥의 plist(launchd 서비스 설정 파일)는 감시기(
runner.js) 없이server.js를 직접 띄웠다. 검증 통과 표식(last-good)은 감시기만 쓰는데 그게 없으니 GitHub 푸시 판정이 영원히 "기다림"이었고, 파이스의 자동 푸시는 "검증이 제 시간에 끝나지 않아 못 올렸어요"라는 엉뚱한 메시지로 막혔다(셀프체크는 5초면 끝난다). 8/31 에 파이스가 스스로 진단해 plist 를 감시기로 고쳤고 진단도 처방도 옳았다. 그런데 그 처방을 적용하다 죽었다.bootout과bootstrap을 한 명령으로 돌리니 bootout 이 그 명령의 주인(파이스)을 죽여서 bootstrap 이 실행되지 않았고, KeepAlive 는 로드된 서비스만 지켜서 아무도 살리지 못했다. 몇 시간 죽어 있었다(475f83a). 세 겹으로 막았다.run_command가 파이스 서비스를 대상으로 한 bootout · unload · disable 을 거부하고kickstart -k를 안내한다(지금은cmd_guard.js차단 목록에도 있다). 5분마다 로드 여부를 보는 지킴이를 두었고, 되살리는 절차는 스크립트로 남겼다.
4 · 아흐레 동안 파이스가 두 마리였다 (8/20~8/29)
8/29 에 사용자가 "기억장치 업데이트 후부터 앞뒤 문맥을 이해 못한다"고 신고했다. 8/20 이사 때 PC 쪽 시작프로그램 파일(vbs)은 다 껐는데 작업 스케줄러의 "PAIS runner" 하나를 놓쳤다. 그 작업이 로그온마다 감시기를 살리고 감시기가 서버를 살려, PC 파이스가 아흐레째 따로 살림을 차리고 있었다(커밋 메시지는 "열흘째").
- 사용자의 "문맥을 못 알아듣는" 대화(맥북 제어 · SSH)는 전부 PC 파이스와 나눈 것이었다. 맥 기록에는 그 대화가 아예 없었다(검색으로 확정).
- 기억도 갈라졌다. 맥 120개, PC 64개 + 새것.
- 둘이 같은 저장소에 자가 커밋하며 NAS 훑기 경로를 서로 반대로 고쳤다(8/23 · 8/24 · 8/28). 8/29 맥의 02:00 NAS 작업이 실패한 원인이 이 다툼이었다.
조치(6bb1078, 8/29 10:49). PC 쪽 감시기를 은퇴시켰다. 작업 비활성화는 관리자 권한이 필요해 대상 vbs 의 이름을 바꿨다. PC 에만 쌓인 기억 12개를 골라 맥으로 옮겼다(새로 7개, 중복 5개 강화). NAS 훑기 스크립트는 윈도우와 맥을 가려 쓰게 해서 어느 쪽에서 돌아도 맞게 했다. 끝이 아니었다. 이름을 바꾸자 스케줄러가 로그온마다 없는 파일을 찾아 에러창을 띄워서, 아무것도 안 하는 주석뿐인 vbs 를 제자리에 두었다(2a9fb8e). 시작프로그램 폴더의 파일은 이름만 바꾸면 부팅마다 "이 파일을 어떻게 열까요?" 창이 떠서 폴더 밖으로 옮겨야 한다는 것은 이틀 뒤(8/31) 신고로 알았다. 한글 경로를 글자 그대로 쓴 vbs 는 깨져서 8월 내내 조용히 실패하고 있었다.
5 · 실행 전에 취소한 안 — 우분투 미니PC (9/15)
맥북은 개인 소유라 집으로 가야 했다. 그래서 회사 책상의 서버를 다시 골라야 했다. 9/15 기억 노트는 "아무것도 사지 않는다"로 결정했다. 가지고 있던 게이밍 미니PC(라이젠 7840HS)에 우분투 서버를 깔고 launchd 설정 6개를 systemd 로 옮기는 2~3일짜리 계획이었다. 이유는 셋으로 적었다. 램 값이 올라 증설 비용이 맥미니 한 대 값에 가까웠고, 맥이어야 할 이유가 없었고(맥 전용 실행 코드가 7개 파일 30줄), 대역폭 차이가 이 용도에는 작았다. 유일한 불확실성도 적었다. 이 미니PC 의 내장 그래픽에서 Ollama 가 도는지였다.
그 안은 실행되지 않았다. 기억 노트에 따르면 사용자가 9/15 에 맥미니 M4 를 샀고, 그래서 우분투 안은 취소됐다. 맥에서 맥으로 옮기니 이사 비용도 거의 들지 않았다. 안이 문서뿐이어서 취소하는 데 든 작업은 없었다.
6 · 2차 이사 — 맥북 → 맥미니 M4 (9/17)
맥미니 이사는 마이그레이션 도우미(예전 기계의 내용을 새 기계로 옮겨 주는 macOS 기능)로 했다. 예상보다 훨씬 많이 따라왔다. 기억 노트에 "시스템 경로(/usr/local, /opt)는 안 온다"고 적었던 것은 틀렸다. node 가 든 /usr/local 360MB, brew · ollama · tailscaled 가 든 /opt/homebrew 824MB 가 통째로 왔고 Homebrew 를 다시 깔 일이 없었다.
전송 전에 먼저 한 일. 안 쓰던 로컬 모델 폴더 123GB 를 지워 227GB 를 104GB 로 줄였다. 이름만 바꾸는 것은 소용없다. 홈 폴더 안에 있으면 그대로 퍼가기 때문이다.
순서는 이랬다(재현 가능).
- 맥미니 첫 로그인 직후 파이스 서비스 10개를 내리고 plist 를 보류함으로 옮긴다. 두 마리를 막는다.
- 원격 로그인(ssh)을 켠다.
~/.ssh권한이 틀어져 열쇠가 거부되므로 소유자와 권한을 고치고, IP 로 직접 붙으면 설정의 열쇠가 안 걸리니 이름 블록을 만든다. - 서비스를 밑에서부터 하나씩 올린다. Ollama → 관문 → NAS 마운트 → 서버 → 터널.
- 재부팅해서 자동 로그인을 확인한다.
재부팅 실측(9/17). 전원 → 네트워크 5초 → ssh 열림 → 자동 로그인 49초 → 파이스 응답 1분. 서비스 9개, 터널 3주소 200, NAS 15곳. 계정 이름이 같아 절대 경로가 전부 맞아서 설정은 하나도 고치지 않았다. 이사 당일 커밋은 4개이고 이사와 관련된 것은 CLAUDE.md 갱신 하나(74f0120)였다.
함정은 셋이었다. Ollama 앱이 로그인하면서 포트를 먼저 차지해 서비스가 address already in use 로 죽었다(앱을 로그인 항목에서 빼야 한다). NAS 마운트는 화면(Finder)이 필요해서 잠금 화면에서는 조용히 실패했다. 같은 공유가 두 번 마운트되면 이름 뒤에 -1 이 붙었다.
7 · 이사 뒤 남은 것 (9/17 저녁)
- 맥북은 그날 저녁 원격으로 은퇴시켰다. 그런데 사용자가 맥북에 로그인하자 파이스 서비스 10개가 자동으로 떠서 잠깐 두 마리가 됐다(gui 도메인이라 로그인하면 뜬다). 증상은 "SMB 연결 창이 계속 뜬다"였다. 마운트 서비스가 2분마다 NAS 15곳을 붙이려 한 것이다. 이번엔 겹친 시간이 짧아 맥미니 · 깃허브 차이가 0 이었다. 8월에는 아흐레여서 사고가 됐다.
- 파이스 본체는 8787 번 포트이고 8788 은 감시기다. 8788 로 API 를 부르면 경로가 전부 404 가 나서 "내 코드가 틀렸나"로 헛짚는다. 실제로 그랬고
CLAUDE.md에 함정으로 적었다. - git 원격 하나가 은퇴한 맥북 주소를 가리키고 있었다. 그 주소는 DHCP 로 남의 기계에 넘어갔다. 남의 기계에 푸시할 뻔했다. 원격을 맥미니로 바꿨고 푸시는 맥미니와 GitHub 두 곳이다.
- tailscaled(밖에서 맥에 붙는 사설 접속망 프로그램)가 껍데기로 떠 있었다. 데몬은 살아 있는데 명령줄 도구가 소켓을 못 찾았다. 서비스를
kickstart -k로 다시 띄워 풀었다. - 새 맥이라 Xcode 라이선스 동의가 없어서
git이 전부 실패했다. 파이스의 자가 업그레이드가 통째로 막힌 것인데 대화는 멀쩡해서 겉으로는 안 보인다. 사용자가 직접 동의해서 풀었다. - 원격 데스크톱 프로그램이 끊길 때 맥을 잠그는 설정(
host_lock_desktop)이 있어서 로그인 화면이 떴다. macOS 설정이 아니라 그 프로그램의 설정이었다. 잠겨도 로그아웃은 아니라서 파이스는 안 죽었다(실측).
8 · 메이저 업그레이드가 반만 살려 놓은 날 (9/19)
9/19 14:51 에 macOS 26.7 → 27.0 업그레이드로 재부팅했다. 로그인 항목과 백그라운드 항목이 전부 꺼졌다. launchd 9종이 등록만 되고 실행 번호(PID)가 안 붙었고, 원격 데스크톱 프로그램도 안 떠서 화면으로 들어갈 수도 없었다. 그런데 ssh 는 되고 색인 파일도 멀쩡했다. 겉보기엔 살아 있는데 사내 문서 검색만 죽어 있었다. 자동 로그인이 켜져 있어서 로그인 때문이 아니었고, 그래서 더 헷갈렸다.
점검 스크립트 mini-check.sh 를 만들어 서비스 · 포트 · 터널 · NAS · 색인 · 실제 검색까지 한 번에 본다(3e2c0a2). 검사 두 개는 일부러 조였다. 터널은 curl -f(오류 응답이면 실패로 치는 옵션)로 본다. 뒤가 죽어 502 여도 curl 자체는 성공이라 거짓 통과였고 실제로 속았다. launchd 는 등록이 아니라 PID 가 붙었는지를 본다. 되살리기 스크립트는 kickstart -k 만 쓴다. 근본 해결은 로그인 항목을 다시 켜는 것이고 화면이 필요한 일이다.
9 · 설정 사본과 실물 맞추기 · 일감을 launchd 에 직접 (9/25, 10/1)
파이스는 저장소를 읽고 스스로 고치므로 틀린 사본은 틀린 전제가 된다. 9/25 에 저장소의 launchd 사본이 맥 실물과 어긋난 것을 찾았다. 백업 plist 는 02:30 으로 남아 있는데 실물은 17:20 이었고, 부르는 스크립트도 저장소 밖 사본이었다. 사본을 실물과 맞추고 파이스 일감 plist 를 etc/launchd/ 에 실물 그대로 두었다. 밤 채점에는 '설정' 갈래를 만들어 저장소 plist 와 맥의 사본을 실행 명령 · 시각 · 주기 · KeepAlive 까지 대조하게 했다(3721ee8).
10/1 02:00 에는 NAS 훑기 회차가 로그에 없었다. 그 예약은 파이스의 두뇌가 명령 한 줄을 부르는 방식이었는데, 관문과 비상 두뇌가 다 끊겨 도구를 하나도 못 불렀고 그런데도 "done" 으로 기록됐다. 실패 기록도 알림도 없었다. 명령 한 줄짜리 일감(NAS 훑기 · 임베딩 · 플랫폼 동기화)은 두뇌에 맡길 이유가 없으니 launchd 가 직접 부르게 하고, 두뇌에는 "어제 결과 보고"만 남겼다(7d205f6). 두뇌가 끊겨도 이제 보고만 빠진다. 두뇌 전면 실패는 'done' 이 아니라 'error' 로 기록한다.
10 · 10/8 새벽 — 로그인 세션째 내려간 6시간 반
맥미니 이사 3주 뒤 사고가 났다. 맥미니 로그와 커밋 메시지(45b4669)를 맞춰 보면 순서는 이렇다.
- 01:05 밤 도면 처리가 태그 2,300개짜리 P&ID(배관·계장 도면) 한 장의 장비 읽기를 맥미니의 gemma4 로 시작했다.
- 01:14 파이스의 이벤트 루프가 멈췄고 강제로 다시 시작됐다. 01:17 셀프체크 실패, 헬스 무응답 반복, gemma4 요청 셋이 11~14분 만에 실패했다.
- 01:43 WindowServer(화면 서버)가 "응답 없음 감시(watchdog)"로 죽었고 loginwindow 가 로그인 세션을 강제로 종료했다. 서버 · 감시기 · 터널 · Ollama · NAS 마운트가 전부 그 로그인 세션(gui 도메인) 안에 있어서 한꺼번에 꺼졌다.
- 08:17 사용자가 ssh 로 재부팅 명령을 내렸다. 곧 자동 로그인으로 돌아왔고(로그인 기록 08:17~08:25) 커밋 메시지는 08:21 에 전부 복구됐다고 적었다. 그런데 08:25 에 다시 내려가 종료가 한 번 더 멈췄고(진단 보고서 08:17, 08:26) 08:28 에 다시 부팅해 08:30 에 자동 로그인이 안정됐다. 재부팅 명령부터 마지막 안정까지 로그인 기록으로 약 13분이다. 두 번째 재부팅의 원인은 확인하지 못했다. 지금 macOS 가 27.0.1 이라 업데이트 설치와 겹쳤을 수 있다.
알아보는 법은 하나다. ssh 는 되는데 launchctl list 에 com.pais.* 가 없고 콘솔 사용자가 root 면 이 사고다. 살리는 법은 자동 로그인이 돌아오게 재부팅하는 것이다. 같은 시각에 macOS 의 소프트웨어 업데이트 프로그램이 1~2분마다 돌고 있어 원인은 겹친 부하로 추정하지만 확정하지 못했다.
막은 것은 하나다. 큰 도면 장비 읽기는 맥북에서만 돌린다. 맥북이 안 닿으면 그 밤은 요약만 하고 맥미니로 물러서지 않는다(45b4669). 앞서 10/4 에는 맥미니 메모리가 빠듯해(여유 5~13%) 도면 요약을 맥북으로 나눴고(831828c), 10/7 에는 맥북 와이파이 주소가 바뀌고 이름 찾기도 답이 없어 요약이 계속 맥미니로 갔다(365fd17). 은퇴한 맥북이 계산 보조로 다시 쓰이고 있었고, 그 맥북이 안 닿는 날의 대비가 사고 뒤에 들어갔다.
💡 설명
- launchd · gui 도메인: 맥에서 프로그램을 자동으로 띄우고 지켜 주는 장치. gui 도메인은 사용자가 로그인한 화면 세션 안에서만 돈다. 로그아웃되면 그 안의 서비스가 같이 내려간다.
- 터널(cloudflared): 집이나 사무실 기계를 인터넷 주소와 이어 주는 통로. 서버가 아니라 문이다.
- DNS CNAME: 주소 이름이 어느 터널로 가는지 적어 둔 표의 한 줄. 이사는 이 줄을 바꾸는 일이다.
- KeepAlive: 서비스가 죽으면 launchd 가 다시 띄우게 하는 설정. 로드되지 않은 서비스는 못 지킨다.
- bootout · bootstrap · kickstart -k: launchd 서비스를 내리기 · 올리기 · 그 자리에서 다시 띄우기. 자기 자신에게 bootout 을 쓰면 안 살아난다.
- BOM: 텍스트 파일 맨 앞에 붙는 3바이트 표식. 윈도우 편집기가 붙이고 맥 프로그램이 첫 글자로 오해한다.
- 마이그레이션 도우미: 옛 맥의 내용을 새 맥으로 옮기는 macOS 기능.
- mDNS(.local 이름): 같은 망에서 기기 이름으로 서로 찾는 방식. 와이파이에서는 가끔 답하지 않는다.
- DHCP: 공유기가 기기에 주소를 빌려 주는 방식. 주소가 바뀔 수 있다.
- 이벤트 루프 · watchdog: 요청을 한 줄로 처리하는 일꾼과, 응답이 없으면 프로그램을 죽이는 감시 장치.
- 셀프체크 · 밤 채점: 파이스가 스스로 돌리는 시험과 새벽에 매일 도는 채점.
함정과 배운 것
- 이사 목록에는 시작 파일뿐 아니라 작업 스케줄러 같은 숨은 자동 실행도 넣는다. 놓치면 두 마리가 되고, 두 마리는 서로 다른 기억으로 대답하고 같은 저장소에 서로 반대로 커밋한다. "파이스가 이상하다"는 신고가 오면 어느 쪽과 대화했는지부터 확인한다.
- 같은 로그인 토큰을 두 곳이 갱신하면 서로 무효로 만든다. 옛 기계는 내리고 자동 시작도 끈다.
- 시작프로그램 파일은 이름만 바꾸면 부팅마다 "어떻게 열까요?" 창이 뜬다. 폴더 밖으로 옮긴다.
- 첫 줄 BOM 은 화면에 안 보이고 키만 없애 버린다. 윈도우에서 만든 설정 파일은 맥에서 첫 3바이트부터 본다.
- 맥의
launchd gui서비스는 로그인 세션과 운명을 같이한다. 자동 로그인 · 점검 스크립트 · 재부팅으로 살리는 길을 미리 문서에 둔다. - 반쯤만 살아 있는 상태(ssh 는 되고 검색만 죽음)가 제일 오래 간다. 점검은 등록이 아니라 PID 와 실제 검색으로 본다. 터널 점검은
curl -f. - 비대화형 ssh 의 zsh 에는
/usr/local/bin이 없어node를 못 찾는다. 전체 경로를 쓴다. 8/22 에 이것을 서비스의 문제로 오진해 코드를 고쳤다가 4분 뒤 "앞 커밋의 진단이 틀렸다"고 정정했다(75e2a93 → 3242aac). - 이사 뒤에는 옛 기계의 주소가 남의 기계가 된다. git 원격 · 설정에 옛 주소가 남지 않았는지 찾는다.
- 계획은 문서로 먼저 적어 두면 취소하기 쉽다(미니PC 안은 코드 한 줄 안 건드리고 취소했다). 그래도 새 기계는 처음 보는 사소한 막힘(라이선스 동의)이 자가 업그레이드를 조용히 막는다.
- 밤에 무거운 일감을 서버 기계 하나에 몰아 주지 않는다. 도면 한 장이 2,000~2,900초씩 걸리는 일을 메모리가 빠듯한 기계에서 돌리던 밤에 로그인 세션 전체가 죽었다(원인은 겹친 부하로 추정, 확정 못 함).
출처
커밋 53b52b0 · 4fdd58a · e8fb815 · bb9fefb · 23bb13b · 3e24dc7 · 55893a5 · 75e2a93 · 3242aac · 475f83a · 6bb1078 · 2a9fb8e · 74f0120 · 3e2c0a2 · 3721ee8 · 7d205f6 · 831828c · 365fd17 · 9708e8f · 45b4669. 문서: CLAUDE.md 함정 절 · etc/launchd/ · scripts/mini-check.sh · scripts/mini-revive.sh. 기억 노트: mac-server-setup · pais-server-migration · pais-ports · local-llm-setup.
← 09 회사 자료를 파이스에 — 색인과 MCP 창구 · 11 밖에서 배워 넣기 — 계약 감사 · Hermes · 기록 재생 →