일하는 장비가 셋인데 같은 저장소를 받아 쓰면서 자리가 제각각이었다. 스크립트에 경로를 적으면 다른 장비에서 안 돌고 메모해 둔 명령도 매번 고쳐 써야 했다.
Table of contents
Open Table of contents
장비마다 다른 자리
경로가 다르면 스크립트와 메모가 장비에 묶인다. 같은 일을 하는 명령이 장비 수만큼 생기고 그중 하나만 고치면 나머지가 어긋난다.
문제는 경로 자체가 아니라 그것이 다른 모든 것을 장비별로 갈라 놓는다는 점이었다. 그래서 자리를 하나로 맞추는 것을 먼저 했다.
같은 경로와 링크
홈 아래 같은 이름의 폴더로 통일하고 저장소 이름을 그 아래에 뒀다. 옮기는 데 삼십 분이 걸렸고 그 뒤로는 명령을 그대로 썼다.
경로를 정할 때 사용자 이름이 다를 수 있으므로 홈 기준 상대 경로로 잡고 대소문자 구분이 다른 환경을 고려해 전부 소문자로 했다. 외장 디스크에 두는 장비는 링크를 걸어서 경로는 같고 실체만 다르게 만들었다.
운영체제 차이를 흡수하는 자리
같은 자리에 둬도 명령 옵션이 운영체제마다 다른 것이 남았다. 치환 명령의 제자리 편집 옵션이 대표적이었고 그것 때문에 스크립트가 한 장비에서만 돌았다.
그런 차이는 스크립트 안에서 운영체제를 보고 갈라 두면 호출부가 하나로 유지된다. 필요한 도구가 깔려 있는지도 시작할 때 확인해서 없으면 이름과 설치 방법을 알려 주게 했다.
장비 사이가 어긋났는지 본다
세 장비가 같은 지점을 보고 있는지를 확인하는 명령을 만들어 작업 전에 돌렸다. 며칠 안 켠 장비가 밀려 있는 것이 그렇게 드러났다.
옛 상태에서 고치면 나중에 합칠 때 어긋난다. 확인 자체는 몇 초인데 안 하면 그 결과가 며칠 뒤에 병합 충돌로 돌아온다.
장비별 역할
셋을 같게 만들어도 실제로 쓰는 방식은 달랐다. 주 작업과 이동용과 시험용으로 역할을 정하니 무엇을 어디서 할지가 안 헷갈렸다.
큰 자료를 이동용 장비에서 다루려다 저장 공간이 모자란 적이 있었는데 역할을 정한 뒤로는 그런 일이 없었다. 역할을 적어 두니 어느 장비에 무엇이 있어야 하는지도 함께 갈렸다.
정리
- 장비마다 자리가 다르면 명령을 매번 고쳐 쓰게 된다
- 경로 차이가 스크립트와 메모를 장비별로 갈라 놓는다
- 같은 경로로 맞추고 실체가 다르면 링크로 잇는다
- 사용자 이름과 대소문자 구분 차이를 경로 규칙에 반영한다
- 운영체제 차이는 스크립트 안에서 흡수해 호출부를 하나로 둔다
- 필요한 도구를 시작할 때 확인하고 설치 방법을 알린다
- 장비 사이가 어긋났는지 작업 전에 확인한다
- 장비별 역할을 정하면 무엇을 어디서 할지가 갈린다