이 글은 Today I Learn 시리즈의 235번째 기록입니다. (총 235개)

내가 전달자가 되어 있었다

프로젝트가 늘면서 세션(프로젝트마다 하나씩 띄워 둔 Claude 대화창)끼리 할 말이 생겼다. 룸톤에서 개인정보처리방침 문구를 바꿔야 하는데 그 문구는 로그스톤 샵 쪽에 있는 식이다. 그럴 때마다 내가 룸톤 창에서 읽고 샵 창에 옮겨 적었다.

프로젝트가 셋일 때는 그게 일이라고 느껴지지도 않았다. 열이 넘으니 내가 병목이 됐다. 옮겨 적는 사이에 말이 조금씩 바뀌기도 했다.

그래서 세션들이 함께 보는 저장소에 INBOX라는 파일 하나를 두고 규약을 적었다. 말 그대로 받은 편지함이다. 누구에게 하는 말인지 제목에 쓰고, 처리되면 닫고, 자기 앞 항목만 본다. 나는 「할 말 있으면 거기 적어」만 하면 됐다.

기대하지 않은 이득이 둘이었다. 왕래가 전부 이력으로 남아서 「그때 뭐라고 했지」를 되짚을 수 있게 됐고, 말로 하던 부탁이 글이 되면서 애매한 요청이 줄었다. 적으려면 무엇을 원하는지 먼저 정해야 한다.

전달을 사람이 맡고 있으면 그 사람이 늘 수 있는 만큼만 일이 늘어난다.


앞 세션이 쓴 것이 사라졌다

세션들이 같은 폴더를 함께 쓴다. 거기서 두 종류의 사고가 났다.

하나는 올리지 않은 수정이 남의 저장에 실려 나간 것이다. 한 세션이 자기 글을 다시 쓰려고 파일 이름을 바꿔 둔 채 두었고, 다른 세션이 자기 작업을 올리면서 그 이름 변경까지 함께 올렸다. 남의 게시글이 라이브에서 내려갔다. 하루에 두 번 났다.

다른 하나는 공유 초안을 통째로 새로 쓴 것이다. 여러 세션이 같은 날짜 초안 하나에 각자 몫을 적는 구조였는데, 한 세션이 파일 전체를 새로 쓰면 앞 세션이 적어 둔 부분이 사라졌다. 초안은 저장 이력에 넣지 않는 파일이라(실수로 공개되지 않게 해 둔 것이다) 되돌릴 데도 없었다.

규약에 「남의 것을 건드리지 마라」를 적는 것으로는 안 멈췄다. 그래서 파일을 나눴다. 날짜 초안을 프로젝트별 조각 파일로 쪼개서 세션마다 파일 이름이 달라지게 했고, 올릴 때는 폴더 단위로 묶지 말고 파일 경로를 하나씩 적게 했다. 겹칠 파일이 없으면 덮어쓸 수도 없다.

지키라고 부탁해서 되는 일과, 못 하게 만들어야 되는 일은 다르다. 같은 사고가 두 번 나면 규율이 아니라 구조를 본다.


닫히지 않는 항목이 쌓였다

INBOX 항목 상태를 대기·완료·반려 셋으로 뒀다. 그런데 전 세션에 알리는 공지가 계속 대기로 남았다. 받는 쪽이 열 곳이 넘으니 전부 회신할 때까지 닫히지 않는데, 사실 회신을 받아야 하는 공지도 아니었다. 목록이 불어서 세션들이 자기 앞 항목을 찾기 어려워졌다.

상태를 하나 더 만들었다. 「공지」는 회신 없이 그 자리에서 닫힌 것으로 본다.


같은 프로젝트가 사이트에서 두 줄로 갈렸다

로그 목록에 같은 프로젝트가 두 번 나타났다. 세션마다 이름을 조금씩 다르게 적어서였다. 글에 붙이는 꼬리표도 마찬가지로 ClaudeCode와 Claude Code가 따로 세어져서, 하나를 누르면 절반만 나왔다. 사람 눈에는 같은 말이고 사이트에는 다른 말이다.

이름 정본 표를 INBOX 맨 위에 만들고, 새 이름을 붙이기 전에 거기를 먼저 보게 했다. 여러 낱말은 붙여 쓰기로 정했다.

이름이 갈리면 도구가 그것을 둘로 센다. 표기를 취향으로 두면 나중에 합치는 값이 더 크다.


알림을 보낼 주소가 없었다

이름을 정리하다 보니 세션 자체에도 이름이 필요해졌다. 세션끼리 한 줄 알림을 직접 보낼 수 있는데, 창 목록에 이름 없는 세션이 여러 개 떠 있으면 누구에게 보낼지 지정할 수가 없다. INBOX에 적어 두고도 그 세션이 켜져 있는지 알 길이 없었다.

세션을 열면 먼저 이름을 붙이기로 했다. /rename 정본 표에 있는 프로젝트 이름 그대로 쓴다.


편한 길로 논의가 새어 나갔다

직접 알림이 되니 편해서 그것으로 요청까지 하게 됐다. 그런데 메시지는 꺼져 있는 세션에 닿지 않고, 오간 말이 INBOX에 남지 않아 다음에 되짚을 데가 없었다. 두 곳에 흩어진 대화는 어느 쪽도 전체가 아니다.

그래서 메시지는 「INBOX 확인해」 한 줄로만 쓰고, 요청과 회신과 결정은 INBOX에 적기로 했다.

빠른 길이 생기면 기록이 남는 길을 비켜 간다. 빠른 길은 알림에만 쓰고 내용은 느린 길로 보낸다.


요약

  • 전달을 사람이 맡으면 그 사람이 늘 수 있는 만큼만 일이 늘어난다. 공유 파일 하나와 규약으로 옮기면 왕래가 이력으로 남고 요청이 글로 정리된다.
  • 같은 사고가 두 번 나면 규율이 아니라 구조를 고친다. 겹칠 파일이 없으면 덮어쓸 수 없다.
  • 안 닫히고 쌓이는 일은 받는 쪽이 게으른 것보다 닫는 방법이 없는 경우가 많다.
  • 이름이 갈리면 도구가 그것을 둘로 센다. 표기 정본을 한 곳에 두고 거기만 본다.
  • 빠른 길이 생기면 기록이 남는 길을 비켜 간다. 빠른 길은 알림에만 쓴다.

Series: Today I Learn

1 | C++ 자료형(Data Type) 2 | MD5 vs pHash 3 | C++에서 함수의 선언과 정의 4 | Tkinter padx, pady 5 | 메모리와 포인터 변수 6 | Call by Value, Call by Reference, Call by Pointer 비교 7 | const 8 | Gemfile — Jekyll 프로젝트의 의존성 파일 9 | kramdown-parser-gfm — Jekyll의 GFM 파서 10 | 파서(Parser) 11 | AHU vs OHU 12 | I might try it vs I'll try it 뉘앙스 차이 13 | SESSION_EXPIRE_AT_BROWSER_CLOSE=True 14 | configuration key 15 | Git stash vs discard 16 | subprocess.Popen으로 Windows 탐색기에 명령어를 전달 17 | Post 잔디 분석하기 18 | Google Sheets Sync 최적화 19 | DSL (Domain Specific Language)과 GPL (General Purpose Language) 20 | 마크다운 표 그리는 방법 21 | 쿼리 파라미터(Query Parameter). 기존 QR코드 재활용 22 | Django 보안 취약점 점검 및 수정 23 | OOP Object-Oriented Programming 객체 지향 프로그래밍 24 | Fernet 대칭 암호화 25 | Jekyll 코드블록 안의 Liquid 태그 26 | 습관만들기 Pawbit TIL 1 27 | insertOnConflictUpdate vs DoUpdate(target) 28 | 세션 필터 29 | 아코디언(Accordiaon) UI를 펼친상태로 만들기 30 | input의 step 31 | 습관만들기 Pawbit TIL 2 32 | 습관만들기 Pawbit TIL 3 33 | Word Cloud 34 | Google Sheets를 데이터 버스로(with AppSheet) 35 | Django 모델 텍스트 필드 자동 수집 패턴 36 | localStorage로 섹션 토글 상태 유지 37 | 순차 ID 생성(`select_for_update()` + `max()` 조합) 38 | 역참조 검색과 distinct() 39 | xlsx 다운로드와 로딩 오버레이 충돌 40 | Android 파일 공유 MIME 타입 41 | AssetManifest — Flutter 빌드 타임 asset 목록 런타임 조회 42 | 크레센도 Phaser + TypeScript TIL 1 43 | 크레센도 Phaser + TypeScript TIL 2 44 | 크레센도 Phaser + TypeScript TIL 3 45 | 크레센도 Phaser + TypeScript TIL 4 46 | 크레센도 Phaser + TypeScript TIL 5 47 | 여둘까 Office Layout TIL 1 48 | 습관만들기 Pawbit TIL 4 49 | 여둘까 Office Layout TIL 2 50 | 여둘까 Office Layout TIL 3 51 | 크레센도 Phaser + TypeScript TIL 6 52 | UTF-8 BOM과 PowerShell 파일 쓰기 53 | 소리꽃 KeyBloom TIL 1 54 | 습관만들기 Pawbit TIL 5 55 | 여둘까 Office Layout TIL 4 56 | 소리꽃 KeyBloom TIL 2 57 | 소리꽃 KeyBloom TIL 3 58 | 메트로놈 Simple Metronome TIL 1 59 | 소리꽃 KeyBloom TIL 4 60 | 메트로놈 Simple Metronome TIL 2 61 | 소리꽃 KeyBloom TIL 5 62 | 습관만들기 Pawbit TIL 6 63 | 크레센도 Phaser + TypeScript TIL 7 64 | 메트로놈 Simple Metronome TIL 3 65 | 소설 타임라인 관리 도구 Lumior TIL 1 66 | 습관만들기 Pawbit TIL 7 67 | 정적 블로그 SEO 정비와 Pagefind 검색 도입 68 | 크레센도 Phaser + TypeScript TIL 8 69 | 메트로놈 Simple Metronome TIL 4 70 | 습관만들기 Pawbit TIL 8 71 | 안드로이드 AudioTrack 연속 재생, 실측 피커 정렬, 카메라 토치 플래시 72 | 메트로놈 Simple Metronome TIL 5 73 | 모래게임 Sandrop TIL 1 74 | 습관만들기 Pawbit TIL 9 75 | 메트로놈 Simple Metronome TIL 6 76 | 모래게임 Sandrop TIL 2 77 | 모래게임 Sandrop TIL 3 78 | 습관만들기 Pawbit TIL 10 79 | 습관만들기 Pawbit TIL 11 80 | 메트로놈 Simple Metronome TIL 7 81 | 모래게임 Sandrop TIL 4 82 | 모래게임 Sandrop TIL 5 83 | 습관만들기 Pawbit TIL 12 84 | 모래게임 Sandrop TIL 6 85 | 소리꽃 KeyBloom TIL 6 86 | 모래게임 Sandrop TIL 7 87 | 모래게임 Sandrop TIL 8 88 | 소리꽃 KeyBloom TIL 7 89 | 모래게임 Sandrop TIL 9 90 | 소리꽃 KeyBloom TIL 8 91 | 모래게임 Sandrop TIL 10 92 | 소리꽃 KeyBloom TIL 9 93 | 콘티온 ContiOn TIL 1 94 | 소리꽃 KeyBloom TIL 10 95 | 콘티온 ContiOn TIL 2 96 | 습관만들기 Pawbit TIL 13 97 | 콘티온 ContiOn TIL 3 98 | 룸톤 Roomtone TIL 1 99 | 모래게임 Sandrop TIL 11 100 | 소리꽃 KeyBloom TIL 11 101 | 여둘까 Office Layout TIL 5 102 | 모래게임 Sandrop TIL 12 103 | 모래게임 Sandrop TIL 13 104 | 콘티온 ContiOn TIL 4 105 | 모래게임 Sandrop TIL 14 106 | 소리꽃 KeyBloom TIL 12 107 | 습관만들기 Pawbit TIL 14 108 | 모래게임 Sandrop TIL 15 109 | 모래게임 Sandrop TIL 16 110 | 소리꽃 KeyBloom TIL 13 111 | 온실 GreenHouse TIL 1 112 | 콘티온 ContiOn TIL 5 113 | 모래게임 Sandrop TIL 17 114 | 소리꽃 KeyBloom TIL 14 115 | 온실 GreenHouse TIL 2 116 | 콘티온 ContiOn TIL 6 117 | 모래게임 Sandrop TIL 18 118 | 콘티온 ContiOn TIL 7 119 | 모래게임 Sandrop TIL 19 120 | 소리꽃 KeyBloom TIL 15 121 | 룸톤 Roomtone TIL 2 122 | 모래게임 Sandrop TIL 20 123 | 모래게임 Sandrop TIL 21 124 | 소리꽃 KeyBloom TIL 16 125 | 소리꽃 KeyBloom TIL 17 126 | 소리꽃 KeyBloom TIL 18 127 | 여둘까 Office Layout TIL 6 128 | 소리꽃 KeyBloom TIL 19 129 | 소리꽃 KeyBloom TIL 20 130 | 콘티온 ContiOn TIL 8 131 | 콘티온 ContiOn TIL 9 132 | 로그스톤 상표 셀프 출원 TIL 1 133 | 소리꽃 KeyBloom TIL 21 134 | 로그스톤 샵 LogStone Shop TIL 1 135 | 소리꽃 KeyBloom TIL 22 136 | 로그스톤 샵 LogStone Shop TIL 2 137 | 룸톤 Roomtone TIL 3 138 | 소리꽃 KeyBloom TIL 23 139 | 모래게임 Sandrop TIL 22 140 | 모래게임 Sandrop TIL 23 141 | 소리꽃 KeyBloom TIL 24 142 | 로그스톤 샵 LogStone Shop TIL 3 143 | 모래게임 Sandrop TIL 24 144 | 소리꽃 KeyBloom TIL 25 145 | 모래게임 Sandrop TIL 25 146 | MiniMacro TIL 1 147 | 룸톤 Roomtone TIL 4 148 | 모래게임 Sandrop TIL 26 149 | 콘티온 ContiOn TIL 10 150 | Astro가 무엇인지, 왜 옮기는지 151 | 룸톤 Roomtone TIL 5 152 | 룸톤 Roomtone TIL 6 153 | 모래게임 Sandrop TIL 27 154 | 소리꽃 KeyBloom TIL 26 155 | MiniMacro TIL 2 156 | 로그스톤 샵 LogStone Shop TIL 4 157 | 메트로놈 Simple Metronome TIL 8 158 | 모래게임 Sandrop TIL 28 159 | 여둘까 Office Layout TIL 7 160 | 룸톤 Roomtone TIL 7 161 | 메트로놈 Simple Metronome TIL 9 162 | 블로그 Astro 이관 TIL 163 | 여둘까 Office Layout TIL 8 164 | 로그스톤 샵 LogStone Shop TIL 5 165 | 모래게임 Sandrop TIL 29 166 | 오픈데이 Openday TIL 1 167 | 로그스톤 샵 LogStone Shop TIL 6 168 | 모래게임 Sandrop TIL 30 169 | 오픈데이 Openday TIL 2 170 | 모래게임 Sandrop TIL 31 171 | Unreal Engine MCP TIL 1 172 | 모래게임 Sandrop TIL 32 173 | 소리꽃 KeyBloom TIL 27 174 | 콘티온 ContiOn TIL 11 175 | 오픈데이 Openday TIL 3 176 | 로그스톤 샵 LogStone Shop TIL 7 177 | 모래게임 Sandrop TIL 33 178 | 소리꽃 KeyBloom TIL 28 179 | 오픈데이 Openday TIL 4 180 | 여둘까 Office Layout TIL 9 181 | 오픈데이 Openday TIL 5 182 | ScorePlayer TIL 1 183 | 모래게임 Sandrop TIL 34 184 | BuildingHub TIL 1 185 | ScorePlayer TIL 2 186 | 여둘까 Office Layout TIL 10 187 | BuildingHub TIL 2 188 | ScorePlayer TIL 3 189 | Unreal Engine MCP TIL 2 190 | 궁 미로 PalaceMaze TIL 1 191 | 메트로놈 Simple Metronome TIL 10 192 | 메트로놈 Simple Metronome TIL 11 193 | 오픈데이 Openday TIL 6 194 | BuildingHub TIL 3 195 | ScorePlayer TIL 4 196 | Obsidian vault에서 코드만 빼기 — directory junction 197 | 여둘까 Office Layout TIL 11 198 | 오픈데이 Openday TIL 7 199 | URL은 바뀔 수 있는 것에 묶지 않는다 200 | 도구는 기능이 아니라 내 일에 맞는지로 고른다 201 | 돌이키기 힘든 변경은 작게 먼저 확인한다 202 | 궁 미로 PalaceMaze TIL 2 203 | 궁 미로 PalaceMaze TIL 3 204 | 소리꽃 KeyBloom TIL 29 205 | 오픈데이 Openday TIL 8 206 | 룸톤 Roomtone TIL 8 207 | BuildingHub TIL 4 208 | ScorePlayer TIL 5 209 | 로그스톤 샵 LogStone Shop TIL 8 210 | 여둘까 Office Layout TIL 12 211 | 오픈데이 Openday TIL 9 212 | BuildingHub TIL 5 213 | MiniMacro TIL 3 214 | 룸톤 Roomtone TIL 10 215 | 룸톤 Roomtone TIL 9 216 | 소리꽃 KeyBloom TIL 30 217 | 오픈데이 Openday TIL 10 218 | 여둘까 Office Layout TIL 13 219 | 룸톤 Roomtone TIL 11 220 | 소리꽃 KeyBloom TIL 31 221 | 궁 미로 PalaceMaze TIL 4 222 | 룸톤 Roomtone TIL 12 223 | 로그스톤 샵 LogStone Shop TIL 9 224 | 룸톤 Roomtone TIL 13 225 | 로그스톤 샵 LogStone Shop TIL 10 226 | 룸톤 Roomtone TIL 14 227 | 소리꽃 KeyBloom TIL 32 228 | 룸톤 Roomtone TIL 15 229 | 룸톤 Roomtone TIL 16 230 | 룸톤 Roomtone TIL 17 231 | 룸톤 Roomtone TIL 18 232 | 메트로놈 Simple Metronome TIL 12 233 | 온실 GreenHouse TIL 3 234 | 룸톤 Roomtone TIL 19 235 | 여러 세션을 INBOX 하나로 굴리기 읽는 중