RSS 피드를 읽어 데이터베이스(DB)에 저장할 때, 중복 저장을 방지하기 위해 '동일 아이템' 여부를 판단하는 기준은 보통 다음과 같은 순서와 방법을 권장합니다.
RSS 표준에는 각 아이템을 식별하기 위한 <guid> 태그가 있습니다. (Atom 피드의 경우 <id>)
아이템의 원문 주소인 <link> 태그를 기준으로 삼습니다.
?utm_source=rss...)가 붙는 경우, 이를 정규화(제거)한 후 비교해야 중복 판정을 피할 수 있습니다.GUID도 없고 Link도 가변적일 때 사용하는 최후의 수단입니다.
제목(title) + 발행일(pubDate)을 조합하여 유니크한 키를 생성합니다.이미 저장된 아이템이 '수정'되었는지 확인하고 싶을 때 사용합니다.
제목 + 내용(description/content) 전체를 MD5나 SHA-256으로 해싱하여 해시값을 저장합니다.guid 또는 link 컬럼에 UNIQUE 제약 조건을 걸고 인덱스를 생성하세요. 그래야 수만 건의 데이터 중 중복 여부를 빠르게 확인할 수 있습니다.INSERT ... ON DUPLICATE KEY UPDATE(MySQL) 또는 INSERT ... ON CONFLICT(PostgreSQL) 구문을 사용하면 코드가 간결해집니다.GUID가 있으면 GUID로 판단.GUID가 없으면 Link로 판단.Link + Title 혹은 Hash값 활용.결론적으로, 가장 일반적이고 안전한 기준은 GUID이며, GUID가 없는 경우를 대비해 Link를 보조 식별자로 사용하는 것이 표준입니다.