피드로 돌아가기
Build a link-preview service with one API call
Dev.toDev.to
Backend

API 기반 Metadata Normalization을 통한 Link-Preview 인프라 비용 절감

Build a link-preview service with one API call

clause-netizen2026년 6월 25일3beginner

Context

URL 기반 미리보기 구현 시 HTML Fetching, Parsing, OpenGraph 및 Twitter Card 태그 간 Reconciliation 과정에서 발생하는 높은 유지보수 비용과 복잡한 예외 처리 문제 직면.

Technical Solution

  • 외부 SiteIntel API를 활용하여 Parsing 로직을 추상화하고 단일 GET Request 기반의 정규화된 JSON 응답 구조 채택
  • OpenGraph og:description 우선 순위 적용 후 표준 meta description으로 Fallback 하는 계층적 데이터 추출 로직 구현
  • Relative Path 처리 비용 제거를 위한 Absolute URL 기반의 favicon 및 ogImage 제공 방식 적용
  • Promise.all과 .catch() 조합을 통한 개별 URL 장애가 전체 요청에 영향을 주지 않는 Fault Tolerance 구조 설계
  • 동일 URL의 반복 요청으로 인한 오버헤드 방지를 위해 Metadata 변경 주기 기반의 Caching 전략 수립

- 외부 API 연동 시 개별 요청의 실패가 전체 프로세스 중단으로 이어지지 않도록 Error Handling 적용 여부 확인 - 메타데이터와 같이 변경 빈도가 낮은 데이터는 TTL 기반의 Cache 레이어 도입으로 레이턴시 최적화 검토 - 다양한 사이트의 HTML 규격 차이를 해결하기 위한 데이터 Normalization 계층 분리 여부 검토

원문 읽기