RSS 피드 모범 사례 (2022)

RSS Feed Best Practices (2022)

kevincox.ca ▲ 62 댓글 10 KomoD

요약

블로그 피드는 Atom 형식에 글 전문을 담고, 글 ID와 날짜는 한번 정하면 바꾸지 말아야 합니다.

개발자 케빈 콕스가 2022년에 쓰고 2024년 3월에 고친 글입니다. 글의 내용은 다루지 않고, 블로그 글을 피드로 내보내는 기술적 요령만 중요한 순서대로 정리했습니다.

왜 중요한가

  • 피드 리더(구독한 사이트의 새 글을 모아 보여 주는 프로그램)는 구현이 제각각이라 작은 실수도 구독자에게 바로 드러납니다.
  • 글 ID가 바뀌거나 겹치면 구독자는 같은 글을 두 번 받거나 새 글을 놓칩니다.
  • 피드 응답이 느리면 리더가 확인 주기를 늘려 구독자가 새 글을 늦게 받습니다.

핵심 내용

  • 새로 만드는 피드라면 규격이 더 명확해 해석이 갈릴 여지가 적은 Atom을 권했습니다.
  • 리더는 상대 경로를 제대로 처리하지 못하는 경우가 많아 본문 속 링크까지 절대 URL로 써야 합니다.
  • 요약만 실으면 구독자가 떠날 수 있으니 글 전문을 넣으라고 했습니다.
  • 게시 시각을 소급하거나 나중에 고치면 리더가 글을 무시하거나 수정된 글로 다시 띄울 수 있습니다.
  • 피드는 원래 봇이 읽는 것이므로 봇 차단 대상에서 피드 주소는 빼야 한다고 했습니다.

HN 반응

  • RSS 리더를 만드는 한 이용자는 대부분 동의했지만, 스타일 항목은 오해를 부른다며 CSS는 대부분 리더가 무시한다고 반박했습니다.
  • 트위터와 Reddit처럼 피드를 아예 없앤 사이트가 더 큰 문제라는 지적도 나왔습니다.

댓글

10개 표시 · 전체 10개
  1. tjansen HN

    RSS 리더를 만드는 사람으로서 글 내용 대부분에는 동의하지만, HTML / 스타일링 부분만큼은 잘못된 정보투성이입니다.

    1. CSS를 쓸 수는 있지만, 대부분의 리더가 CSS를 통째로 무시한다고 보시는 게 좋습니다. Feedly처럼 널리 쓰이는 리더도 마찬가지입니다. 지원하는 리더라 해도 텍스트 스타일 같은 일부만 지원합니다. 레이아웃 스타일(위치 지정이나 flex 레이아웃)은 안 되고, 색상조차 안 되는 경우가 많습니다. 쓰시는 리더가 무엇을 지원하는지 확인해 보고 싶다면 이 테스트 피드를 써 보세요: https://test-rss.downread.com/styles.rss.xml

    2. 인라인 CSS를 "선호"하는 정도가 아니라 반드시 인라인으로 쓰세요. 제대로 만든 RSS 리더라면 <style>은 전부 걸러내니까요.

    3. 네, 시맨틱 요소는 대체로 잘 동작합니다. 글에 나온 것들뿐 아니라 <table>, <figure>, 때로는 <aside> 같은 것도 됩니다.

    4. JavaScript는 쓰지 말라는 데 동의합니다. 쓰지 마세요.

    5. 괜찮은 리더라면 <video>와 <audio>를 지원합니다. 하지만 흔한 제공업체, 특히 유튜브를 쓴다면 <iframe>이 훨씬 낫습니다. X, 인스타그램, 페이스북 임베드도 비교적 널리 지원됩니다.

    6. 폼(form)에 대해서도 동의합니다. 잘해야 렌더링 힌트로 쓰이는 정도고, 폼이 실제로 동작하지는 않습니다.

  2. simonjgreen HN

    리더를 어떻게 만드셨는지 이야기를 좀 듣고 싶습니다.

    저는 RSS로 계속 돌아오게 되는데, 아쉽게도 그만큼 계속 잊어버리기도 합니다. 습관과 루틴은 어떻게 만드셨습니까?

  3. tjansen HN

    downread.com이라는 건데요, 아직 베타지만 충분히 쓸 만하고 기능도 거의 다 갖췄어요. 더 할 말이 뭐가 있을지 모르겠네요. 경쟁 제품보다 더 낫게 만들려고 애쓰고 있습니다 :) HTML/스타일이 그중 한 부분이에요. 기사 안의 스타일까지 이만큼 지원하는 다른 RSS 리더는 제가 알기로는 없어요. Downread는 CSS는 물론이고 CMS별 CSS 클래스, Tailwind, 그리고 처리하기 까다로운 인기 피드를 위한 맞춤 스타일링까지 지원해요.

    습관은... 글쎄요, 그냥 계속 해 왔어요. 읽을 틈이 생기면 열어요. Downread 이전에는 Feedly였고, Feedly 이전에는 Google Reader였고, 그 전에는... 기억이 안 나네요, 무슨 데스크톱 앱이었어요. 제가 글을 읽는 방법은 사실상 이것뿐이고, 많이 읽는 편이에요.

  4. marcelo-earth HN

    iframe을 넣을 수 있는지 몰랐는데, 이제 알았으니 RSS 피드에 반영해야겠어요. 고맙습니다!

  5. tjansen HN

    보통은 화이트리스트에 오른 URL이나 호스트만 됩니다.

  6. xyzsparetimexyz HN
    1. RSS 피드를 제공할 것
    2. 그걸 없애지 말 것

    안타깝게도 트위터, Reddit을 비롯한 많은 사이트가 수년째 이 두 가지를 어기고 있죠.

  7. m2026 HN

    안타깝게도 독립 실행형 RSS 리더 대부분은 번역기를 써서 다른 언어로 바꿔 보는 기능을 제공하지 않습니다. 피드에 여러 언어의 콘텐츠가 섞여 있는 다국어 사이트라면, 번역을 받을 수 있는 방법은 브라우저 기반 RSS 리더를 쓰는 것뿐입니다.

  8. talideon HN

    여기에 하나 덧붙이자면, 항목 ID를 만들 때는 tag URI(RFC 4151 참고)가 아주 좋은 방법입니다.

  9. cxr HN

    재미있는 사실이 있어요. "태그에는 공인된 해석(resolution) 방식이 없고" "해석을 지원하도록 설계되지도 않았"지만, 그래도 해석하는 건 전혀 문제없이 허용돼요. 예를 들어 서버를 살짝 손봐서 HTTP 수준에서 처리하게 만들 수도 있죠.

        GET tag:[email protected],2013:15fb-4628-94d3 HTTP/1.0
    
    HTTP/1.0 302 I love you
        Location: https://example.net/~alice/2025/11/03/go-vote
    

    (심지어 자기가 만들지 않은 다른 사람의 tag URI를 해석해 달라는 요청에도 응답할 수 있어요. 아무도 말리지 않아요.)

  10. edhelas HN

    네, Atom 1.0을 쓰세요 <3

Hacker News에서 보기 ↗