🇰🇷 한국어 🇺🇸 English

네트워크 피드 호스팅 명세

커뮤니티가 운영하시는 도메인에 news.json 형식의 파일을 호스팅하시면, Loopback Social 봇이 6시간마다 자동으로 가져와 배너와 공용 피드에 노출합니다. 본 문서는 그 자율 게시 경로(홈의 Step 2 옵션 1)를 운영하시려는 커뮤니티 담당자를 위한 가이드입니다.

전체 흐름

  1. 운영하시는 도메인에 news.schema.json 형식의 JSON 배열을 게시합니다. 예: https://forum.example.com/loopback.json. 언어별로 분리하시려면 loopback.ko.json / loopback.en.json 두 개로 운영하실 수 있습니다.
  2. 커뮤니티 등재 이슈의 "네트워크 뉴스 소스" 칸에 그 URL(들)을 함께 제출합니다.
  3. 운영자가 검수 후 머지 → aggregate-network.mjs가 6시간마다 가장 최근 active 항목을 가져옵니다.
  4. 이후에는 호스팅하신 파일만 갱신하시면 다음 사이클에 자동 반영됩니다. 별도 PR 불필요.

배너에서는 [커뮤니티 이름] 메시지 형태로 출처가 항상 명시되고, 공용 RSS/Atom/JSON Feed에도 동일한 메타데이터가 포함됩니다.

최소 요구사항

항목 선택 규칙

출처 메타데이터 (_source)

픽업된 모든 항목에는 다음 모양의 _source가 자동으로 박혀 들어갑니다. 커뮤니티가 페이로드에 직접 넣은 _source는 덮어쓰입니다.

{
  "_source": {
    "community": "kebab-slug",
    "community_name": { "ko": "닷넷데브", "en": ".NET Dev" },
    "community_url": "https://forum.dotnetdev.kr/",
    "source_url": "https://forum.dotnetdev.kr/loopback.json",
    "lang": "ko"
  }
}

배너 런타임은 _source.community_name을 읽어 [커뮤니티 이름] 메시지 prefix를 자동으로 붙입니다. RSS/Atom/JSON Feed의 _loopback_social 확장에도 동일 정보가 포함되어 구독자가 출처를 식별할 수 있습니다.

갱신 주기와 캐싱

장애 동작

항목 라이프사이클

end가 과거가 된 항목도 30일 동안 docs/news.network.json에 남아 RSS/Atom/JSON Feed 구독자가 최근 변경을 따라잡을 수 있게 합니다. 30일이 지나면 자동으로 제거됩니다.

로컬 검증

작성하신 JSON이 schema에 부합하는지 사전에 확인:

npx ajv-cli@5 validate \
  -s https://loopback.social/schemas/news.schema.json \
  -d my-news.json \
  --strict=false --all-errors

aggregator를 직접 돌려보고 싶다면:

git clone https://github.com/loopback-social/community-network-banner
cd community-network-banner
npm install --no-save ajv@8
node .github/scripts/aggregate-network.mjs
# → docs/news.network.json에 픽업 결과가 기록됨

관련 링크