FastComments.com Blog
Sat Oct 10 2026
...

2026년 OpenWeb에서 FastComments로 마이그레이션하는 방법

! 이 문서는 기술 용어를 포함하고 있습니다

이 가이드는 현재 OpenWeb을 운영 중이며 전환 계획이 필요한 제품·엔지니어링 리드와 커뮤니티 매니저를 위한 것입니다. 각 OpenWeb 화면을 살펴보고 FastComments에 해당하는 항목을 제시하며 1:1 매핑이 없는 경우를 명확히 설명합니다.

왜 지금인가

2026년 9월 30일, 텔아비브 지방법원은 OpenWeb에 대한 임시 수신인 임명을 명령했으며, 이는 채권자인 Mars Growth Capital의 요청에 따른 것입니다. 이 채권자는 회사 자산 및 계정에 대한 1순위 유치권을 보유하고 있으며, OpenWeb의 이스라엘 자산, 은행 계좌 및 지적 재산에 대해 이를 집행하려 하고 있습니다(Calcalist, Sept 30). 다음 날 임시 수탁인인 Adv. Ehud Gindes가 임명되었습니다(Calcalist, Oct 4). 2026년 초, OpenWeb의 주요 고객 중 하나였던 Microsoft가 트래픽 분쟁을 이유로 계약을 종료하고 결제를 보류했습니다(Calcalist, Sept 28).

OpenWeb은 플랫폼이 계속 운영된다고 주장합니다. 법원 감독, IP에 대한 유치권을 집행하는 채권자, 자산 가치를 보존하는 수탁자는 핵심 참여 표면을 운영하는 퍼블리셔에게 바람직한 상황이 아닙니다. 아직 전체 데이터 내보내기를 수행하지 않았다면, 이 가이드를 진행하기 전에 먼저 오늘 바로 수행하십시오.

시작하기 전에 필요한 것

코드를 건드리기 전에 다음을 준비하십시오:

  • OpenWeb 댓글 내보내기. OpenWeb은 Export API(v4)를 제공하며, 최대 100,000개의 댓글이 포함된 ZIP CSV 파일을 생성합니다. 파일당 날짜 범위는 최대 한 달이며, 다운로드 링크는 일주일 후 만료됩니다(OpenWeb docs). 필요한 모든 기간을 요청하고 파일을 안전한 곳에 보관하십시오. 이전에 OpenWeb 담당자가 Admin Panel CSV 내보내기를 제공한 경우에도 보관하십시오. FastComments 가져오기 도구는 id, post_id, parent_comment_id, user_name, user_display_name, content, written_at, message_status, likes_count, dislikes_count, reports_count, url 등의 열을 포함한 OpenWeb CSV를 읽습니다.
  • Spot ID와 게시물 ID 목록. 런처에 전달하는 모든 data-post-id는 FastComments URL ID가 됩니다. 게시물 ID가 CMS 기사 ID인 경우, FastComments 측에서도 동일한 값을 생성할 수 있도록 생성 방식을 기록하십시오.
  • SSO 사용자 목록. 특히 OpenWeb에 등록한 primary_key와 user_name 값을 준비하십시오. 댓글 작성자는 가져오기 중 사용자 이름으로 매칭되므로 FastComments SSO 페이로드에 동일한 사용자 이름을 전달해야 합니다.
  • 모더레이터 목록 및 역할. 관리자, 모더레이터, 저널리스트 계정과 각자가 담당하는 섹션을 정리하십시오.
  • 모더레이션 설정. 사이트 전체 정책(전체 승인, 게시 후 모더레이션, 승인 필요), 기사별 오버라이드, 제한어 목록, 음소거 및 차단 사용자 등을 정리하십시오.
  • 맞춤 CSS 및 테마 설정. Admin Panel에서 내보낸 모든 항목을 FastComments 위젯 커스터마이징 페이지에서 재구성할 수 있도록 준비하십시오.
  • 런처가 템플릿에 위치한 위치. Reactions, Topic Tracker, Spotlight, Notification Bell 또는 Standalone Ad가 Conversation 없이 실행되는 모든 페이지를 포함합니다.

AI 지원 마이그레이션

FastComments는 LLM Kit 및 MCP 서버를 제공하여 마이그레이션을 가속화합니다.

OpenWeb 게시물 ID가 FastComments URL ID에 매핑되는 방식

FastComments는 댓글 스레드를 urlId에 연결합니다. 기본적으로 URL ID는 정리된 페이지 URL이지만, 임의 문자열로 설정할 수 있으며, OpenWeb 가져오기 도구가 바로 이 방식을 사용합니다: post_id 열을 읽어 해당 기사에 대한 모든 댓글의 FastComments URL ID로 사용합니다. 또한 url 열을 표시 URL로 저장하여 모더레이션 링크와 알림 이메일이 올바른 페이지를 가리키게 합니다.

따라서 템플릿 규칙은 다음과 같습니다: OpenWeb에 data-post-id="POST_ID"와 data-post-url="ARTICLE_URL"를 전달했다면, FastComments에는 urlId: 'POST_ID'와 url: 'ARTICLE_URL'를 전달하십시오. 가져온 스레드는 리다이렉션이나 URL 재작성 없이 실시간 스레드와 일치합니다. 자세한 내용은 URL ID 문서를 참고하십시오.

앞으로 URL을 기준으로 스레드를 키우고 싶다면, 먼저 가져온 뒤 Manage Data 아래의 Migrate Comments 도구를 사용해 게시물 ID에서 URL로 대량 이동할 수 있습니다.

기능 매핑

OpenWeb FastComments Notes
실시간 업데이트가 있는 Conversation 실시간 댓글이 가능한 Comment widget 기본적으로 실시간. 새 댓글은 “Show N New Comments” 버튼 뒤에 숨겨지거나 showLiveRightAway로 즉시 표시됩니다.
댓글에 대한 좋아요·싫어요 Up and down votes 가져오기는 likes_count와 dislikes_count를 보존합니다. 하트 스타일 및 “투표 비활성화”는 설정 옵션입니다.
Reactions(기사 수준 아이콘) Page Reacts 페이지에 설정 가능한 아이콘 세트, 사용자별 기억됨.
답글·스레딩 Threaded replies, unlimited depth maxReplyDepth로 중첩 제한.
정렬: best, newest, oldest Most Relevant, Newest First, Oldest First defaultSortDirection으로 사이트 또는 URL 패턴별 기본값 설정.
사용자 프로필 User profiles 아바타, 바이오, 배지, 카르마, 활동, DM. SSO 사용자와 연동.
Author Badge displayLabel, isAdmin, isModerator, badges SSO 페이로드에 설정. 백엔드 조회 호출 불필요.
고정된 Live Blog 업데이트, 강조 댓글 Pin and Unpin on any comment 모더레이터가 위젯 또는 대시보드에서 고정. AI 에이전트 템플릿이 상위 투표 댓글을 고정.
대화 내 설문조사 Polls on comments 2~10 옵션, 마감일, 프라이버시 모드, 생성자 제한.
AMA 포맷 별도 제품 없음 작성자 SSO 사용자를 라벨링하고 질문을 고정한 스레드로 운영.
Live Blog 1:1 대응 없음 Live Chat 위젯 및 채팅 모드 댓글 존재. 편집용 Live Blog는 CMS에 유지.
Topic Tracker(주제·작성자 팔로우) Page subscriptions 사용자는 페이지를 구독, 주제·작성자 교차 팔로우 없음.
Notification Bell 위젯 내 알림 벨 답글, 멘션, 스레드 활동, 투표, 구독, 배지, DM.
이메일 알림 템플릿 포함 이메일 알림 사용자별 SSO 플래그로 옵트인. 맞춤 템플릿, 브랜드 발신자.
SSO 핸드셰이크(codeA/codeB) Secure SSO(HMAC-SHA256 페이로드) 등록 호출 없음. 서버에서 페이로드 서명 후 위젯에 전달.
서드파티 SSO(Auth0, Gigya, Piano) 공급자 인증 후 Secure SSO 동일 페이로드. 백엔드에서 로그인 후 서명.
Identity(OpenWeb 등록 화면) Magic-link 로그인, Simple SSO 이메일 링크로 로그인, 비밀번호 없음.
기사별 모더레이션 정책 URL ID 패턴별 커스터마이징 규칙 승인 모드, 스팸 필터 등 */section/* 패턴별 다양하게 적용.
Aida AI 모더레이션 스팸 분류기, LLM 기반 필터, 이미지 모더레이션, AI Agents 에이전트는 드라이 런으로 시작, 인간 승인 필요 가능.
제한어 로케일별 단어 블랙리스트 기본 ~450 구문, 편집 가능.
사용자 음소거 Block User 댓글 메뉴에서 독자별 차단.
차단 Bans 영구, 기간 지정, 섀도우, IP 해시, 별칭 인식 등.
모더레이션 패널 Moderate Comments 대시보드 필터, 일괄 작업(undo 포함), 그룹, 다이제스트 이메일, 원클릭 승인.
알림 웹훅 Webhooks 댓글 생성·수정·삭제. 사용자별 알림 웹훅은 없음.
참여 대시보드 Analytics 실시간 사용자, 상위 페이지, 페이지 로드, 댓글, 투표, 일일 계정 등. 광고 수익 보고는 없음.
대화 내 광고, Standalone Ad 없음 FastComments는 광고를 제공하지 않으며, 위젯 주변에 자체 광고 스택을 유지합니다.
Social Reviews(별점) Ratings and Reviews 동일 계정의 별도 제품.
커뮤니티 인기 Recent Discussions 및 Top Pages 위젯 댓글 활동 기반 재순환.
댓글 카운터 Comment count 위젯 단일 및 일괄.
Export Comments API CSV 내보내기, API, 웹훅 대시보드에서 언제든 내보내기.
사용자 데이터 내보내기·삭제(GDPR/CCPA) 계정·데이터 삭제, EU 지역 eu.fastcomments.com은 EU 내에 데이터 보관. DPA 제공.
Android, iOS, React Native SDK Android, iOS, React Native SDK 네이티브 UI, SSO, 실시간 업데이트, 스레딩, 모더레이션 액션.
Launcher, Virtual Pages, React SDK Embed script, fcConfigs, React, Vue, Angular, SolidJS 라이브러리 SPA용 update()와 destroy() 제공.

이 섹션의 나머지는 각 그룹을 자세히 살펴봅니다.

Conversation, Votes and Reactions

OpenWeb의 Conversation은 실시간 스레드입니다. FastComments 댓글 위젯도 마찬가지이며, 댓글, 편집, 삭제, 투표 및 모더레이션 액션이 스레드를 보는 모든 사람에게 푸시됩니다(docs). 기본적으로 다른 사람의 새 댓글은 “Show 2 New Comments” 버튼 뒤에 숨겨져 페이지가 독자에게 튀는 것을 방지합니다. 실시간 이벤트의 경우 showLiveRightAway를 설정해 즉시 표시하고, 채팅처럼 아래로 흐르게 하려면 newCommentsToBottom을 사용하십시오.

좋아요·싫어요는 상하 투표가 됩니다. 가져오기 도구는 각 댓글의 두 카운트를 보존합니다. 커뮤니티가 단일 좋아요만 사용한다면 위젯 커스터마이징 페이지에서 하트 스타일로 전환하십시오. 투표를 완전히 비활성화할 수도 있습니다.

OpenWeb Reactions은 기사에 2~4개의 라벨 아이콘을 표시하는 별도 위젯입니다(OpenWeb docs). FastComments 대응은 Page Reacts이며, 댓글 위젯에 연결된 반응 이미지 세트를 페이지·사용자별로 기억합니다(docs). OpenWeb 댓글 내보내기에 반응 카운트가 포함되지 않으므로 0부터 시작합니다.

정렬은 직접 매핑됩니다. OpenWeb의 data-sort-by 값인 best, newest, oldest는 각각 Most Relevant, Newest First, Oldest First와 대응합니다. 코드 또는 커스터마이징 규칙에서 defaultSortDirection(MR, NF, OF)으로 기본값을 설정하십시오. 사용자는 위젯에서 전환할 수 있습니다.

data-read-only="true"는 readonly: true가 되며, 새 댓글, 투표, 편집 및 삭제를 차단합니다. data-post-staleness-days에 직접적인 대응은 없지만, 커스터마이징 규칙으로 URL ID 패턴에 readonly를 적용하거나 템플릿에서 기사 연령에 따라 전환할 수 있습니다. data-messages-count는 페이지 크기로, 위젯 커스터마이징 페이지에서 10~200 댓글로 설정합니다.

Replies and Threading

FastComments는 기본적으로 무제한 중첩을 지원합니다; maxReplyDepth로 제한할 수 있으며(1이면 2단계 플랫 구조). OpenWeb CSV에는 parent_id와 parent_comment_id 열이 포함됩니다. 가져오기 도구는 parent_comment_id를 읽어 전체 깊이의 답글 트리를 재구성하므로, 답글에 대한 답글도 직접 부모 아래에 중첩됩니다. 저자, 타임스탬프, 투표, 플래그 카운트 및 승인 상태가 그대로 유지됩니다. 파일에서 부모보다 먼저 나타나는 답글이나 이전 내보내기 창에서 가져온 부모도 연결됩니다. 모든 내보내기에 부모가 없으면 최상위 댓글이 됩니다. OpenWeb 메시지 ID는 각 댓글에 저장되므로, 오래된 플랫 가져오기를 재수행해도 제자리에 스레드가 유지됩니다.

User Profiles and Badges

FastComments 사용자는 SSO 사용자 포함, 아바타, 표시 이름, 바이오, 소셜 링크, 배지, 카르마, 댓글 수, 공개 활동 피드 및 DM을 갖춘 프로필을 가집니다(docs). 활동, 프로필 댓글 및 DM 표시는 SSO 페이로드 또는 전역 설정에서 사용자별로 비활성화할 수 있습니다.

OpenWeb의 Author Badge는 GET /sso/v1/user/{primary_key}를 호출해 작성자를 가져오고 data-author-id에 ID를 넣어야 합니다. FastComments에서는 SSO 페이로드에 displayLabel: 'Author'(또는 최대 100자)와 isAdmin 또는 isModerator를 설정하면 됩니다. 라벨은 모든 댓글에 이름 옆에 표시됩니다. 더 풍부한 시스템을 원한다면 Customize → Badges에서 이미지·텍스트 배지를 설정하고, 댓글 수, 업투표, 고정 댓글, 베테랑 상태, 답글 속도 등 임계값에 따라 자동 부여하거나 수동으로 부여할 수 있습니다. SSO 페이로드의 badgeConfig로도 할당 가능합니다(docs).

Pinned Comments, Polls and Q&A

모더레이터는 위젯의 댓글 메뉴 또는 모더레이션 대시보드에서 댓글을 고정·해제할 수 있습니다. 고정된 댓글은 스레드에 있는 모든 사람에게 실시간으로 푸시됩니다. 자동화를 원한다면 AI Agents 기능의 Top Comment Pinner 템플릿을 사용해 투표 임계값을 초과하면 상위 댓글을 고정할 수 있습니다(docs).

OpenWeb의 In Conversation Polls는 직원이 상위 댓글에 24 옵션 설문을 붙이는 기능입니다. FastComments 설문도 댓글에 붙이며, 210 옵션, 선택적 마감일, 결과 프라이버시(익명, 관리자 전용, 모두), “결과 보기 위해 투표” 모드 등을 지원합니다. 설문 생성 권한(비활성화, 관리자·모더레이터, 모두)과 익명 독자의 투표 여부를 선택할 수 있습니다. 설문은 공개 API를 통해 CMS에서 생성할 수도 있습니다.

OpenWeb은 Ask Me Anything 포맷을 제공했지만, FastComments에는 별도 Q&A 제품이 없습니다. 실용적인 대체는 전용 URL ID에 일반 스레드를 만들고, 게스트의 SSO 사용자에 displayLabel을 지정해 소개 댓글을 고정하는 방식입니다. 독자는 상위 댓글에 질문하고, 게스트는 스레드 내에서 답변하며, 멘션·답글 알림이 사람들을 다시 끌어옵니다. 창이 닫힌 후에는 noNewRootComments를 설정해 새 루트 댓글을 차단하고 답글만 허용합니다.

Community Spotlight(OpenWeb의 이메일 수집·카운터·리다이렉트 카드)는 대응이 없습니다. 위젯은 headerHTML을 통해 댓글 입력 위에 맞춤 헤더 HTML을 지원하지만, 이메일 캡처 폼은 제공하지 않습니다.

Live Blog

FastComments에는 Live Blog이 없습니다. OpenWeb의 Live Blog은 편집용 제품으로, 관리 패널에서 기자가 업데이트를 게시하고 링크·트윗·비디오를 삽입해 독자가 따라가게 합니다(OpenWeb docs).

FastComments가 제공하는 실시간 커버리지는 독자 측면입니다: Live Chat 위젯(embed-live-chat.min.js)을 사용해 스트리밍 채팅을 제공하고, showLiveRightAway와 newCommentsToBottom을 조합해 댓글 위젯을 채팅 모드로 전환합니다. 편집 업데이트 자체는 OpenWeb을 떠나는 퍼블리셔가 CMS 또는 전용 Live Blog 도구에 유지하고, FastComments를 아래에 삽입해 토론을 진행합니다. 댓글 안에 YouTube, SoundCloud 등 미디어 임베드가 지원되어 직원 업데이트가 풍부한 미디어를 포함할 수 있습니다.

Topic Tracker, Notifications and Email

OpenWeb의 Topic Tracker는 페이지 메타데이터에서 추출한 주제·작성자를 팔로우하고 새 기사와 매칭될 때 알림을 보내는 기능입니다(OpenWeb docs). FastComments에는 기사 간 주제·작성자 팔로우가 없습니다. 독자는 알림 벨을 통해 페이지를 구독하고, 구독한 스레드에 대한 업데이트를 받으며, 구독 빈도는 매분, 시간별 다이제스트, 일일 다이제스트 중 선택할 수 있습니다. 교차 기사 팔로우가 필요하다면 로드맵에 요청해 주세요.

알림 벨의 나머지 기능은 모두 매핑됩니다. 위젯에는 읽지 않은 수가 빨간색으로 표시되는 벨이 있으며, 목록에는: 나에게 달린 답글, 내가 댓글을 단 스레드의 답글, 멘션, 내 댓글에 대한 업투표, 구독 페이지 활동, 배지 수여, DM이 포함됩니다(docs). 인앱 알림은 WebSocket을 통해 실시간으로 전달됩니다. 답글·멘션 이메일은 승인된 댓글에 대해 매분 발송됩니다.

SSO 사용자의 경우 페이로드에 optedInNotifications와 optedInSubscriptionNotifications를 전달하면 FastComments가 다음 페이지 로드 시 선호도를 업데이트합니다. 이메일 주소가 페이로드에 있어야 이메일이 전송됩니다. 이메일 템플릿은 Customize → Email Templates에서 유형·로케일별로 편집 가능하며, DKIM을 사용해 자체 도메인에서 발송할 수 있습니다. 모더레이터·관리자는 일·주·월 다이제스트를 받아 원클릭 승인·응답·스팸 링크를 사용할 수 있습니다.

OpenWeb의 Notification Webhook은 사용자별 알림 이벤트(replied-message, liked-message, topic-by-keyword 등)를 엔드포인트에 POST합니다. FastComments 웹훅은 댓글 리소스(생성·수정·삭제)만을 다루며, 원하는 만큼 구독 엔드포인트를 설정할 수 있습니다(docs). 기존에 알림 웹훅을 사용해 자체 이메일 시스템을 구축했다면, 댓글 이벤트 기반 로직으로 재구성하거나 FastComments가 이메일을 직접 보내도록 전환하십시오.

SSO: From codeA/codeB to a Signed Payload

OpenWeb의 핸드셰이크는 6단계로 구성됩니다: spot-im-api-ready 대기 → OpenWeb이 codeA 발행 → 클라이언트가 백엔드에 전달 → 백엔드가 사용자 확인 후 GET https://www.spot.im/api/sso/v1/register-user?code_a=...&access_token=...&primary_key=...&user_name=... 호출 → OpenWeb이 codeB 반환 → 클라이언트가 codeB를 OpenWeb에 다시 전달합니다(OpenWeb docs). 로그아웃은 window.SPOTIM.logout()을 호출합니다.

FastComments Secure SSO는 라운드 트립이 없으며 새로운 엔드포인트도 필요하지 않습니다. 로그인된 사용자를 위한 페이지를 렌더링할 때 백엔드가 사용자를 직렬화하고 Base64 인코딩한 뒤, API 시크릿으로 HMAC‑SHA256 서명을 합니다. 위젯은 요청에 페이로드를 포함하고 FastComments가 서명을 검증합니다(docs). Node 예시:

const crypto = require('crypto'); const user = { id: 'your-primary-key', // OpenWeb에서 primary_key로 사용한 값과 동일 email: 'reader@example.com', username: 'reader', // OpenWeb에 등록한 user_name과 동일 displayName: 'Reader Name', avatar: 'https://example.com/avatars/reader.png', displayLabel: 'Subscriber', // 선택 사항, Author Badge 조회 대체 optedInNotifications: true }; const userDataJSONBase64 = Buffer.from(JSON.stringify(user)).toString('base64'); const timestamp = Date.now(); const verificationHash = crypto .createHmac('sha256', process.env.FASTCOMMENTS_API_SECRET) .update(timestamp + userDataJSONBase64) .digest('hex'); // 페이지 config에 렌더링: // sso: { userDataJSONBase64, verificationHash, timestamp, // loginURL: 'https://example.com/login', logoutURL: 'https://example.com/logout' }

타임스탬프는 epoch 밀리초이며, 2일 이상 오래되면 거부됩니다. 로그아웃된 독자는 세 개 서명 필드를 생략하고 loginURL(또는 loginCallback 함수)만 전달하면 위젯이 로그인 프롬프트를 표시합니다. Node, Java, PHP 전체 예시는 code examples repository에 있습니다.

사용자는 첫 페이지 로드 시 생성됩니다. 일괄 등록은 하지 않습니다. OpenWeb 가져오기 도구가 user_name으로 댓글 저자를 매칭하므로, 동일 username을 포함한 SSO 페이로드를 전달하면 사용자는 처음 스레드를 로드할 때 가져온 댓글을 소유하게 되고 이후 편집·삭제가 가능합니다. 사전 생성이 필요하면 SSO 사용자 API를 사용할 수 있습니다.

페이로드가 전송될 때마다 FastComments는 해당 사용자 레코드를 업데이트하므로, 표시 이름·아바타가 변경되면 다음 페이지 뷰에 반영됩니다. null 값을 지정하면 해당 필드를 삭제합니다.

OpenWeb의 서드파티 SSO(Auth0, Gigya, Piano)를 window.SPOTIM.startSSOForProvider로 사용했다면, FastComments 흐름은 동일합니다: 공급자가 사용자를 인증하면 백엔드가 페이로드를 구축·서명합니다. FastComments 측에 별도 공급자 통합 설정은 필요하지 않습니다.

두 가지 추가 옵션이 있습니다. Simple SSO는 클라이언트에서 서명되지 않은 사용자 객체를 전달하며, 이메일이 있으면 활동을 검증된 것으로 표시합니다(docs). SAML 2.0은 Okta, Azure AD, ADFS 등을 통해 FastComments 대시보드 자체에 직원을 로그인시키며, 역할 매핑을 지원하고 엔터프라이즈 플랜에서 이용 가능합니다(docs).

Moderation

OpenWeb의 기사별 모더레이션 정책 API는 spot_policy, approve_all, publish_and_moderate, require_approval 네 값을 가집니다. FastComments는 동일 동작을 Moderation Settings에서 구성합니다: 자동 승인 켜기·끄기, 사용자의 첫 댓글에만 승인 요구, 인증된(로그인·SSO) 댓글만 자동 승인 등. 규칙은 사이트 전체 또는 */politics/*와 같은 URL ID 패턴별로 적용되어 섹션별 정책을 재현합니다. 모든 댓글(승인 여부와 관계없이)은 Moderate Comments 대시보드에 나타나며, 게시‑후‑검토 모델이 기본 뷰입니다(docs).

가져오기는 모더레이션 상태를 그대로 유지합니다. OpenWeb message_status가 approved이면 승인된 상태로, rejected이면 스팸으로, 그 외는 미승인·미검토 상태로 가져와 모더레이션 대기열에 나타납니다. reports_count는 댓글의 플래그 카운트가 됩니다.

FastComments의 자동 모더레이션은 단일 시스템이 아닌 계층형입니다:

  • 지속적으로 학습되는 스팸 분류기(전체 테넌트 공유 또는 전용), 장기·고정 사용자에 대해 필터 완화.
  • Flex 청구 시 선택 가능한 LLM 스팸 검사(예: GLM‑5.3 등 가중 모델).
  • 이미지 콘텐츠 모더레이션(저·중·고 민감도) 제공.
  • 로케일별 약 450개의 기본 금지어 블랙리스트(편집 가능)로 일치 항목을 별표 처리. 여기서 OpenWeb 제한어를 사용합니다.
  • N개의 신고가 누적되면 자동 숨김 임계값.
  • 반복·유사 메시지 방지(항상 활성).
  • AI Agents: 이벤트 기반 에이전트로 도구 허용 목록(스팸 표시, 승인, 잠금, 고정, DM 경고, 차단, 배지 수여, 답글) 지정. 모든 에이전트는 드라이 런으로 시작하고, 민감 도구는 인간 승인 뒤에 사용할 수 있으며, 모든 행동은 사유·신뢰도 점수와 함께 로그에 기록됩니다.

OpenWeb의 User Muting API는 한 SSO 사용자가 다른 사용자를 음소거합니다. FastComments 대응은 댓글 메뉴의 Block User이며, 로그인된 모든 독자가 사용할 수 있습니다. 차단은 모더레이터 액션으로, 영구·기간 지정·섀도우·IP 해시·이메일 별칭 인식 등 다양한 옵션을 제공합니다. 차단된 사용자 목록은 이메일·이름·모더레이터·차단된 댓글 기준으로 검색 가능합니다.

Moderate Comments 대시보드는 필터(검토 필요, 승인 필요, 스팸, 플래그, 차단 사용자)와 텍스트 검색, 일괄 작업(undo·일시정지), 대규모 대기열을 위한 “전체 선택” 기능, 섹션별 모더레이터 전용 그룹, 각 댓글 로그(이메일 발송 여부 사유) 및 공유 가능한 필터링 링크를 지원합니다. 모더레이터는 대시보드만 사용 가능하며 설정 변경이나 데이터 가져오기는 할 수 없습니다.

Analytics

FastComments Analytics는 현재 사이트와 페이지별 실시간 온라인 사용자, 댓글 수·실시간 독자 수 상위 페이지, 일일 페이지 로드·댓글·투표·계정 생성 추이를 보여줍니다(docs). 모더레이터 통계는 별도입니다. 카운트는 거의 실시간이며 최대 1분 지연, 모든 페이지 로드가 샘플링 없이 집계됩니다.

광고 채우기·CPM·수익 관련 데이터는 없습니다. OpenWeb 대시보드가 참여‑수익 보고를 제공했다면, 해당 보고는 자체 광고 스택으로 이전해야 합니다.

Monetization

OpenWeb은 Conversation 내부와 주변에 광고를 삽입하고 Standalone Ad 유닛을 제공하며, 캠페인은 OpenWeb 담당자를 통해 설정합니다(OpenWeb docs). FastComments는 위젯에 광고를 제공하지 않으며, 수익 공유도 없고, 제3자 광고·추적 스크립트도 로드하지 않습니다. 위젯은 iframe 형태로 삽입되며, 위·아래 광고 슬롯은 퍼블리셔가 기존에 사용 중인 시스템을 그대로 사용합니다.

트레이드오프는 명확합니다: OpenWeb이 제공하던 광고 수익을 포기하고, 고정 비용·예측 가능한 비용의 위젯을 얻으며, 페이지에 광고 요청이 추가되지 않습니다. Flex·Pro 플랜에서는 브랜드 표시가 제거되고, Pro·Enterprise 플랜에서는 화이트 라벨링이 가능합니다.

Data Export and Privacy

FastComments 대시보드에서 언제든 CSV 형태로 모든 댓글 데이터를 내보낼 수 있으며, 날짜는 UTC ISO 형식입니다. 동일 데이터는 API를 통해서도 접근 가능하고, 웹훅으로 지속 동기화됩니다. 가져오기 파일은 가져오기가 완료되는 즉시 FastComments에서 삭제됩니다.

GDPR·CCPA 대응으로 OpenWeb은 삭제된 사용자의 댓글을 무작위 게스트 계정에 남깁니다(OpenWeb docs). FastComments는 데이터 내보내기·삭제 요청을 지원하고, Data Processing Agreement를 제공하며, EU 전용 배포(eu.fastcomments.com)를 운영해 데이터가 EU 내에만 복제됩니다. 독자가 유럽에 있다면 해당 EU 배포에 계정을 생성하십시오. EU 지역에서는 AI 에이전트 차단이 항상 인간 승인을 요구해 DSA 제17조를 충족합니다.

글로벌 배포의 댓글 데이터는 싱가포르 노드를 포함한 여러 지역에 복제되며, 위젯은 FastComments 자체 DNS·CDN을 통해 제공됩니다. 임베드 스크립트는 전송 시 약 35 KB 압축됩니다.

Mobile SDKs

OpenWeb은 Android·iOS·React Native SDK에 Conversation, Articles, Authentication, Notifications, Reactions, In Conversation Polls를 포함합니다. FastComments는 네이티브 Android, iOS, React Native 라이브러리를 제공하며, 스레드 댓글, WebSocket 실시간 업데이트, Secure SSO, 투표·멘션·이미지 업로드·모더레이션 액션(플래그·고정·잠금·차단), 테마, Live Chat 모드, 소셜 피드 컴포넌트를 지원합니다. EU 지역은 구성 플래그로 활성화됩니다. 광고 SDK는 없으며, 광고 자체가 없기 때문입니다.

Embed and SPA Integration

OpenWeb 런처와 컨테이너:

<script async src="https://launcher.spot.im/spot/SPOT_ID" data-spotim-module="spotim-launcher"></script> <div data-spotim-module="conversation" data-post-id="POST_ID" data-post-url="ARTICLE_URL" data-article-tags="TOPIC1, TOPIC2"></div>

FastComments 대응:

<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script> <div id="fastcomments-widget"></div> <script> window.fcConfigs = [{ target: '#fastcomments-widget', tenantId: 'YOUR_TENANT_ID', urlId: 'POST_ID', // was data-post-id url: 'ARTICLE_URL', // was data-post-url pageTitle: 'Article title' }]; </script>

테넌트 ID는 자격 증명 페이지에서 확인할 수 있습니다. data-article-tags는 주제 팔로우 기능이 없으므로 대응이 없습니다; 댓글 내 해시태그는 별도 기능입니다.

무한 스크롤·SPA에서는 OpenWeb의 Virtual Pages가 기사당 하나의 컨테이너를 사용합니다. FastComments에서는 FastCommentsUI(element, config)를 스레드마다 호출하고, 이후 instance.update(newConfig)로 URL ID를 교체하거나 instance.destroy()로 제거합니다(docs). React·Vue·Angular·SolidJS 라이브러리는 config prop이 변경될 때 이를 자동 처리합니다. 라이프사이클 콜백(onInit, onRender, commentCountUpdated, onReplySuccess, onVoteSuccess, onAuthenticationChange, onCommentSubmitStart)은 기존 spot-im-* DOM 이벤트를 대체합니다.

인덱스 페이지의 댓글 카운트는 댓글 카운트 위젯(단일·일괄)으로 구현합니다. SEO를 위해 댓글은 iframe이 아닌 페이지에 직접 렌더링되어 검색 엔진 크롤러가 읽을 수 있으며, 별도 SEO API 호출이 필요하지 않습니다.

Step-by-Step Cutover

1. 계정을 만들고 기본 설정을 구성합니다. fastcomments.com 또는 eu.fastcomments.com에 가입합니다. 모더레이션 설정, 단어 블랙리스트, 투표 스타일, 기본 정렬, 위젯 커스터마이징 페이지의 맞춤 CSS 등을 설정합니다. 모더레이터와 모더레이션 그룹을 추가합니다. 관리자가 많다면 가져오기로 자동 등록할 수 있습니다.

2. 첫 번째 가져오기를 실행합니다. Manage Data → Import로 이동해 OpenWeb(.csv)을 선택하고 업로드합니다. 가져오기는 백그라운드 작업으로 진행되며, 페이지에 행 수와 상태가 표시되고 완료 시 이메일이 전송됩니다(docs). 각 댓글은 OpenWeb 메시지 ID를 외부 ID로 보관하므로 재실행 시 중복 생성 없이 기존 댓글을 업데이트합니다.

3. 카운트를 검증합니다. 작업 행 수를 내보내기와 비교합니다. 모더레이션 대시보드에서 트래픽이 많은 몇 개 URL ID를 열어 저자, 날짜, 투표 합계, 승인 상태 등을 샘플링합니다. 거부된 댓글은 스팸으로, 보류 중인 댓글은 대기열에 있는지 확인합니다.

4. SSO 페이로드를 구축합니다. 위의 서명 코드를 백엔드에 구현하고, OpenWeb에서 사용한 id와 username을 동일하게 사용합니다. 스테이징 페이지에서 직원 계정으로 테스트해 가져온 댓글이 해당 사용자에게 표시되고, 편집·삭제가 메뉴에 나타나는지 확인합니다.

5. 스테이징 템플릿에 임베드 교체: 런처·컨테이너를 FastComments 스니펫으로 교체하고 data-post-id를 urlId에, data-post-url을 url에 매핑합니다. window.SPOTIM.logout() 및 spot-im-* 리스너를 제거하거나 콜백으로 매핑합니다. CSS는 코드가 아니라 커스터마이징 규칙에 적용해 모든 FastComments 릴리즈에서 테스트됩니다.

6. 병행 운영: 섹션 또는 일정 비율의 기사에서 FastComments를 적용하고 나머지는 OpenWeb을 유지합니다. OpenWeb 측에서는 변경이 필요 없습니다. 모더레이션 대기열과 분석 페이지를 모니터링합니다. 병행 운영 기간 동안 FastComments 페이지에 달린 댓글은 OpenWeb 내보내기에 포함되지 않으므로 최종 가져오기 전에 이를 계획하십시오.

7. CSP 및 DNS: Content‑Security‑Policy를 사용 중이라면 cdn.fastcomments.com과 fastcomments.com(또는 eu.fastcomments.com)을 script-src, frame-src, connect-src에 허용하고, 런처가 사라지면 spot.im·openweb.com 항목을 제거합니다. DNS 설정은 변경할 필요가 없으며, URL ID가 일치하므로 리다이렉트도 필요 없습니다.

8. 최종 가져오기 및 라이브 전환: 병행 운영 창을 포함한 마지막 OpenWeb 내보내기를 수행하고 업로드합니다(재수입은 안전). 모든 페이지에 템플릿 변경을 배포하고 런처·Reactions·Topic Tracker·Spotlight·벨·광고 컨테이너를 제거합니다.

9. 라이브 체크리스트

  • 두 브라우저에서 프로덕션 기사에 실시간 댓글이 보이는지.
  • SSO 로그인·로그아웃 및 실제 구독자 계정으로 댓글 작성 여부.
  • 모더레이터가 다이제스트를 받고 승인할 수 있는지.
  • 답글·멘션 이메일이 도착하고 올바른 페이지로 연결되는지.
  • 차단 목록·단어 블랙리스트가 채워졌는지.
  • 페이지 Reacts와 댓글 카운트가 이전 Reactions·카운터 위치에 정상 렌더링되는지.
  • CSP 보고서가 깨끗한지.
  • 내보내기와 대시보드 간 마지막 댓글 카운트 비교.

What You Lose and What Is Different

갭을 직접 명시합니다:

  • Live Blog: 대응 없음. CMS 또는 별도 라이브 블로깅 도구에 유지하고 FastComments를 아래에 삽입합니다.
  • Topic Tracker: 기사 간 주제·작성자 팔로우 없음. 페이지 구독만 지원.
  • Community Spotlight: CTA 카드 제품 없음. headerHTML로 컴포저 위에 메시지를 표시하지만 이메일 캡처는 제공되지 않음.
  • 광고 수익: 없음. 위젯은 광고 없이 설계됨.
  • Notification webhook: 댓글 이벤트에 대한 웹훅만 제공, 사용자별 알림 이벤트는 없음.
  • Reactions 기록: 기사 수준 반응 카운트는 내보내기에 포함되지 않아 새로 시작합니다. 사이트에 따라 스크래핑 가능.
  • Polls 기록: 설문 정의·투표는 내보내기에 포함되지 않으며, 설문 텍스트만 가져옵니다. 사이트에 따라 스크래핑 가능.
  • 로그인 모델: SSO가 없는 독자는 기본적으로 매직 링크 로그인 사용, 비밀번호·소셜 로그인 버튼은 기본 제공되지 않음.
  • 인간 모더레이션 스태프: OpenWeb은 Aida와 함께 모더레이션 팀을 제공하지만, FastComments는 도구·분류기·에이전트를 제공하고 실제 인력은 퍼블리셔에게 맡깁니다.

얻는 점을 정리하면: 스크립트 하나와 광고 요청 없는 위젯, 대규모 사이트를 위한 일괄 작업·에이전트 기반 모더레이션, 프로토콜이 아닌 서명 함수 기반 SSO, 그리고 법원 감독을 받지 않는 공급업체입니다.

Timeline and the Free Import Offer

OpenWeb과 FastComments를 병행 운영하면서 전환하는 데 12주 정도 소요됩니다(SSO 통합·수백만 댓글 기준). 첫 내보내기·첫 가져오기에 12일, SSO·템플릿에 며칠, 병행 운영 창, 최종 가져오기·전환 순으로 진행됩니다. 이미 대규모 고객인 United Cloud는 10개 이상의 포털과 수백만 댓글을 FastComments에 운영하고 있으며, itsfoss.com은 동일한 셀프 서비스 가져오기를 통해 88,000개 댓글 이력을 이전했습니다.

FastComments는 OpenWeb CSV 내보내기를 무료로 가져오며, 전환 기간 동안 병행 운영을 지원하고, 스레딩·사용자 매칭 등 마이그레이션 전반을 도와드립니다. 엔터프라이즈 플랜은 99.99% SLA와 영업시간 내 1시간 이내 지원을 포함합니다. Flex 사용량 기반 요금제는 계약 없이 시작하려는 사이트에 제공됩니다.

Write to us에 내보내기 크기와 SSO 설정을 알려주시면 계획을 제시해 드립니다.

In Conclusion

오늘 바로 내보내기를 수행하십시오. 동일한 게시물 ID가 URL ID가 되고, 모더레이션 상태가 그대로 유지되며, 임베드는 단순 교체만 하면 됩니다. FastComments와 차이점은 위에 정리했으니, 사실에 기반해 결정하시면 됩니다. :)

Cheers!