happy_various AI 실전 기록

LLM 중계기 개발기 5부 · 24편 / 전체 33편

2026년 10월 1일 기준

이 글에는 제휴 링크가 없고 OpenAI·앤트로픽과 아무 관계가 없습니다. 제가 직접 만든 중계기의 개발 기록을 바탕으로 썼습니다. 삽화는 GPT 이미지 생성, 도식은 직접 제작했습니다.

조용한 업데이트는 멈춘 줄 안다 — 층 표시 없는 엘리베이터 (LLM 중계기 개발기)

엘리베이터를 기다리는데 문 위의 층 표시가 꺼져 있다고 해 볼게요. 버튼은 눌렀고 불도 들어왔어요. 그런데 엘리베이터가 지금 몇 층에 있는지, 내려오고는 있는지 알 길이 없습니다. 조금만 지나도 버튼을 한 번 더 누르게 되고, 문에 귀를 대 보게 되고, 계단 쪽을 쳐다보게 되죠. 고장 난 건 아닐까 싶어서요.

층 표시가 켜져 있었다면 어땠을까요? 엘리베이터가 오는 데 걸리는 시간은 똑같아도, 숫자가 하나씩 바뀌는 걸 보면서 우리는 그냥 기다립니다. 달라진 건 표시 하나뿐인데 말이죠.

제가 만든 LLM 중계기의 자동 업데이트가 꼭 층 표시 없는 엘리베이터였어요. 업데이트를 시작하면 화면 구석의 중계기 아이콘이 사라지고, 그다음에는 아무것도 보이지 않았습니다. 몇 초, 어떤 컴퓨터에서는 수십 초 동안이요.

이 글은 LLM 중계기 개발기의 24편입니다. 지난 23편 「자동 업데이트가 계속 되돌아간 이유」에서는 자동 업데이트를 윈도 설치 프로그램 방식으로 바꾼 이야기를 했어요. 오늘은 그 설치 프로그램이 너무 조용해서 생긴 일입니다.

층 표시가 꺼진 엘리베이터 앞에서 버튼을 누르고 문에 귀를 대 보는 로봇들 (GPT 이미지 생성)

결론 요약

🛗 1. 아이콘이 사라진 뒤의 빈 시간

중계기는 화면 오른쪽 아래, 시계 옆의 작은 아이콘 자리(트레이)에 떠 있는 앱이에요. 새 판이 나오면 이 트레이 아이콘의 메뉴에서 업데이트를 합니다. 23편에서 설치 프로그램 방식으로 바꾼 뒤의 흐름은 이랬어요.

① 트레이 메뉴에서 ‘업데이트 확인 및 설치’를 누르고, 확인 창에서 ‘예’를 누른다 ② 중계기가 새 판의 설치 프로그램을 내려받고, 파일 크기와 지문(해시)으로 진짜인지 확인한다 ③ 하던 요청이 끝나기를 기다렸다가, 설치 프로그램을 실행하고 스스로 꺼진다 ④ 설치 프로그램이 파일을 새것으로 바꾸고, 끝나면 중계기를 다시 켠다

③에서 중계기가 스스로 꺼지는 데는 이유가 있어요. 윈도에서는 보통 실행 중인 프로그램의 파일을 그대로 바꿔 끼울 수 없거든요. 21편에서 꺼지지 않고 남은 프로그램이 설치 파일을 붙들어 설치가 멈춘 이야기를 했죠. 그래서 설치가 시작되면 트레이 아이콘이 사라집니다.

문제는 ③과 ④ 사이였어요. 사용자 눈으로 보면 이렇습니다.

마지막 줄까지 기다린 사람에게는 아무 문제가 없어요. 그런데 기다리는 사람은 마지막 줄이 올지 모릅니다. 실제로 써 본 쪽에서 “중단된 줄 알았다”는 피드백이 돌아왔고, 릴리스 노트(판마다 바뀐 점을 적는 문서)는 업데이트가 ‘멈췄거나 고장 난 것처럼 보였다’고 적었어요.

이날은 8월 20일, 설치 프로그램 방식으로 바꾼 바로 그날이었어요. 바꾼 판(v0.1.80)이 오후 2시 반쯤 나왔고, 이 문제를 고친 판(v0.1.84)은 같은 날 저녁 7시 무렵에 나왔습니다. 21편에서 이야기한 ‘실행 중인 앱 닫는 중’에서 멈춘 설치 사고도 같은 날 오후의 일이에요.

🤫 2. 설치 프로그램의 ‘조용히’와 ‘아주 조용히’

중계기의 설치 프로그램은 널리 쓰이는 설치 프로그램 제작 도구(Inno Setup)로 만들었어요. 이런 설치 프로그램은 실행할 때 붙이는 옵션으로 사람에게 얼마나 말을 걸지 정할 수 있습니다.

실행 방식화면에 보이는 것
보통 실행‘다음 → 다음 → 설치’ 마법사 화면, 질문, 진행률 바
조용히 (SILENT)질문·마법사 없이 진행률 바 창만
아주 조용히 (VERYSILENT)아무것도 없음

설치 프로그램으로 바꾸던 날, 자동 업데이트는 ‘아주 조용히’로 실행하게 해 두었어요. 묻지 않고 알아서 끝나는 것 자체는 자동 업데이트에 어울려요. 문제는 그 침묵이 트레이 아이콘이 사라진 직후와 겹쳤다는 점이에요. 중계기는 꺼졌고 설치 프로그램은 보이지 않으니, 화면 어디에도 “지금 이 일을 하고 있어요”라고 말해 줄 쪽이 남아 있지 않았습니다.

그럼 알림은 없었을까요? 있었어요. 설치 프로그램을 실행하기 직전에 트레이가 풍선 알림을 띄웠습니다. “설치를 시작합니다. 설치가 끝나면 자동으로 다시 실행됩니다.” 문장도 친절했고요. 그런데 이 풍선에는 약점이 두 가지 있었어요.

엘리베이터로 치면 “곧 도착합니다” 방송을 한 번 하고 끝낸 셈이에요. 방송을 못 들은 사람에게는 꺼진 층 표시만 남습니다.

📊 3. 진행률 바 창 하나

고친 방법은 옵션 한 단어였어요. ‘아주 조용히’를 ‘조용히’로 바꿨습니다.

이제 업데이트 중에는 작은 창 하나가 떠서, 파일을 바꾸는 동안 진행률 바가 차오릅니다. 마법사도 질문도 없으니 사람이 눌러야 할 것은 없어요. 바가 다 차면 창이 닫히고, 예전처럼 중계기가 스스로 다시 켜집니다.

릴리스 노트는 이 창을 이렇게 설명해요. 풍선 알림은 윈도의 집중 지원이 억제할 수 있으니, 이 창이 업데이트가 진행 중이라는 유일하게 보장되는 신호라고요. 알림이 꺼져 있어도, 다른 창을 보다가 돌아와도, 일이 끝날 때까지 창은 그 자리에 있습니다.

같은 업데이트를 사용자 눈으로 본 전과 후 — 빈 시간과 진행률 바 창, 그리고 8월에 붙인 진행 신호 넷 (직접 제작)

4편부터 이어 온 ‘고장 하나에 검사 하나’ 습관대로 검사도 붙였어요. 설치 프로그램을 실행하는 설정이 ‘조용히’인지 확인하고, ‘아주 조용히’가 다시 들어오면 실패하는 검사예요. 나중에 누군가 “자동 업데이트니까 더 조용한 게 낫겠다”며 되돌리려 해도, 검사가 먼저 실패해서 알려 줍니다.

상자를 들고 다리를 건너는 로봇 뒤로 등불이 하나씩 켜진다 (GPT 이미지 생성)

🧱 4. 함정 — 표시판을 다는 날은 아직 표시판이 없다

고친 판에는 함정이 하나 있었어요. 릴리스 노트의 업그레이드 안내를 우리말로 옮기면 이렇습니다.

새 동작은 이 판이 다음 업데이트를 할 때 적용된다. 0.1.83 이하에서 0.1.84로 올리는 업데이트는 여전히 보이지 않게 돈다.

왜 그럴까요? 설치 프로그램을 ‘조용히’ 돌릴지 ‘아주 조용히’ 돌릴지는 설치 프로그램이 아니라 지금 깔려 있는 중계기의 트레이가 정하기 때문이에요. 0.1.83에서 0.1.84로 올라가는 순간, 설치 프로그램을 실행하는 쪽은 아직 옛 판인 0.1.83입니다. 옛 판은 옛 습관대로 ‘아주 조용히’를 붙여요. 진행률 바 창은 0.1.84가 깔린 뒤, 그 0.1.84가 다음 판을 설치할 때부터 보입니다.

엘리베이터에 층 표시판을 새로 다는 공사 날을 떠올리면 쉬워요. 표시판을 싣고 올라가는 그 엘리베이터에는 아직 표시판이 없죠.

23편의 구조와도 닮았어요. 거기서도 새 판이 제대로 켜졌는지 판정한 건 옛 판이었고, 고친 판으로 가는 길을 옛 판이 막고 있었죠. 업데이트를 고칠 때는 “이 고침은 누가 실행하나?”를 먼저 물어야 했어요. 고침이 새 판 안에 들어 있으면 그 효과는 한 박자 늦게 옵니다. 그래서 릴리스 노트는 이번 한 번은 아직 조용할 거라는 사실을 숨기지 않고 적어 두었어요.

🌀 5. 돌아보면 네 번째였다

사실 ‘아무것도 안 보이면 멈춘 줄 안다’는 교훈은 이번이 처음이 아니었어요. 8월 한 달 동안 화면 곳곳에서 같은 문제를 하나씩 고쳤습니다.

① 연결 확인 카드 — 시계가 가는 화면 (8월 3일, v0.1.40) 6편에서 이야기했듯 Codex나 Claude 같은 명령어 도구 AI는 내 컴퓨터에서 켜야 대답하고, 처음 켤 때는 준비 시간이 들어요. 그런데 관리 화면에서 ‘연결 확인’을 누르면 버튼 옆에 “연결 중…” 한 줄만 떠 있었어요. 이 한 줄은 1초 뒤에도, 1분 뒤에도 똑같았습니다.

이날부터는 연결을 기다리는 동안 작은 카드가 떠요.

연결은 얼마나 남았는지 미리 알 수 없는 일이라 진행률 대신 경과 시간을 보여 줘요. 남은 시간을 모를 때는 지난 시간이라도 보여 주는 거예요. 이 카드를 지키는 검사의 이름도 의미심장해요. ‘연결은 경과 시간을 보여 주고, 여러 번 누르는 데 기대지 않는다.’ 아무것도 안 보이면 사람은 버튼을 다시 누르니까요. 다음 날에는 명령어 도구의 설치와 로그인 과정에도 같은 모양의 카드가 붙었어요.

② 멈춘 스피너 — 도는 척도 안 하는 표시 (8월 6일, v0.1.50) 그런데 이 회전 표시가 어떤 컴퓨터에서는 돌지 않았어요. 윈도에는 화면의 움직임을 줄여 달라는 설정(애니메이션 효과 끄기)이 있어요. 중계기 화면은 그 설정을 존중해서, 설정이 켜진 컴퓨터에서는 스피너를 멈춘 채 조금 흐리게 보여 주고 있었어요.

멈춘 스피너는 무엇처럼 보일까요? 멈춘 화면처럼 보입니다. 경과 시간 숫자는 가고 있어도, 카드에서 가장 눈에 띄는 동그라미가 굳어 있으면 ‘멈췄다’는 인상을 먼저 줘요.

그래서 오래 걸리는 로그인·연결 표시만은 그 설정에서도 돌게 했어요. 대신 그 설정에서는 평소(한 바퀴 0.85초)보다 조금 느리게, 한 바퀴 1.1초로 돌아요. 채팅 답을 기다리는 점 세 개 같은 다른 움직임은 지금도 그 설정을 그대로 따릅니다. 움직임을 줄여 달라는 부탁은 존중하되, ‘일하는 중’이라는 신호만은 남긴 거예요.

거미줄이 걸린 채 멈춘 회색 고리와 힘차게 도는 노란 고리를 비교해 보는 로봇 (GPT 이미지 생성)

③ 트레이 아이콘 — 빨간 정지 표시 대신 도는 고리 (8월 12일, v0.1.66·v0.1.68) 중계기를 켜면 트레이의 상태 줄이 ‘최초 실행 준비 중’, ‘서버 시작 중’, ‘모델 확인 중’으로 바뀌며 준비를 해요. 그런데 이 준비 단계 동안 아이콘은 빨간 정지 아이콘이었어요. 실패했거나 꺼졌을 때와 같은 모양이요. 준비가 오래 걸리는 컴퓨터에서는 켜자마자 고장 표시를 한참 보고 있어야 했죠.

이날 낮에 나온 판(v0.1.66)부터는 준비 단계 동안 아이콘 위에서 노란 고리가 돌아요. 0.14초마다 한 칸씩 넘어가는 여덟 장의 그림이에요. 실패·중지·꺼짐은 그대로 빨간 정지 아이콘이라, 이제 아이콘만 봐도 ‘죽은 것’과 ‘준비 중’이 갈립니다.

같은 날 저녁 판(v0.1.68)에는 두 가지를 더했어요.

그리고 8월 20일의 업데이트가 네 번째였어요. 이번에는 신호를 띄울 화면 자체가 없는 순간이었다는 점이 달랐죠. 트레이 아이콘도 관리 화면도 꺼져 있는 그 시간에는 설치 프로그램만이 “아직 일하는 중”이라고 말할 수 있었어요.

📋 6. 남긴 규칙 — 기다리게 할 거면 보여 준다

네 번의 고침을 모으면 규칙이 이렇게 남아요.

정리

① 자동 업데이트의 설치 프로그램이 ‘아주 조용히’ 돌아서, 트레이 아이콘이 사라진 뒤 몇 초, 어떤 컴퓨터에서는 수십 초 동안 아무것도 보이지 않았고 “중단된 줄 알았다”는 피드백이 왔어요 ② ‘조용히’로 바꿔 진행률 바 창 하나를 띄웠어요. 숨겨질 수 있는 알림 대신 남아 있는 창을 신호로 삼았고, 이 효과는 고친 판이 다음 업데이트를 할 때부터 나타나요 ③ 그 전에도 경과 시간을 보여 주는 연결 카드, 움직임을 줄이는 설정에서도 도는 스피너, 준비 중에 도는 트레이 아이콘으로 같은 교훈을 배웠어요 — 기다리게 할 거면 보여 줘야 해요

다음 25편은 「무거운 껍데기를 걷어내다」예요. 중계기를 감싸고 있던 무거운 앱 껍데기를 걷어내자 메모리와 내려받는 크기가 얼마나 줄었는지 이야기할게요.


2026년 10월 1일 기준입니다. 제가 만든 중계기의 개발 기록(저장 기록과 릴리스 노트)을 바탕으로 썼고, 특정 기업·서비스의 공식 입장이 아닙니다.