보안 정책 검토로 직원 PC 의 설치 프로그램 목록을 뽑다가 두 대를 비교했더니 차이가 꽤 많이 나왔다. wmic product get name,version 결과를 comm -3 으로 대조해 한쪽에만 있는 것과 다른 쪽에만 있는 것을 서로 맞추면 되겠다고 생각했다.
Table of contents
Open Table of contents
배경 — 맞추면 되겠다고 본 차이
목록만 놓고 보면 그 차이는 그냥 맞춰야 할 차이로 보인다. 어느 쪽이 맞는지 판단할 근거가 목록 안에는 없다.
두 가지 방법이 있었다. 업무 표준 목록을 정해 두고 동기화 스크립트로 양쪽을 맞추는 것과, 맞추기 전에 두 PC 의 용도부터 묻는 것이다. 뒤쪽을 골랐다. 이유는 어느 쪽으로 맞출지의 근거 역시 목록에서는 나오지 않아서다. 대신 PC 마다 사람에게 물어야 해서 검토가 하루 늦어지는 것을 감수했다.
용도를 물어본 뒤
하나는 회사 자산인 업무 전용 PC 이고 다른 하나는 개인 소유인데 업무 공간에 두고 쓰는 PC 였다. 신원과 용도가 다르다는 답이었다.
그 사실을 알고 목록을 다시 보니 나온 차이가 대부분 설명이 됐다. 업무에 필요한 V3 백신과 FortiClient 는 업무 PC 에만 있고 개인 용도 프로그램은 개인 PC 에만 있었다.
주의 — 라이선스가 갈리는 자리
특히 중요한 항목이 하나 있었는데 개인 용도로만 무료로 쓸 수 있는 원격 접속 프로그램이었다. 같은 프로그램이라도 회사 PC 에 설치하면 상용 라이선스가 필요해진다.
목록을 맞추는 동기화 스크립트를 돌렸으면 그것이 업무 PC 에 설치됐을 것이다. 정리하려던 행위가 그대로 라이선스 위반이 되는 자리였다.
판단 기준 — 일관성이 항상 좋은 것은 아니다
이것으로 차이의 분류가 바뀌어 동기화 대상과 의도적으로 유지할 차이 둘이 됐다. 용도로 설명되는 차이는 유지할 차이이고 설명이 안 되는 차이가 동기화 대상이다.
깔끔하게 맞추는 것이 언제나 나은 것이 아니라 맞추면 안 되는 차이가 있다는 것이 이 건의 핵심이었다. 과거에 업무 PC 에 잘못 설치했던 것은 프로그램만 지우는 것과 HKLM:\SOFTWARE 아래 설정과 잔여 항목까지 지우는 것이 다르므로 흔적까지 제거했다.
두 목록으로 남기기
분류를 기록해 두지 않으면 다음에 목록을 비교할 때 같은 차이를 새로 발견하고 같은 제안을 반복하게 된다. 그래서 keep-diff.txt 와 sync-target.txt 로 유지할 차이와 동기화 대상을 각각 나눠 적어 뒀다.
용도 같은 맥락은 PC 안에 없어서 wmic 로는 안 나오고 물어야 나온다. 물어본 것 하나가 동기화 스크립트를 돌리는 대신 분류를 만들게 했다.
정리
- 신원과 용도가 다르면 차이가 의도적일 수 있다
- 목록 안에는 어느 쪽이 맞는지 판단할 근거가 없다
- 차이를 동기화 대상과 유지할 차이로 나눈다
- 용도로 설명되면 유지할 차이다
- 라이선스가 용도에 따라 갈리면 맞추는 것이 위반이 된다
- 일관성이 항상 좋은 것은 아니다
- 프로그램 삭제와
HKLM흔적 제거는 다르다 - 분류를
keep-diff.txt·sync-target.txt로 기록하지 않으면 같은 제안이 반복된다