오랜만에 하루 종일 내 책상에만 앉아 프로그램을 설계하는 일을 할 수 있었다. 이틀간 쓴 휴가 때문인지 마음이 많이 차분해져 있었고 복잡한 머리도 한 결 가벼워져 있었다. 예전에 임베디드 시스템에 소프트웨어 업데이트 도구를 개발했던 경험이 생각나는 하루다. 예전에 해봤던 비슷한 걸 다시 해보는 일은 나에게 흔치 않은 일이라 오늘 일은 좀 색다르게 느껴진다. 무기분야에서 우주분야로 도메인만 옮겨왔고 업데이트하는 대상이 아주 멀리 있다는 사실이 조금 달라졌다. 생각에 생각을 하다보니 소프트웨어라는게 어떤 매체 위에서 동작하는 것임을 새삼 느끼게 된다. 소프트웨어는 혼자서는 아무 의미가 없다. 컴퓨터 하드웨어가 있어야 하고 네트워크 인프라도 있어야 한다. 어떤 경우에는 이 인프라가 컴퓨터 한대지만 어떤 경우에는 아주 많은 시스템들을 거쳐서 멀리 멀리 있는 어딘가를 향하기도 한다. 소프트웨어의 매력은 이 인프라에 의존하면서 동시에 이 인프라가 크든 작든 멀리 있든 가까이 있든 독립적으로(별 상관없이) 작성될 수 있다는 것에 있다. 완전히 다른 도메인 완전히 다른 하드웨어 인프라를 가졌지만 내가 작성하는 오늘의 소프트웨어는 과거의 소프트웨어와 크게 다르지가 않다. 이렇게 먼 간극을 마치 같은 것 마냥 느낄 수 있게 해주기 위해 수 많은 존재들이 그 사이를 매꾸고 있다.