← 02 MAKE무엇을 만들었는가
팀 일곱 명의 배포 일정을 한 화면에
만들기 전에 실제 데이터를 재 봤더니, 업무 관리 도구인 줄 알았던 것이 사실은 배포 관리 도구였습니다.
이 쪽은 원문을 쉬운 말로 다시 쓴 판입니다. 저자가 쓴 문장은 원문 쪽에 있습니다. 이 판의 문장은 사람이 쓰지 않았습니다.
회사·동료 실명, 사내 주소, 열쇠 같은 것은 전부 빼거나 가명으로 바꿨습니다. 대신 판단 근거가 된 숫자는 그대로 남깁니다. 그게 없으면 왜 그렇게 만들었는지 알 수 없습니다.
팀원 일곱 명의 업무와 배포 일정을 한 화면에서 보는 도구입니다. 제 맥에서 돌아갑니다. '배포'는 만든 것을 실제 서비스에 올리는 일을 말합니다.
- 바깥에서 가져다 쓰는 것 없이, 기본 도구만으로 만들었습니다
- 자료는 제 맥 안의 파일 하나입니다. 멀리서 접속한 사람은 보기만 됩니다
- 모든 변경은 기록으로 남고, 묶음 단위로 되돌릴 수 있습니다
두 가지 원칙이 계속 효과를 봤다
- 만들기 전에 실제 데이터를 잽니다. 감으로 기능을 붙이지 않습니다.
- 화면으로 확인합니다. 코드가 맞아도 화면에서 틀린 경우가 여러 번 있었습니다.
재 봤더니 다른 도구였다
실제 데이터를 세어 봤습니다. 배포가 18건, 업무가 11건. 업무 관리 도구인 줄 알았는데 사실은 배포 관리 도구였습니다.
그런데 배포를 판단하는 데 필요한 신호가 빠져 있었습니다.
| 발견한 것 | 붙인 것 |
|---|---|
| 배포 하나가 27일째 안 끝났는데 화면에 아무 표시가 없었다 | 지연 N일 표시, 맨 위에 |
| 하루에 배포 7건이 몰린 날이 달력에서 안 보였다 | 날짜 옆에 배포 N, 3건 넘으면 강조 |
| 연결된 작업표가 얼마나 끝났는지 볼 수 없었다 | 2/5 진행률 |
지연을 처음엔 이번 달에서만 찾았는데, 달을 넘기면 사라지는 것을 화면 사진을 보고 발견했습니다. 지난달 것이 사라지면 경고의 의미가 없습니다.
진행률도 조심해야 했습니다. 연결된 작업표가 없을 때 0/0 을 0%로 그리면
"시작도 안 했다"는 거짓 신호가 됩니다. 그래서 아무것도 안 그립니다.
바깥에서 볼 수 있게 하려다 구멍을 찾았다
집 밖에서도 보려고 통로를 붙이려다, 권한 판단이 무너지는 구멍을 발견했습니다.
- 접속한 주소만 보고 "나인지 남인지"를 판단하고 있었습니다. 그런데 통로를 거쳐 오면 전부 같은 기계의 주소로 보입니다. 바깥에서 온 사람이 전부 "나"가 되어 수정·삭제는 물론 자료 전체 내려받기까지 열립니다. 보기 전용 표시도 안 뜹니다. → 문을 아예 따로 냈습니다. 그 문으로 들어온 요청은 주소와 상관없이 바깥 사람으로 취급합니다. 표시를 붙이는 쪽이 서버 자신이라서 위조할 수 없습니다.
- 다른 웹사이트가 내 도구에 명령을 보낼 수 있는 상태였습니다. 아무 사이트나 열어 두면 그 페이지가 몰래 요청을 보낼 수 있었습니다. → 세 겹으로 막았습니다.
- 열쇠가 든 설정 파일을 같은 컴퓨터의 다른 계정이 읽을 수 있었습니다. → 권한을 좁혔습니다.
백업이 없다는 게 가장 큰 위험이었다
자료 본체는 270KB인데 아직 본체에 안 합쳐진 부분이 4.1MB 였습니다. 본체 파일만 복사하면 최근 자료가 통째로 빠집니다.
- 둘을 합친 온전한 사본을 파일 하나로 만듭니다
- 만든 다음 그 사본을 열어서 건수를 셉니다 — 열리지 않는 백업은 백업이 아닙니다
- 매일 아침 9시에 자동으로 돕니다. 서버가 죽으면 알아서 다시 켜집니다
- 열쇠는 자동 실행 설정 파일에 넣지 않습니다. 그 파일은 다른 계정도 읽습니다
초록불인데 아무것도 검사하지 않던 테스트
검사 두 개를 바로잡았습니다.
하나는 제가 기대한 값이 틀렸습니다 — 대체공휴일을 빼먹었습니다.
다른 하나는 검사 코드에 쓴 기호가 글자로 잘못 해석돼서 값이 항상 1로 읽히고 있었습니다. 고치니 진짜 값이 드러났습니다 — 그럴듯하게 초록불이던 검사가 아무것도 확인하지 않고 있었습니다.
화면은 감이 아니라 재서 고쳤다
색은 문제가 아니었습니다. 본문도 보조 글씨도 기준을 넘었습니다. 문제는 공간이었습니다.
| 항목 | 전 | 후 |
|---|---|---|
| 달력 | 내용 1114px인데 자리는 470px (절반 넘게 잘림) | 잘림 없음 |
| 달력 위쪽 영역 | 화면의 34% | 절반으로 |
| 상단 막대 | 162px · 두 줄 · 버튼 23개 | 97px · 한 줄 |
| 주마다 높이 | 90~316px 들쭉날쭉 | 균일 |
| 아주 작은 글씨 | 50개 | 1개 |
"달을 보려고 여는 화면인데 달을 못 보는" 상태였습니다.
여섯 주가 높이를 똑같이 나눠 갖게 하고,
넘치는 주는 +N 더 로 접었다가 눌러서 펼치게 했습니다.
이 과정에서 밝은 화면 모드를 하루 종일 한 번도 보지 않았다는 걸 깨달았습니다. 확인해 보니 보조 글씨가 간신히 통과하는 수준이어서 더 진하게 고쳤습니다.
되돌릴 수 없으면 사람은 손대지 않는다
배포 18건 중 작업표가 연결된 건 3건뿐인데, 연결 안 된 작업표는 46건이었습니다. 진행률을 만들어도 연결이 없으면 빈 화면입니다.
이유 중 하나를 찾았습니다. 연결을 떼는 기능이 아예 없었습니다. 잘못 붙이면 자료를 직접 고치는 것 말고는 방법이 없었습니다. 되돌릴 수 없으면 사람은 붙이기를 주저합니다.
떼는 기능을 만들고, 붙이는 것도 항목을 연 화면 안에서 바로 되게 했습니다. 후보는 그 항목 담당자 것을 먼저 보여 줍니다.
붙이고 뗀 것은 기록에 남기지만, 되돌리기 대상은 아닙니다 — 되돌려도 실제 작업표 쪽 연결이 바뀌지 않으니, 되돌릴 수 있는 척하면 거짓말이 됩니다.
쉬는 날에는 아무것도 그리지 않는다
토·일·공휴일에 아무것도 그리지 않는 규칙을 휴가까지 넓혔습니다. 쉬는 날에 "휴가 중"이라고 적어 봐야 알려 주는 것이 없습니다.
다만 근무일이 하나도 없는 휴가(토요일 하루짜리 같은)는 그대로 그립니다 — 감추면 손댈 수 없는 자료가 되기 때문입니다.
바깥에서 접근하는 방법은 이렇게 정했다
로그인을 이 도구 안에 직접 만들지 않습니다. 사용자 목록·접속 유지·비밀번호 보관·시도 횟수 제한이 전부 따라오고, 지금의 권한 구조를 통째로 갈아야 합니다.
로그인은 앞단 통로에 맡기고 도구 자체는 단순하게 둡니다.
- 내 기기에서만 볼 거면 — 기기끼리 직접 연결해 주는 서비스
- 팀원도 볼 거면 — 통로 서비스에 로그인 기능을 얹어서
- 공유기에서 포트를 여는 방법은 안 됩니다 — 이 도구에는 로그인이 아예 없습니다
그리고 "자리에 없을 때도 관리"의 진짜 병목은 로그인이 아니라 컴퓨터가 켜져 있는 것입니다. 노트북을 들고 나가면 어떤 통로를 붙여도 소용없습니다.
오늘 상태
- 단위 검사 153개, 화면 검사 18종 전부 통과
- 서버는 항상 켜져 있고, 매일 아침 9시에 백업합니다
- 다음에 효과가 큰 것: 남은 배포 항목에 작업표 붙이기