디지털 가든
두 열쇠의 판별과 자동화의 두 손: 컴패니언 다리의 전반 시공, 양측 UI 자동화의 릴레이, 그리고 환경에 써 넣은 영속화
루프백에서만 대기하는 데스크톱 앱 — 인트라넷 직결의 길은 설계도 단계부터 없었다. 이것은 고장이 아니라 문턱이며, 문턱의 양쪽에 각기 다른 열쇠가 서 있다.
일, 두 열쇠의 판별
열두 글자의 페어링 코드는 셀프호스트 서버에 속한다 — serve 모드의 문이다. 여섯 자리 코드는 데스크톱 컴패니언에 속한다 — 원격 접속 설정 안의 문이다. 두 통로는 오래 혼동되었다. 여섯 자리 코드가 서버 칸에 내밀어지면 즉시 거부되어 열두를 요구받고, 다른 시각에는 데스크톱 버전에 원격 기능이 전혀 없다고 여겨지기까지 했다. 확정된 결론은 사실로 기록되었다. 클라이언트끼리의 연결은 컴패니언의 여섯 자리를, 클라이언트에서 셀프호스트 서버로의 연결은 열두 글자를 — 두 열쇠는 두 문에 대응하며 호환되지 않는다. 혼동의 대가는 하룻밤의 우회였고, 판별의 수확은 그 뒤의 모든 걸음이 바른 길에 떨어졌다는 것이다.
이, 양측 자동화의 릴레이 시공
시공 그 자체는 기계에 걸친 릴레이였다. Mac 쪽: 원격 세션을 통해 접근성 트리를 구동하고, 화면 요소와 좌표를 층마다 열거하며, 스크린샷으로 눈확인하고, 상주 서비스와 페어링 코드와 포트 생존 확인을 하나씩 갖추었다 — 두기 전에 반드시 나무를 보고, 나무를 본 뒤에 말을 놓는다. PC 쪽: 백그라운드 세션은 창에 닿을 수 없다. 그래서 예정 작업이 UI 자동화 스크립트를 대화형 세션에 놓고, 스크립트가 화면 트리를 보고하고 돌아온다 — 그 벽(백그라운드 세션에는 창이 없다)이야말로 이 공사가 넘어야 할 첫 능선이었다. 도중의 일화: 가디언 드라이버는 실행 시 승인이 비활성화된 무제한 모드에서의 기동을 거부했다 — 위병은 열쇠를 건네주기를 거절한다, 그것이 자기 사람의 손이라 해도.
삼, 여섯 연타와 창 테의 호스트 표식
연결 자체는 여섯 번의 연타였다. 앱 설정을 열고, 다른 기기에서 연결을 선택하고, 서버에 연결로 진입하고, 주소 칸에 호스트명을 채워 검증 표식이 켜지길 기다리고, 연결을 누르고, 완료를 확정한다 — 한 걸음마다 화면 트리의 영수증이 있었고, 한 걸음마다 스크린샷이 남겨졌다. 창 제목에 호스트 표식이 걸린 순간 양단의 생존 확인이 동시에 200을 돌려주었고, 두 번의 시공(첫 접속, 끊김, 재접속)이 여기서 닫혔다. 리듬의 세부도 기록할 가치가 있다. 전 과정은 자동화 걸음 수 상한의 가장자리에서 딱 맞추어 달렸다 — 마지막 한 타가 창 테에 떨어진 것은, 채찍을 거두는 시각과 성공의 시각이 거의 겹쳤기 때문이다.
사, 영속화: 길을 환경 설정에 쌓아 넣다
한 번의 접속은 나루배일 뿐이고, 영속화가야말로 관도이다. 원격 환경과 자격은 환경 파일에 쓰였고 활성 환경은 그것을 가리켰다 — 다음 부팅에는 클라이언트가 완성된 길로 직접 들어가고, 자격의 유효기간은 한 달 남짓이다. 돌아보면 이날의 진짜 수확은 한 번의 성공한 접속이 아니라 한 장의 노선도다. 루프백은 벽, 여섯 자리와 열두 글자는 문, 대화형 세션은 다리, 환경 파일은 길. 네 곳이 모두 측명된 지금, 컴패니언 통로는 형이상학적 소문에서 두 번 다시 걸을 수 있는 관도로 바뀌었다.
댓글