🇰🇷 한국어 🇺🇸 English
Loopback Social Logo

Loopback Social

Loopback Social은 커뮤니티 간의 연결을 위한 플랫폼입니다.

이 웹사이트에서 커뮤니티 운영자는 각 커뮤니티 상단에 부착할 수 있는 검은색 띠 배너를 받을 수 있습니다. 이 배너에는 캠페인에 동참하는 다른 커뮤니티의 이름이 함께 표시됩니다.

느슨한 연결이지만, 서로 커뮤니티가 연결되어있다는 점을 어필하면서 때로는 행사 홍보 배너나 팝업을 띄우는 등 여러 수단을 접목해본다면 어떨까 하는 생각으로 이 프로젝트를 시작해보았습니다.

이 프로젝트를 통해 커뮤니티 간의 연결을 상징하고, 함께하는 캠페인으로서 운영하고자 합니다.

Step 1. 설치하기

웹 사이트나 포럼 상단에 배너를 추가하려면 다음 한 줄의 코드를 HTML 파일이나 스킨 본문에 </body> 태그 (닫는 body 태그) 바로 앞에 추가하면 됩니다.

<script src="https://loopback.social/banner.js" defer></script>

배너 색상 커스터마이징 (선택 사항)

data-color 속성으로 배너 배경색을, data-textcolor 속성으로 텍스트/링크 색상을 변경할 수 있습니다. 기본값은 배경 검은색(#000000) / 텍스트 흰색(#ffffff)입니다. 16진수 색상 코드를 사용하며, #는 생략해도 됩니다.

<script src="https://loopback.social/banner.js" data-color="#005a9c" data-textcolor="#ffffff" defer></script>

배너 표시 언어 변경 (선택 사항)

data-lang 속성으로 배너의 표시 언어를 지정할 수 있습니다. 기본값은 auto이며, 페이지의 lang 속성이나 URL을 기반으로 자동 감지합니다. 특정 언어를 강제하려면 ko 또는 en을 지정하세요.

<script src="https://loopback.social/banner.js" data-lang="ko" defer></script>

색상과 언어를 함께 지정할 수도 있습니다.

<script src="https://loopback.social/banner.js" data-color="#005a9c" data-textcolor="#ffffff" data-lang="en" defer></script>

Step 2. 이름 알리기

선수 조건: Step 1의 배너 설치

이 단계의 모든 옵션은 Step 1에 따라 운영하시는 커뮤니티 사이트 상단에 배너를 먼저 설치한 뒤 진행해주세요. 배너가 설치되어 있지 않으면 다른 커뮤니티의 소식이 우리 커뮤니티 방문자에게 노출되지 않고, 네트워크의 연결도 양방향으로 이뤄지지 않습니다.

옵션 1 (권장): 자동 피드 운영

커뮤니티에서 운영하시는 도메인에 news.json 형식의 파일을 호스팅하시고, 커뮤니티 등재 이슈에 해당 URL을 함께 제출해주세요. 등재가 머지되면 Loopback Social 봇이 6시간마다 자동으로 가져와 배너와 공용 피드(RSS/Atom/JSON/iCal)에 노출합니다. 이후에는 호스팅하신 파일만 갱신하시면 다음 사이클에 반영되어, 매번 PR을 만들 필요가 없습니다. 배너에는 [커뮤니티 이름] 메시지 형태로 출처가 항상 명시됩니다.

호스팅 요구사항·선택 규칙·갱신 주기·장애 대응 등 운영자가 알아야 할 상세 명세는 별도 페이지에 정리해두었습니다: 네트워크 피드 호스팅 명세 →

옵션 2: 수동 피드 추가

자동 게시 환경을 운영하기 어렵다면, 종전 방식대로 항목 단위 제보로도 계속 참여 가능합니다.

  1. 커뮤니티 등재 이슈에 커뮤니티 정보를 제출 (네트워크 URL 칸은 비워두세요).
  2. 소식이 생길 때마다 뉴스 제보 등재 이슈를 제출하거나 docs/news.json을 직접 수정하는 PR을 보냅니다.
  3. 운영자가 검토·머지하면 다음 사이클에 배너와 공용 피드에 반영됩니다.

Loopback Social 운영진이 큐레이션해 강조하고 싶은 소식도 이 경로로 직접 등재됩니다.

Step 3. 뉴스 제보하기 (news.json 양식)

위의 어느 경로든 동일한 항목 형식을 사용합니다. 운영진께서 직접 docs/news.json을 수정하시거나, 커뮤니티 사이트에 같은 형식의 파일을 호스팅하시면 됩니다.

news.json 항목 형식

{
  "start": "YYYY-MM-DD HH:mm:ss",
  "end": "YYYY-MM-DD HH:mm:ss",
  "timezone": "+09:00",
  "message": {
    "ko": "한국어 메시지",
    "en": "English message"
  },
  "link": "https://example.com",
  "display": true
}

필드 설명

필드 필수 설명
start배너 표시 시작 일시 (YYYY-MM-DD HH:mm:ss)
end배너 표시 종료 일시 (YYYY-MM-DD HH:mm:ss)
timezone시간대. 생략 시 UTC. 오프셋("+09:00") 또는 IANA 이름("Asia/Seoul") 모두 사용 가능 (대소문자 무관)
event_start실제 이벤트 시작 일시. 캘린더(news.ics)와 Schema.org Event 데이터에 사용. 생략 시 start 사용
event_end실제 이벤트 종료 일시. 생략 시 end 사용
categoryevent / campaign / release / recruit / announcement 중 하나. event로 지정하거나 event_start를 함께 넣으면 캘린더에 정확히 반영됩니다
location사람이 읽을 수 있는 장소 이름. 캘린더 LOCATION과 Schema.org Event.location.name에 사용
message표시할 메시지. 문자열 또는 {"ko": "...", "en": "..."} 형태
link클릭 시 이동할 URL. 문자열 또는 {"ko": "...", "en": "..."} 형태
display표시 여부. true, "true", "yes", "1" 모두 활성으로 인식
idRSS GUID / iCalendar UID로 쓰일 고유 식별자. 생략 시 메시지+시작 시각으로 자동 생성

예시 1 — 단순 공지 (배너만)

{
  "start": "2026-03-01 00:00:00",
  "end": "2026-03-31 23:59:59",
  "timezone": "Asia/Seoul",
  "message": {
    "ko": "3월 밋업에 참여하세요!",
    "en": "Join our March meetup!"
  },
  "link": {
    "ko": "https://example.com/ko",
    "en": "https://example.com/en"
  },
  "display": true
}

예시 2 — 이벤트 (캘린더에 정확히 반영)

아래 항목은 3월 1일부터 3월 14일까지 배너에 노출되지만, 실제 이벤트는 3월 14일 14:00–17:00에 열립니다. category·event_start·event_end·location을 함께 지정하면 news.icsevents.jsonld에서 정확한 시각·장소로 표시됩니다.

{
  "start": "2026-03-01 00:00:00",
  "end": "2026-03-14 17:00:00",
  "timezone": "Asia/Seoul",
  "event_start": "2026-03-14 14:00:00",
  "event_end": "2026-03-14 17:00:00",
  "category": "event",
  "location": "서울 강남",
  "message": {
    "ko": "3월 정기 밋업",
    "en": "March Regular Meetup"
  },
  "link": "https://example.com/march-meetup",
  "display": true
}

참고: linkmessage, location은 단일 문자열로도 설정할 수 있으며, 이 경우 모든 언어에 동일한 값이 사용됩니다.

피드 및 API (외부 연동용)

참여 커뮤니티가 다른 커뮤니티의 일정과 소식을 각자의 도구에서 활용할 수 있도록 다음 엔드포인트를 제공합니다. news.json·communities.json이 바뀔 때마다 GitHub Actions가 자동으로 다시 빌드하며, 매일 09:00 KST(00:00 UTC)에도 갱신됩니다. AI 에이전트도 이 경로들을 통해 항상 최신 정보를 가져갈 수 있습니다.

작동 원리

banner.js 스크립트는 웹사이트에 포함될 때 페이지 상단에 검은색 띠 배너를 동적으로 생성하고 삽입합니다. 이 배너에는 loopback.social이라는 프로젝트 제목과 참여 커뮤니티 목록이 포함된 드롭다운 메뉴가 표시됩니다. 커뮤니티 목록은 communities.json 파일에서, 뉴스 티커의 내용은 news.json 파일에서 관리됩니다.

캐시 문제 해결

만약 업데이트된 내용이 보이지 않는다면, 다음 방법을 시도해보세요: