답글 책상

오늘 0/2

2026-08-20 · 코드 기준

답글 책상 구조 보고서

답글 책상 · 라미사랑2 (cafe.naver.com/tlswkd)
TanStack Start · React · PGLite/Neon · Better Auth

파일 주소

한 줄

네이버 카페를 긁지 않는다. 근거가 있는 검색어 세 칸을 열고, 붙여 넣은 글만 가려, 자료와 진료 질문 초안을 남긴다. 공감과 경험은 본인이 쓴다. 하루 답은 두 개가 상한이다.

왜 이 모양인가

목적은 자동 댓글이 아니다. 신장 운동·이식 일상·기록에서 지식과 경험을 나눌 글을 찾는 일이다. 카페는 로그인 벽 뒤에 있고, 이용약관상 외부 수집을 하지 않는다. 그래서 감시가 아니라 책상이다. 검색은 사람이 열고, 가림과 초안만 기계가 돕는다.

  • 카페 글 목록을 가져오지 않는다
  • 아이디·비밀번호를 받지 않는다
  • 처방을 쓰지 않는다
  • 답을 늘리려고 검색어를 늘리지 않는다

하루의 다섯 칸

  1. 1세 칸을 연다

    날짜로 고른 검색어 세 개. 카페 로그인된 창에서 찾기 링크를 연다. 미리보기는 팝업을 막으므로 보이는 링크만 쓴다.

  2. 2후보만 붙인다

    /capture. 제목·본문 붙여넣기, 북마클릿, 또는 공개 URL(허용 호스트만). 글 목록을 수집하지 않는다.

  3. 3답할지 본다

    triagePost. 답한다 · 거른다 · 경계. 약·식단·병원 추천은 먼저 거른다. 수치 판정은 근거가 있으면 원리만 남기고 값은 닫는다.

  4. 4네 조각으로 쓴다

    1 공감·2 경험은 직접. 3 자료·4 진료 질문은 초안(그룹 문장, 없으면 Grok). 합쳐서 복사한다.

  5. 5수첩에 남긴다

    하루 상한 2. 같은 칸을 다시 훑지 않는다. 반복 질문은 repeat_questions에 쌓인다.

화면

  • 책상/

    오늘 세 칸, 붙여 넣은 글, 답한다/거른다/경계 필터

  • 붙이기/capture

    제목·본문 입력, 즉시 가림, 저장

  • 글/post/:id

    네 조각 책상. 1·2 직접, 3·4 초안, 복사, 수첩

  • 수첩/log

    남긴 답, 반복 질문

  • 선/guide

    네 조각, 금지, 선정 기준, 검색어 목록 77말

  • 한 바퀴/watch

    단계 안내, 세 칸 열기, 알림 설정

  • 복막투석 운동/pd

    ISPD·GREX 2022 요약. 채택됨. 처방 아님

  • GREX 교육/grex

    2025 코스 8모듈. 환우 프로그램이 아님

  • 들어가기/login

    이메일 우선. Google·X는 팝업이 막힐 수 있음

가림 순서

  • 제목+본문을 한 덩어리로 보고, 규칙 말을 소문자 includes로 찾는다. 형태소 분석 없음
  • 답하는 규칙 히트를 모은 뒤 주제 순위가 높은 칸을 고른다
  • 거름이 먼저다. 약·식단·병원은 skip. 수치 판정은 soft: 근거 히트가 있으면 reply + ‘값은 판정하지 않는다’
  • 약 이름이 스치기만 하고 용량을 묻지 않으면 약을 이유로 거르지 않는다
  • 거부반응·단백뇨만 있고 운동 맥락이 없으면 경계
  • 히트 없으면 환우 글로 보이면 경계, 아니면 unknown

초안

fallbackDraft가 주제 그룹 문장을 꺼낸다. 운동·크레아티닌·일상·기록·복막 다섯 벌. skip이면 비운다. XAI_API_KEY가 있으면 Grok이 3·4번을 다시 쓸 수 있으나, 1·2번은 절대 쓰지 않는다. composeReply는 네 칸을 빈 칸 없이 이어 붙인다.

근거 레이어

  • B1ACSM 12판

    저항 FITT, 재개 순서, RPE, 거부반응·단백뇨와 운동

  • B6UKKA Exercise 2021

    유산소 150분의 출처, 접촉 운동 2C

  • B7이식 건강수첩

    부위 보호, 일상, 기록지 칸

  • vault근육량·크레아티닌 정리

    계산 원리. 값 판정 금지

  • ISPDISPD+GREX PDI 2022

    복막 찬/빈 배, 수영, 코어, 출구. 2026-08-20 채택

  • GREX교육망 2025 코스

    페이지로만. 검색어·초안 코드가 아님. 환우 처방서 아님

데이터

로그인하면 본인 행만 본다. 미리보기는 PGLite, 배포는 Neon. 게스트는 샘플 12편만 본다.

  • cafe_posts

    글, 가림, 3·4초안, 1·2 사용자 문장, 상태 inbox/drafting/replied/skipped/archived

  • reply_log

    남긴 답 한 줄, 근거, 반복 여부

  • repeat_questions

    같은 질문 횟수

  • user_settings

    하루 상한 2, 알림, last_scan_at

  • Better Auth 표

    user / session / account. 이메일 또는 Google·X

들어가기

미리보기 iframe은 Google·X 팝업을 막는다. 그래서 이메일이 정문이다. 세션은 미리보기에서 bearer, 배포에서 쿠키. 서버 함수는 authMiddleware로 user_id를 강제한다. 카페 계정과는 무관하다.

하지 않는 일

  • 네이버 카페 로그인·크롤·알림 자동화
  • 답글 자동 게시
  • 약 용량, 수치 판정, 식단 권장량, 병원 추천
  • GREX를 환우 프로그램으로 권함
  • 반려동물 글을 찾아 답함
  • 주 150분을 PD·이식에 그대로 옮김

한계

  • 검색은 부분 문자열이다. ‘산책’이 들어 있으면 유산소로 잡힐 수 있다
  • 카페 본문은 사람이 붙이지 않으면 책상에 없다
  • 미리보기 팝업 차단 — 세 칸·OAuth 모두 <a> 또는 이메일이 정답
  • PGLite는 미리보기 재시작 시 초기화될 수 있다
  • Grok 초안은 키가 있을 때만. 없어도 그룹 문장으로 동작한다

파일

  • 규칙 · 검색 · 선 — src/lib/guide.ts
  • 가림 — src/lib/triage.ts
  • 초안 — src/lib/drafts.ts, src/lib/server/ai.ts
  • 저장 — src/lib/server/posts.ts, migrations/0002_radar.sql
  • 카페 링크 — src/lib/cafe.ts (수집 없음)
  • 복막 — src/lib/ispd-pd.ts · GREX — src/lib/grex.ts
선으로