인터페이스 설계서를 받았는데 앞쪽에 개정 이력 표가 있었다. 개정이 다섯 번 있었는데 버전 칸은 다섯 줄 모두 같은 값이었다.
Table of contents
Open Table of contents
이력은 쌓이고 버전은 그대로
버전이 안 움직이면 상대 쪽에서 받은 문서가 어느 시점 것인지를 확인할 방법이 없다. 파일 이름이나 날짜로 짐작하게 되고 그것은 틀릴 수 있다.
연동하는 쪽에서는 자기가 보고 있는 문서가 최신인지를 확인해야 한다. 버전이 그 역할을 해야 하는데 지금은 아무 정보도 주지 않고 있었다.
무엇을 올릴 것인가
그래서 어떤 변경에서 버전을 어떻게 올릴지 기준을 먼저 세웠다. 기존 연동이 깨지는 변경은 앞자리를 올리고 새 기능이 붙는 것은 뒷자리를 올리기로 했다.
오타를 고치는 정도는 안 올리고 이력에만 적기로 했다. 기준이 있으면 개정할 때마다 고민하지 않고 그 표만 보면 된다.
변경과 삭제를 따로 적는다
개정 내역을 보니 다섯 줄이 전부 무엇이 새로 붙었다는 내용이었다. 실제로는 그 사이에 바뀐 것과 없어진 것도 있었는데 그것이 안 적혀 있었다.
추가는 기존 연동을 안 깨지만 변경과 삭제는 깬다. 받는 쪽이 가장 먼저 봐야 하는 줄이 바로 그 두 종류라서 따로 적기로 했다.
기계적으로 생긴 네 종류
본문을 보니 리소스마다 네 종류의 호출이 기계적으로 다 만들어져 있었다. 실제로 쓰이는지를 확인해 보니 절반 정도는 아무도 안 쓰는 것이었다.
안 쓰는 것을 문서에 두면 그것도 유지해야 할 것으로 세어진다. 반대로 어떤 리소스에는 삭제가 아예 없었는데 왜 없는지가 안 적혀 있어서 그 이유를 적었다.
삭제 방식과 공개 범위
삭제가 실제로 지우는 것인지 표시만 남기는 것인지가 호출하는 쪽에 중요한 정보였다. 그것을 이름에 드러내니 문서를 안 열어도 알 수 있게 됐다.
마지막으로 인증 없이 열려 있는 호출을 한 곳에 모았는데 그 목록이 곧 공개 범위에 대한 진술이 된다. 흩어져 있으면 무엇이 열려 있는지를 아무도 전체로 못 본다.
정리
- 개정 이력이 쌓이는데 버전이 안 움직이면 최신을 판정할 수 없다
- 받는 쪽은 자기 문서가 최신인지 확인해야 한다
- 올리는 기준을 먼저 정한다
- 호환이 깨지는 것과 기능이 붙는 것을 다르게 센다
- 개정 내역에 변경과 삭제를 따로 적는다
- 그것이 기존 연동을 깨는 줄이다
- 기계적으로 생긴 호출이 실제로 쓰이는지 확인한다
- 인증 없이 열린 것을 한곳에 모으면 그 목록이 공개 범위가 된다