PIA 공지사항을 자동으로 수집할 때 처음 가져온 공지를 어떻게 처리할지 정해야 했다.
이미 게시판에 올라와 있던 공지인데 프로그램이 처음 봤다는 이유로 전부 신규 알림을 보내면 안 되니까.
그래서 첫 수집 결과를 baseline으로 사용한다.
이후 데이터와 비교하기 위한 기준 상태.
예를 들어 첫 수집에서 공지 3개를 가져왔다고 해보자.
첫 수집
1001
1002
1003
이 공지들을 신규 알림으로 보내는 대신 기존 상태로 저장한다.
첫 수집
→ 기존 공지 저장
→ baseline 생성
→ 신규 알림 없음
다음 수집부터 저장된 상태와 비교한다.
baseline
1001
1002
1003
다음 수집 결과
1001
1002
1003
1004
비교하면
1004
→ 기존 상태에 없음
→ 신규 공지
처음 수집한 데이터가 기준이 되기 때문에 이후에 추가된 공지를 구분할 수 있다.
공지 ID만 비교하면 새로 추가된 공지는 찾을 수 있지만 기존 공지의 내용이 바뀌었는지는 알기 어렵다.
그래서 fingerprint도 함께 비교한다.
baseline
1001 → fingerprint A
1002 → fingerprint B
다음 수집 결과
1001 → fingerprint A
1002 → fingerprint C
1003 → fingerprint D
비교 결과
1001
→ ID 같음 + fingerprint 같음
→ 변경 없음
1002
→ ID 같음 + fingerprint 다름
→ 내용 변경
1003
→ 기존 ID 없음
→ 신규 공지
| 구분 | 의미 |
|---|---|
baseline | 비교 기준이 되는 이전 상태 |
fingerprint | 공지 내용의 상태를 나타내는 값 |
fingerprint는 공지의 변경 여부를 확인할 때 사용하고 baseline은 무엇을 이전 상태로 볼지 정하는 기준이다.
PIA 공지사항은 Biz Assist를 만들기 전부터 운영 중이던 게시판이다.
그래서 첫 수집 결과를 모두 신규 알림으로 처리하지 않고 기존 상태로 잡을 필요가 있었다.
첫 수집
→ baseline 생성
이후 수집
→ 이전 상태와 비교
→ 신규 / 변경 / 변경 없음 판단