에든버러 인근 포토벨로의 옛 경찰서 건물에는 세 개의 문자판을 가진 시계탑이 있다. 건물 공사는 1877년에 시작됐고, 시계 기계장치 역시 그 시절의 원형일 가능성이 높다. 이 건물은 원래 포토벨로 버러 의회의 회의·행정·법정 공간이었다가, 포토벨로가 에든버러에 편입된 뒤 도서관으로, 다시 경찰서로 쓰였다. 최근 스코틀랜드 랜드 펀드의 지원으로 지역 단체 액션 포티(Action Porty)가 이 건물을 지역 공동체 소유로 사들였고, 자원봉사자들은 1970년대에 덧댄 스티로폼 천장 타일과 우드칩 벽지를 걷어내며 원래의 모습을 복원하는 중이다. 문제는 아무도 시계탑의 시간을 맞추는 법을 몰랐다는 점이다. 액션 포티가 도움을 청했고, 한 기술자 친구와 필자가 먼지 쌓인 다락과 가파른 사다리를 지나 시계탑에 올라 이 문제에 달라붙었다.
문서 없이 기계를 읽어내기
시계는 작은 모터가 일련의 기어를 거쳐 한 시간에 한 바퀴 도는 축을 돌리는 구조였다. 이 축은 세 갈래로 나뉘어 각 문자판의 분침을 직접 구동하고, 각 면의 기어가 시침을 파생시킨다. 시간을 맞추려면 모터를 분리하고 축을 직접 돌려야 했는데, 이들은 한 기어에 걸린 폴(pawl, 멈춤쇠)을 찾아 들어 올렸다. 그러자 축이 쉽게 돌아갔고, 각 바늘에 달린 균형추의 반대편에 보이지 않는 바늘이 있다고 상상하며 시각을 설정할 수 있었다. 시계탑 안쪽에서 문자판을 뒤에서 보다 보니 시계가 거꾸로 도는 줄 착각하는 해프닝도 있었다. 결국 지상으로 내려가 바깥에서 확인하고서야 시간이 맞았음을 알았다.
이 과정 자체가 문서가 사라진 시스템을 다루는 전형적인 방식이다. 설명서도, 설계자도 없는 상태에서 부품의 배치와 동작을 관찰해 기능을 역추론하고, 최소한의 개입점을 찾아 조작한다. 소프트웨어 실무에서 오래된 코드베이스나 외부 라이브러리의 내부를 읽어내는 작업과 본질이 다르지 않다. 주석과 명세가 없을 때 결국 남는 것은 관찰과 실험뿐이다.
4분의 1세기짜리 미확인 임베디드 장치
더 까다로운 것은 종을 울리는 차임 기능이었다. 원래의 기계장치에 스위치와 모터가 추가돼 있었고, 이 배선은 명백히 1877년의 것이 아닌 회로기판이 든 상자로 이어졌다. 상자 안에는 PIC 16F628 마이크로컨트롤러가 있었는데, 날짜 코드로 미루어 2001년경 제품으로 추정됐다. 여러 개의 릴레이, 전원부, 그리고 납축전지를 충전하는 회로까지 갖춘 이 장치는 대략 25년 가까이 됐을 텐데도 여전히 동작하는 듯했다. 다만 배터리 상태가 얼마나 온전한지는 확인하지 못했고, 이는 다음 과제로 남겨졌다.
문제는 이 상자에 아무런 제조 표기나 설명이 없다는 점이다. 표준 제품인지 이 시계만을 위한 일회성 제작물인지조차 알 수 없었다. 사용자 인터페이스라고는 눌러도 아무 반응이 없는 'advance'라는 버튼 하나뿐이었다. 어떻게 시각을 맞추는지 알아내려 측정하고 만지작거린 끝에, 이들은 오후 4시까지 기다려 시계가 정상적으로 넘어가는지 지켜보기로 했다. 4시가 되자 바깥 시간도 맞았고 종도 네 번 울렸다. 바로 옆에서 들으니 종소리가 상당히 컸다는 점은 예상 밖이었다.
실무자가 가져갈 교훈
작업은 성공으로 마무리됐지만, 종소리 복원을 반기지 않을 주민을 배려해 결국 차임 모터를 다시 분리해 종을 껐다. 흥미로운 대목은 여기 있다. 기능을 되살리는 것과 실제로 켜두는 것은 별개이며, 기술적 성공이 곧 운영상의 정답은 아니라는 판단이 개입한다. 되돌릴 수 있게 최소한으로 손대는 방식—폴을 들어 올리고 모터를 분리하는 식—역시 원형을 훼손하지 않으려는 보수적 접근으로 읽힌다.
이 이야기는 소소한 주말 모험담이지만, 표시 없는 마이크로컨트롤러 상자는 우리 주변 인프라에 얼마나 많은 '블랙박스'가 문서 없이 방치돼 있는지를 상기시킨다. 설계자를 알 수 없고 명세가 남지 않은 임베디드 장치가 사반세기를 버티며 여전히 공공 시설을 움직이고 있다. 이런 유산 시스템은 담당자가 떠나거나 부품이 단종되는 순간 유지보수 불능 상태에 빠진다. 표기와 문서화, 그리고 관찰을 통한 역설계 역량이 왜 실무의 기본기인지, 낡은 시계탑 한 대가 조용히 보여준 셈이다.