[개발] baseline은 왜 필요할까

snowballnote·2026년 9월 16일

PIA 공지사항을 자동으로 수집할 때 처음 가져온 공지를 어떻게 처리할지 정해야 했다.

이미 게시판에 올라와 있던 공지인데 프로그램이 처음 봤다는 이유로 전부 신규 알림을 보내면 안 되니까.

그래서 첫 수집 결과를 baseline으로 사용한다.

baseline

이후 데이터와 비교하기 위한 기준 상태.

예를 들어 첫 수집에서 공지 3개를 가져왔다고 해보자.

첫 수집

1001
1002
1003

이 공지들을 신규 알림으로 보내는 대신 기존 상태로 저장한다.

첫 수집
→ 기존 공지 저장
→ baseline 생성
→ 신규 알림 없음

다음 수집부터 저장된 상태와 비교한다.

신규 공지 판단

baseline

1001
1002
1003

다음 수집 결과

1001
1002
1003
1004

비교하면

1004
→ 기존 상태에 없음
→ 신규 공지

처음 수집한 데이터가 기준이 되기 때문에 이후에 추가된 공지를 구분할 수 있다.

fingerprint와 같이 사용하면?

공지 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 차이

구분의미
baseline비교 기준이 되는 이전 상태
fingerprint공지 내용의 상태를 나타내는 값

fingerprint는 공지의 변경 여부를 확인할 때 사용하고 baseline은 무엇을 이전 상태로 볼지 정하는 기준이다.

Biz Assist에서는

PIA 공지사항은 Biz Assist를 만들기 전부터 운영 중이던 게시판이다.

그래서 첫 수집 결과를 모두 신규 알림으로 처리하지 않고 기존 상태로 잡을 필요가 있었다.

첫 수집
→ baseline 생성

이후 수집
→ 이전 상태와 비교
→ 신규 / 변경 / 변경 없음 판단
profile
개발자로 이 험난한 세상 살아가기

0개의 댓글