앱 운영 설정을 한 곳에서 관리합니다.
업로드·투표 제한, 랭킹 주기, 선물 배송, SEO 공유 카드, 약관·개인정보(언어별), 산책친구추천 설정을 확인하고 저장할 수 있습니다.
게시물·투표·경품 노출 설정
일반 회원이 하루에 사용할 수 있는 기본 제한과 게시물 노출 기간을 관리합니다.
카카오톡·검색 공유 미리보기 설정 (다국어)
홈페이지(daenggram.com)를 공유하거나 검색될 때 보이는 제목·소개 문구·썸네일을 앱이 지원하는 모든 언어로 설정합니다. 크롤러(카카오·페북·구글 등)의 언어에 맞는 값이 자동 선택됩니다. 비워 두어도 됩니다 — 서비스가 준비한 해당 언어 기본 문구가 사용되며, 그것도 없으면 한국어 값으로 대체됩니다.
저장했는데 카카오톡 미리보기가 그대로예요
이용약관 · 개인정보처리방침 (언어별 등록)
앱의 이용약관과 개인정보처리방침 본문을 언어별(한국어·English·日本語)로 직접 등록합니다. 한국어는 필수이며 사이트 기본값입니다. English·日本語은 비워 두면 사용자에게 한국어가 대신 표시됩니다.
본문 작성 규칙: 소제목은 줄 맨 앞에 ## 를 붙입니다(예: ## 제1조 (목적)). 소제목 다음 줄부터 본문을 적고, 조항 사이는 빈 줄로 구분합니다. 저장 시 사용자 화면에 소제목은 굵게, 본문은 그대로 표시됩니다.
운영 정책 · 연동 대기 항목
확정된 운영 정책과 개발/연동 대기 항목입니다. (참고용 메모 — 이 화면에서 값을 저장하지는 않습니다.)
- 건강 기록은 개인정보 — 관리자 화면에서 개별 기록 열람·목록 기능을 제거했고, ‘건강수첩 관리’ 메뉴 자체를 삭제했습니다.
- 알림도 유저가 관리: 접종·병원 예정일을 등록하면 자동으로 알림이 생기고, 기록을 지우면 사라집니다. 관리자가 발송하는 것이 아닙니다.
- 발송 시각 = 유저 시간대 기준(브라우저 자동 감지, 미감지 시 국가 기준), 유저가 건강 수첩에서 오전 9시/오후 6시 중 선택(기본 오전, 하루 1회).
- ⚠️ 자동 발송 배치(health_reminders, 5분 주기 cron) 서버 설치 여부 미확인 — 확인 필요 (root).
‘한국 입상자도 포인트 지급’ 토글을 폐지하고 코드에 고정했습니다: 한국 = 실물 배송, 글로벌 = 포인트/암호화폐. 설정에서 바꿀 수 없습니다.
오너가 배송 기능 테스트를 마치면 실제 운영에서는 비허용으로 전환하고 당분간 변경을 잠글 예정입니다. 그때까지는 ‘허용’ 유지.
- 게시물·릴스는 더 이상 자동으로 만료·삭제되지 않습니다. 신규 업로드는 사실상 무기한 보관.
- 서버 용량 이슈로 데이터 삭제가 필요하면 공지 후 수동 삭제로 진행합니다.
- 기존 만료 배치(expire_posts)는 삭제 대신 만료일 연장(keep-alive)만 수행합니다. ‘게시물 자동 만료일’ 설정값은 더 이상 사용되지 않습니다.
- 피드·릴스: 한국/글로벌 구분 없이 모든 유저의 게시물이 전 유저에게 노출.
- 실종견: 유저가 설정한 지역 기준으로 표시·알림 (기본값=내 알림 지역).
- 랭킹·미션·출석·산책 초기화는 기존대로 권역별(KST/UTC) 유지.
- 회원가입 시 지역·실종견 알림 지역 의무 선택은 시안 검토 중.
- 클릭 과금: 동일 유저는 광고당 24시간 내 1회만 과금. 반복 클릭은 과금되지 않고, 마지막 과금 클릭에서 24시간이 지난 클릭부터 다시 과금.
- 노출 빈도: 같은 유저에게 동일 광고를 하루 5회 이상 노출 금지(최대 4회 노출·과금).
- 피드 배치: 피드 게시물 5개 사이마다 광고 1개가 승인된 광고 중 랜덤으로 삽입.
- 서버가 이벤트 키를 직접 생성해 조작 요청으로도 중복 과금을 만들 수 없음. 유저 광고신청 화면에도 동일 규칙 안내 표기.
- 산책(주간 하트) 랭킹을 포토·포인트에 이어 보상 있는 랭킹으로 추가. 보상 = 한국 실물 배송 / 글로벌 암호화폐(포토·포인트와 동일).
- 유저:
/rank에 산책 탭(포디움·선물 보기) + 산책 페이지에서 ‘전체 랭킹·선물 보기’ 링크. - 관리자: 선물 설정에 ‘산책 랭킹’ 종류 + 랭킹 지급(rank_lock)에 산책 모드(확정·잠금·배송/암호화폐 지급).
- 입상 보상은 선물함에 3종 랭킹 모두 표시(배송 송장/암호화폐). 배송지는 유저가 직접 입력(관리자는 송장만 추가).
- 지급 완료 시 입상 알림(앱 목록 + 휴대폰 푸시) 발송.
설정 → 알림의 좋아요·투표·댓글·수상(입상) 토글이 실제로 휴대폰 푸시를 켜고/끕니다. (앱 내 알림 목록은 항상 보존)
- 팝업 관리 = 목록 중심 3단(목록·편집기·미리보기). 카드별 노출 토글·순서변경(▲▼)·상태칩(노출중/예약/종료).
- 데스크톱 피드: 좌/우 ‘패널 접기’ 버튼 제거 → 좌측 댕그램 로고·우측 프로필 이미지 클릭이 접기를 대신.
- DM 채팅·선물함 헤더 고정(스크롤해도 상단 유지).
백엔드 다국어 콘텐츠(강아지 MBTI·알림 메시지)를 16개 언어로 준비했습니다(ko/en/ja + 중국어·독일어·힌디어·포르투갈어·프랑스어·이탈리아어·스페인어·러시아어·폴란드어·네덜란드어·태국어·인도네시아어·아프리칸스어). 형식·키·변수({'{'}name{'}'} 등)는 완벽하지만, 신규 13개 언어의 내용은 AI 생성 번역 초안입니다. 특히 16유형 성격 묘사 같은 감성 카피는 원어민 검수를 권장합니다.
수정 방법: 서버의 backend/services/i18n/content/<네임스페이스>/<언어코드>.js 파일(예: content/mbti/fr.js, content/notifications/de.js)에서 값(문장)만 고치면 됩니다. 키(왼쪽)와 {'{'}중괄호 변수{'}'}는 절대 바꾸지 마세요. 수정 후 재배포·서버 재시작하면 즉시 반영됩니다. 번역이 비어도 자동으로 영어→한국어로 폴백됩니다.
참고: 앱 화면(프론트) UI 언어 선택지는 아직 한국어·영어·일본어만 노출됩니다. 유저가 나머지 13개 언어를 실제로 고르려면 프론트 언어 확장이 별도로 필요합니다(대형 작업).
건강 알림(접종·병원 예정일 하루 전 푸시)이 실제 발송되려면 서버에 5분 주기 실행 예약(cron)이 있어야 합니다. "언제, 누구에게" 계산(유저 시간대·오전/오후 선택)은 완성됐지만, 발송기 자체가 안 돌고 있으면 무용지물입니다.
확인 방법: 서버 콘솔에서 crontab -l | grep health 한 줄 실행 → 결과에 jobs/health_reminders.js가 있으면 정상. 없으면 Codex에게 결과를 알려주면 설치용 한 줄을 만들어 드립니다.
Kakao Developers에서 JavaScript 앱키를 발급한 뒤 Kakao.init(키)로 초기화하면 공유 시트의 ‘카카오톡’ 버튼이 실제 인앱 공유로 동작합니다. 현재는 키가 없어 링크 복사로 폴백합니다. (모바일 시스템 공유에는 카카오톡 이미 포함)
관리자 SEO 편집값이 카카오 등 공유 카드에 반영되려면 vhost(daenggram.com.conf)에 크롤러 User-Agent를 /api/public/seo-html로 보내는 RewriteRule([P])을 추가해야 합니다. 추가 전에도 정적 기본 OG는 정상 노출됩니다.
글로벌 광고주 결제(BNB 체인 KOLS 토큰)는 컨트랙트·RPC·입금지갑이 이미 채워져 있습니다. 관리자 → 광고주 KOLS 설정에서 활성화(enabled)=예 + 저장만 하면 실주문이 생성됩니다. (KOLS decimals 18 확인 권장)
릴스 영상 저장·재생을 Bunny Stream으로 오프로드. 백엔드는 라이브 상태입니다. .env에 BUNNY_STREAM_LIBRARY_ID / API_KEY / CDN_HOSTNAME / WEBHOOK_TOKEN을 발급·입력하고 프론트 업로드 UI(Phase 2)를 붙이면 완료됩니다.
DM 본인인증·결제 게이트는 현재 데모(서버 플래그) 상태입니다. 실결제(PG/NICE) 연동은 미구현입니다.
웹이 아니라 네이티브 NativeStepCounter(Capacitor Android) 측 최적화가 필요합니다(센서 배칭·GPS 주기·WakeLock 점검). 웹 코드에는 추적 로직이 없습니다.
DM 수신 시 알림 목록 표기 + FCM 모바일 푸시가 발송됩니다. 대화방 실시간 반영은 4초 폴링이며 WebSocket 전환은 추후 과제입니다.
월 단위로 운영하려면 위 ‘기본 운영 설정 → 랭킹 주기’를 월간으로 저장하세요.
현재 게시물은 TTL 자동 만료입니다. 인스타식 영구 보관(콜드 티어링·이레이저 코딩)은 웹 플로우 완성 후 연구 예정입니다.
원래 랭킹 3축(포토·포인트·하트) 구상 중 하트 지급·하트 랭킹은 유보 상태입니다. 산책 랭킹이 하트로 순위를 매기지만, 별도 ‘하트 지급/하트 랭킹’은 추후 재구현 과제입니다.
글로벌 랭킹 보상의 암호화폐 지급은 현재 데모 기록(관리자가 완료 표시)만 남깁니다. 실제 온체인 송금 실행과 didit 본인인증(KYC) 실세션 E2E 검증은 미구현입니다.
신고 검토 화면에 사유가 영문 키(예: fraud_spam)로 보일 수 있습니다. 원하면 한글 라벨 매핑을 추가할 수 있습니다.
최종 업데이트: 2026-07-04
동네 산책 친구 추천 설정
같은 지역에서 산책한 친구를 추천하는 기능입니다. 정확한 위치 정보는 관리자 화면에 표시하지 않습니다.