유대선

돌아갈 망 안이 아니라 망 밖에서 빌드한 안드로이드 앱

공장 폐쇄망에서 돌아갈 안드로이드 앱을 그 망 밖 장비에서 빌드하고, 산출물을 손으로 들고 들어갔다. 안에서 실패해도 빌드한 자리에서는 이유가 보이지 않았다.

·2 분 소요·English version →

앱이 돌아갈 곳은 공장 현장의 폐쇄망이었다. 안팎으로 길이 없는 망이다. 빌드 장비는 그 망 밖에 있었다. 외부망이 잡히는 장비가 그쪽이었기 때문이다. 그래서 루프는 이랬다. 망 밖에서 산출물을 빌드하고, 경계를 손으로 넘겨 안에 설치하고, 실패하는 걸 보고, 머릿속으로 다시 밖으로 들고 나와, 뭔가를 바꿔서 또 빌드한다.

산출물은 밖에서 재현할 수 있는 어떤 상태와도 다르게 안에서 동작했다. 한 번 돌릴 때마다 경계를 한 번 걸어 넘고 차이가 뭘지 추측해야 했고, 한 사이클이 오후 절반을 먹기도 했다. 실패에 관한 어떤 것도 빌드가 돌아간 자리에서는 보이지 않았다.

고칠 방향은 한 줄로 적을 만큼 단순하다.

도는 망 안에서 빌드하든가, 그 망을 대상으로 한 재현 가능한 파이프라인을 돌려서 "밖에서 빌드, 안에서 실행"이 추측 루프가 되지 않게 한다.

그땐 망 안에 빌드 환경이 없었다. 그래서 그 단계도 없었다.