목록으로
회사

시계가 세 개가 됐다

2026년 10월 22일13분
EssayMESi18nVueManufacturingClaude Code

목차 보기
시리즈 목차 보기2 / 2
서울 23시, 베트남 21시, 멕시코 8시를 가리키는 시계 세 개
서울이 하루를 접을 즈음 멕시코는 출근한다

7월에 회고를 한 편 쓰고 석 달이 지났다. 이번엔 회고까지는 아니고 근황이다. 그사이 가장 크게 바뀐 걸 하나만 꼽자면 시계다. 전에는 하나만 보면 됐는데 요즘은 세 개를 본다.

7월 말부터 10월 하순까지 한 일을 시간순으로 적은 타임라인
석 달을 대충 줄 세우면 이렇다

시계가 세 개가 됐다

한국은 UTC+9, 베트남은 UTC+7, 멕시코는 UTC−6이다. 베트남과는 두 시간 차이라 대체로 같은 하루를 산다. 그런데 이 두 시간이 은근히 사람을 헷갈리게 한다. 서버 로그와 메신저는 베트남 시각으로 찍히고 내 모니터 구석의 시계는 한국 시각이다. "9시에 들어온 실적"을 보면 어느 나라 9시인지부터 확인하는 버릇이 생겼다.

화면도 같은 질문을 받았다. 조회 화면을 열면 날짜가 미리 채워지는데, 그 '오늘'은 누구의 오늘인가. 답은 공장의 오늘이었다. 근무조 기본값을 한국 시간 기준으로 잡아 둔 걸 뒤늦게 발견하고 다시 고쳤다. 서울에서 만든 화면이 서울 시간을 따르는 건 너무 자연스러워서, 틀린 줄도 모르고 지나가기 쉽다.

멕시코와는 열다섯 시간 차이다. 멕시코가 아침 8시에 출근하면 서울은 밤 11시다. 다행히 멕시코는 2022년에 서머타임을 없앴다. 계절마다 시차가 한 시간씩 움직였다면 달력에 시차를 따로 적어 두고 살았을 것이다.

한국 시간 기준으로 서울·베트남·멕시코의 근무 시간을 나란히 놓은 차트
서울과 베트남은 거의 겹치고, 멕시코는 서울이 잘 때 일한다

지금까지 날짜는 Date 하나로 버텼다. 시간대를 값과 함께 들고 다니는 Temporal을 보면 그쪽이 맞다는 생각이 든다. 당장 갈아탈 수는 없으니 다음 프로젝트를 기다리는 중이다.

같은 화면, 더 긴 말

베트남은 한국어·영어·베트남어를, 멕시코는 한국어·영어·스페인어를 쓴다. 한국어는 짧다. 그래서 화면은 늘 한국어 기준으로 예쁘게 나온다. 그 예쁨은 언어를 바꾸는 순간 끝난다. 베트남어 라벨은 한국어보다 두세 배 길어서 검색 조건 영역을 뚫고 나갔다. 겨우 정리하고 나니 이번엔 스페인어가 넘쳤다.

스페인어로 옮길 문구는 만 단위였다. 번역은 AI 에이전트 여러 개에 나눠 맡기고 나는 화면을 돌며 어색한 데를 골랐다. 검색 폼 라벨은 글자 길이에 맞춰 폭이 늘어나게 바꿨다. 언어가 바뀔 때마다 레이아웃을 손보는 것보다 처음부터 늘어날 자리를 비워 두는 쪽이 덜 지친다.

숫자도 언어를 탄다. 7월에는 천 단위 쉼표 하나가 합계를 NaN으로 만들었다. 그런데 베트남 로캘에서는 1.234,5처럼 쉼표와 마침표가 아예 자리를 바꾼다(Intl.NumberFormat). 그걸 알고 나니 그때 그 쉼표는 꽤 순한 편이었다.

바코드는 한글을 모른다

현장의 바코드 스캐너는 키보드인 척 글자를 입력한다. 그런데 PC에서 한글 입력기가 켜져 있으면 같은 글자가 두 번 들어갔다. 첫 수정은 틀렸다. 내 키보드로 쳐 보면 멀쩡했으니까. 실제 입력기가 글자를 조합하는 순서를 흉내 내는 테스트 장치를 만들고 나서야 제대로 잡혔다. 그 무렵 정작 내 PC는 몇 분마다 한/영 전환이 먹통이 됐다. 남의 입력기는 고쳤는데 내 입력기는 못 고쳤다.

8월에는 화면마다 저장했다가 원래대로 되돌리는 왕복 테스트를 돌렸다. 그러다 DB를 옮긴 뒤로 근무 시간이 1970-01-01로 저장되고 있다는 걸 알았다. 시간 값이 0이 되면 컴퓨터는 1970년 1월 1일로 돌아간다. 그 공장은 그날 문을 연 적이 없다. 원인을 끝까지 따라가서 고치고 데이터도 되돌려 놓았다.

숫자에는 정의가 있다

7월까지는 목업 화면을 실데이터에 붙이는 일이 많았다. 9월부터는 질문이 달라졌다. 같은 Lot 스캔 기록으로 가동 시간과 유실 시간을 어떻게 셀 것인가. 종료 시각을 기준으로 볼지, 기준 시간 '이상'인지 '미만'인지, 라인마다 다른 기준은 어떻게 적용할지. 숫자 하나에 정의가 서너 개씩 붙어 있었다. 그 정의는 코드가 아니라 현장과 합의해서 정해야 했다.

교대 근무도 그랬다. 주야 2교대의 경계에 찍힌 실적은 어느 조 몫인가. 다음 날 작업지시가 미리 열리는 바람에 야간 스캔이 엉뚱한 작업지시로 빨려 들어간 일도 있었다. 9월 말 어느 밤에는 그 데이터를 새벽까지 붙들고 있었다. 보고서에는 분석만 담담하게 적었다. 얼마나 급했는지는 커밋 시각이 대신 말해 준다.

보는 범위도 조금 넓어졌다. 베트남 공장의 운영 시스템이 기준이 되고, 멕시코는 그걸 가져와 맞춰 가는 중이다. 만드는 제품은 다르지만 사내 발표를 준비하면서 두 공장을 개별(Discrete) 공정이라는 같은 틀로 보게 됐다. 제품이 달라도 Lot은 흐르고 작업지시는 열렸다 닫힌다. 다른 건 바코드 규칙이나 마감 통제 같은 설정 쪽이다. 봄에 쓴 코어/커스텀 분리기가 이제는 남의 이야기 같지 않다.

서버도 숨을 쉰다

부하 테스트 도구도 직접 만들었다. 사용자가 화면을 쓰는 순서 그대로 요청을 동시에 보내는 도구다. 한 대로 보낼 때는 멀쩡하던 것이 여러 대를 합치자 한계를 드러냈다. 숫자는 여기 적지 않는다. 다만 '동시에'라는 말이 얼마나 무거운지는 확실히 배웠다.

조회 하나가 서버를 오래 붙잡을 수 있다는 것도 배웠다. 그 뒤로는 조회 기간과 조건에 울타리부터 친다. 페이징도 다시 들여다봤다. OFFSET 방식의 실행 계획을 실측해 보니, 첫 페이지 몇 건만 달라고 했는데 DB는 성실하게 끝까지 읽고 돌아왔다. 지금은 커서 방식과 비교하고 있다.

모니터링 화면은 증상을 보는 화면과 원인을 정리한 한 장으로 나눴다. 알림은 최소한만 남겼다. 알림이 많으면 결국 아무도 안 본다.

AI와 일하는 방식도 바뀌었다

석 달 전 AI는 코드를 대신 써 주는 도구였다. 지금은 일하는 순서에 더 가깝다. 화면을 만들기 전에 데이터 설계서부터 승인받는 단계, 화면마다 도는 단위 테스트 체크리스트, 다크모드에서 글자 대비를 실측하는 점검이 전부 스킬로 들어갔다. 번역은 여러 에이전트에 나눠 맡기고, 실제 화면은 브라우저 확장으로 직접 눌러 보게 한다.

대신 선은 분명히 그었다. DB에 쓰는 일은 AI가 스크립트까지만 만들고 실행은 내가 한다. 커밋과 푸시는 내가 허락한 뒤에만 한다. 편해질수록 되돌리기 어려운 일은 사람 손에 남겨 두는 게 맞다고 생각한다.

가장 사람 같은 순간은 따로 있었다. 상반기 자기평가 초안을 다듬어 달라고 했더니 문장마다 '주도했다', '확립했다'가 붙어 나왔다. 신입이 쓰기엔 건방져서 전부 '참여했다', '배웠다'로 고쳤다. AI는 늘 나를 실제보다 조금 높게 평가한다. 고맙긴 한데 결재선에 올리기엔 부담스럽다.

석 달 동안 오래 본 것들을 체감으로 나타낸 막대 차트
통계 아님. 체감이다.

요즘은

요즘은 멕시코 화면을 베트남 운영 화면과 하나씩 맞춰 보고 있다. 같은 화면이 다른 언어로, 다른 시각에, 다른 공장에서 같은 숫자를 내야 한다. 석 달 전에는 화면을 만들었다면, 지금은 그 화면이 어디까지 같은 약속을 지키는지 확인하고 있다.

다음 글은 멕시코 화면이 베트남과 똑같아졌을 때 쓸 생각이다. 그때까지 시계는 세 개다. 네 개가 되지 않기를 바란다.

검색...

검색...