{"title":"OpenLog 2차 QA 기록 및 공개 반영 검증","date":"2026-10-09","scope":"사용자 재테스트의 173개 항목별 결과·비고와 조치 상황입니다. 체크 표시만으로 통과 판정하지 않고 사용자 보고, 로컬 코드 검사, 실제 화면 확인, 공개 배포를 구분합니다.","deployment":"PC·모바일 웹과 광고·AI 관리자 화면은 공개 사이트에 반영. AI·번역 서버와 기능별 혼합 모델은 OpenLog Dev에 적용·조회 검증. 전체 앱 기능과 173개 수동 QA가 모두 완료됐다는 의미는 아님. 이번 변경은 Mac iOS 파일·공통 의존성을 변경하지 않음.","counts":{"사용자 통과 보고":114,"비고 재확인":3,"미실시·부분 확인":26,"결과 미기재":12,"오류·개선·정책 검토":16,"해당 없음":2},"verification":{"automatedTests":195,"typecheck":"통과","lint":"변경 파일 통과","build":"PR #6·#7 main 병합 후 Vercel Production 성공 및 공개 화면 확인. 이후 갱신의 배포 상태는 해당 커밋의 Vercel 상태와 별도 대조.","note":"단위·모의 API·소스 검사 수이며 기존 173개 실사용 전수 통과율이 아닙니다. 최신 범위는 webRuntimeVerification, 이전 2026-10-09 검증은 currentVerification, 그 이전은 previousRoundTwo/previousReport로 분리합니다."},"browsersReported":["Chrome 155.0.8059.39 · 사용자 pass 보고","Edge 154.0.4258.62 · 사용자 pass 보고","Whale 5.39.412.57 · 사용자 pass 보고","iOS 27.0.1 / iPhone 15 Pro · 입력 시 확대 오류 보고, 나머지 정상 보고"],"actualChecks":["로컬 홈 1024×768: 기존 CSS 충돌 재현 후 사이드바/중앙 배치와 가로 넘침 없음 확인.","기존 게시글: 부모별 댓글 배치, 선택 댓글 아래 답글 입력창 및 자동 포커스 확인.","본문 클릭 후 Ctrl+A: 선택 텍스트가 본문과 일치하며 헤더/댓글은 제외됨.","390px 상세: 기존 긴 한글/영문 댓글 넘침 없음, textarea 폰트 16px 확인.","새 답글 카드: 모바일 표시 확인, PC 1024px 넘침 없음과 빈 입력 비활성/입력 후 등록 버튼 활성 확인. 시험 문구는 등록하지 않고 삭제.","댓글·답글 입력창 기본 0개, 버튼 클릭 시 1개, 다시 클릭/닫기로 0개 확인. 댓글 초안과 각 답글 초안은 전환·접기·재열기에서 따로 복원됨. 시험 문구는 지우고 등록하지 않음.","390px에서 접힘·답글 열기/닫기, 입력 폰트 16px 및 가로 넘침 없음 확인. 새로고침 후 기본 댓글 버튼 높이 42px·둥근 스타일과 접힌 상태 확인.","공개 5e5ad77: 기본 입력창 0개 → 클릭 시 1개, 닫기 및 대상별 초안 분리/복원 확인. 실제 댓글 1개와 답글 2개 등록 성공, 각각 등록 후 접힘 확인. 2단계 답글은 해당 부모 바로 다음에 배치되며 새로고침 후에도 유지.","공개 390px: 답글 입력창 1개, 폰트 16px, 가로 넘침 없음. 공개 1024px: 게시판 사이드바 표시와 가로 넘침 없음. 내장 Chromium 에뮬레이션이며 실제 iPhone/Safari 시험과 다름.","공개 기존 목록 복귀 주소의 관계/솔로 유지, 글쓰기의 관계/솔로 자동 선택 확인. 검증 구간 브라우저 error 로그 없음. QA 패널 최신 기록/이전 기록 분리 표시 확인."],"additions":[{"id":"A1","item":"선택 댓글 바로 아래 답글창 + 세련된 UI","status":"공개 반영·실제 등록 검증","evidence":"기본은 댓글/답글 달기 버튼만 표시. 클릭한 위치에 폼 하나만 열고 다시 누르거나 닫으면 접힘. 대상별 초안 분리/복원, 공개 댓글/답글/2단계 답글 등록·등록 후 접힘·새로고침 유지, PC/390px 화면 확인. 서버 실패 주입과 2계정 권한 시험은 별도로 남음."},{"id":"A2","item":"장문 번역이 10배로 늘어나는 현상","status":"Dev 서버 배포·실제 응답 검증","evidence":"신규/캐시 번역 길이·반복 및 불완전 응답 거절, 30초 제한 적용. 일본어·중국어 실제 생성 200, 일본어 캐시 200, 빈 입력 400 확인. 실제 장문 문제 원인·모든 언어 번역 품질은 추가 검증 필요."},{"id":"A3","item":"한국어 설정에서 영어 자동 번역","status":"정책 유지·검토 필요","evidence":"기기/사용자 선택 언어로 외국어 내용을 자동 번역하는 기존 요청 유지. 원문 보기 및 실패 시 재시도 제공. 원문 기본 표시로 일괄 변경하지 않음."},{"id":"A4","item":"세로 첨부 이미지 잘림","status":"로컬 CSS 보완·실제 이미지 재검증 필요","evidence":"object-fit:cover 대신 contain, height:auto로 원본 비율 보존. 모든 세로/가로/다중 이미지 실검증은 남음."},{"id":"A5","item":"최근 저장한 순서로 목록 정렬","status":"Dev DB 적용·서버 시험 완료","evidence":"저장 시각 역순·페이지 경계·다른 사용자 격리 시험 후 Dev 실제 적용 saved_order_applied=true 확인. 원본 프로젝트는 변경하지 않음. 최신 웹 저장 목록 UI 비교는 별도."},{"id":"A6","item":"본문만 Ctrl+A 선택","status":"로컬 실제 화면 확인","evidence":"본문이 포커스일 때만 Ctrl/Meta+A 범위를 본문 텍스트로 제한. 입력창과 나머지 페이지의 기본 전체 선택은 유지."}],"priorities":["Android 개발판 0.2.4: 기존 회원 QA·6시간 정책·자동 번역에 사진 선택/업로드·연결(최대4장/8MB), 24시간 계정별 암호화 초안·이탈/복구, 불확실한 등록 재전송 중단을 추가. 0.2.3의 공개 이미지 URL 오류를 발견해 비공개 버킷 서명 URL로 수정. 기존 사진 1장 서버 조회 sign200/image200·469464바이트, 옛 공개 URL400 확인. 소스25·Java 정책116·모의 게시 전송38·mock 번역32=211개 검사 통과. 빌드/정적 검사 0오류·3현지화 경고, 서명·에뮬레이터 설치/버전6 확인. 서버 조회·설치는 실제 네이티브 화면/업로드 E2E가 아님. 새 글/사진/계정 전환·회전·유료 호출은 미검증. 피드 사진·삭제·전화/탈퇴·Realtime·전체 디자인/언어·관리자·딥링크·정식 서명/스토어 등 동등성은 남음. 별도 Draft PR #5 b0aca78, 웹 배포에 APK가 자동 포함되지 않음.","iOS는 이전 회원 QA 전달문 수신을 확인함. 별도 PR #3의 4baaf1d에서 회원 QA 8개·6시간 정책·공감·227개 고정 문구, 계약 검사86개 및 2026-10-11 17:55 Xcode 빌드 성공 보고 확인. 후속 Draft PR #16 f263304에 본문/댓글 조회 실패 분리·클릭 시 입력창 표시·삭제 true 확인·댓글 UUID 응답/불확실 재전송 차단을 별도 소스로 준비했고 Node 소스 검사5개 통과. 이 후속 소스는 Swift/Xcode·화면 검증 전이며 미병합. Mac 호스트 미연결로 새 직접 전달 실패, PR에 검증 지침 저장. 최신 UI·유료 번역·실제 쓰기·Presence·전체 디자인/언어·전화·관리자·APNs·실기기 서명/스토어는 남음. Mac의 이전 빌드 보고는 후속 소스의 빌드 성공이나 Windows 실물 iOS 검증이 아니며 웹 배포가 네이티브 화면을 자동 업데이트하지 않음.","문자 인증은 시험 계정 수신 범위·발신 설정·유료 운영 전환 검토가 남아 있으며 전체 회원 대상 공개 활성화는 보류 상태임.","새 혼합 모델의 실제 응답 품질·지연·사용량 실측과 검색 캐시/대화 기억의 수집 범위·보유기간 검토 및 활성화 후 검증. 자체 모델 학습은 사용자 요청으로 뒤로 미룸.","Supabase Cron 등록·최초 성공 확인 및 보유기간 정리 운영. 실제 삭제 작업은 대상·기간을 확정해 별도 승인 후 실행해야 함. 혜택 개인정보 보유기간 관리는 AI 캐시 정리와 별도임.","광고·상담·보상 전체 실제 운영 흐름, 다중 관리자·다중 계정 쓰기, 실물 기기/브라우저별 전체 기존 QA 173개 재검증, 일 이용자 1만 명 조건의 부하·복구·백업 검증","#17 주요 홈·투표·대화·회원 설정 문구를 보완했으나 카테고리/소분류명·작성 양식·오류 전체 현지화와 모든 언어 품질은 추가 작업/검증 필요.","실제 iPhone Safari 입력 확대·키보드 가림: 실기기 필요. Chromium 390px 검사를 Safari 통과로 계산하지 않음.","실제 A/B 브라우저 로그인 전환과 비로그인·관리자 모바일 메뉴 조합: 추가 계정/브라우저 세션 필요. DB 역할별 시험과 구분.","실제 Offline/API 차단/Slow 3G/버튼 연타 스트레스, 모든 DB null 필드 주입, 전체 WCAG 검사는 미완료(글쓰기 일부 수치 측정·보완만 시행). 현재 브라우저 도구에 네트워크 차단·지연 주입 기능이 없음.","가입 인증/재설정 메일 실수신, 이미 발급된 과거 JWT의 즉시 폐기/만료 UI는 별도 확인 필요.","SMS 공개 OFF 유지. Twilio Trial 수신 제한 해제/과금·발신번호 설정과 실제 문자 시험은 사용자 설정·승인 필요.","첨부 이미지 전체 조합·혼합 장문 제목/닉네임, 대량 데이터 정렬/레이아웃 및 전체 접근성 수치 검사는 추가 검증 필요."],"items":[{"id":1,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"페이지 최초 접속 시 오류 없이 화면이 표시된다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":2,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"새로고침해도 정상적으로 화면이 표시된다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":3,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"OPENLOG 로고 클릭 시 홈으로 이동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":4,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"헤더가 깨지거나 요소가 겹치지 않는다.","result":"ㅇ","note":"깨지거나 겹치지는 않으나 배치가 일정하지 않는 부분 있음(번호인증/선택)","userStatus":"비고 재확인","action":"헤더 버튼을 inline-flex 중앙 정렬로 보완. 인증 완료 계정에서는 선택 번호 인증 버튼이 숨겨져 해당 버튼의 실제 화면 재검증은 남음."},{"id":5,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"좌측 메뉴 / 중앙 피드 / 우측 사이드바가 정상 배치된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":6,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"긴 제목이나 긴 닉네임이 레이아웃을 깨뜨리지 않는다.","result":"긴 텍스트가 ui를 벗어남, 영어는 제목은 ui를 벗어나나 본문은 정상, 한글은 제목은 정상 본문이 ui를 벗어남.","note":"긴 닉네임 테스트 미실시","userStatus":"미실시·부분 확인","action":"제목·카드·본문 줄바꿈 보완. 기존 장문 댓글의 1024/390px 가로 넘침 없음 확인. 모든 언어의 긴 제목·닉네임 실검증은 남음."},{"id":7,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"게시글이 0개일 때 빈 화면이 아닌 적절한 안내 문구가 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":8,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"게시글이 많아져도 레이아웃이 깨지지 않는다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":9,"mark":"!","section":"1. 기본 화면 / 레이아웃","item":"로딩 중 화면이 이상하게 깜빡이거나 이전 상태가 순간적으로 나타나지 않는다.","result":"게시판 탭 이동 시 ui 흔들림 발견.","note":"느린 네트워크에서도 확인 미실시","userStatus":"미실시·부분 확인","action":"피드 최소 높이를 보완. 모든 게시판 이동과 Slow 3G의 깜빡임/CLS 수치 검사는 아직 미실시."},{"id":10,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"버튼의 hover / 클릭 / 활성 상태가 사용자에게 명확하게 구분된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":11,"mark":"ㅇ","section":"2. 상단 헤더","item":"주제 탐색 버튼이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":12,"mark":"ㅇ","section":"2. 상단 헤더","item":"검색창에 정상적으로 입력할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":13,"mark":"ㅇ","section":"2. 상단 헤더","item":"Enter 또는 검색 동작으로 검색이 실행된다.","result":"엔터 입력 시 바로 ai 검색으로 진행되는 것에 대해 생각해봐야 할수도 있음","note":"","userStatus":"오류·개선·정책 검토","action":"검색 기본 동작 변경하지 않음. AI 검색 우선/키워드 검색 우선은 제품 정책 결정 사항."},{"id":14,"mark":"ㅇ","section":"2. 상단 헤더","item":"존재하는 게시글 제목을 검색했을 때 정확한 결과가 나온다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":15,"mark":"ㅇ","section":"2. 상단 헤더","item":"존재하지 않는 검색어를 입력했을 때 검색 결과 없음 상태가 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":16,"mark":"!","section":"2. 상단 헤더","item":"검색 후 검색어를 제거하면 전체 목록으로 정상 복귀한다.","result":"검색 기능 사용 시 별도의 페이지로 넘어가기에 테스트 무의미.","note":"","userStatus":"미실시·부분 확인","action":"현재 /search의 AI/키워드 모드별 검색어 지우기·정렬·뒤로가기 시험으로 체크리스트를 대체해야 함. 이전 경로 기준 시험은 통과로 계산하지 않음."},{"id":17,"mark":"!","section":"2. 상단 헤더","item":"언어 설정 버튼이 정상 작동한다.","result":"로그아웃/번호인증및선택/카테고리/소분류/인기글/최신글/댓글 많은 글/주제둘러보기/최근대화 ui 번역 안됨. 대화창열기/오늘의투표는 박스 내 모든 텍스트가 번역되지 않음. 댓글은 번역되지 않는 것 같음(댓글 관련 모든 기능의 번역이 진행되지 않음). 메인 페이지 외에서는 번역이 진행되지 않는 것으로 확인.","note":"언어별로 게시글 번역 차이가 있음. 영어는 95% 번역하나 타 언어들은 거의 번역되지 않는 것으로 확인.","userStatus":"오류·개선·정책 검토","action":"Dev 일본어/중국어 실제 생성 200·일본어 캐시 확인. 공개 e0c22b9 설정의 영어/일본어/중국어 및 선택 동기화, 홈 영어 투표/안내 확인. 브라우저 언어는 자동으로 원복. 동적 게시판명·작성 양식·오류 전체 현지화와 장문 품질은 미완료."},{"id":18,"mark":"ㅇ","section":"2. 상단 헤더","item":"로그인한 사용자 정보가 올바르게 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":19,"mark":"ㅇ","section":"2. 상단 헤더","item":"로그아웃 버튼이 정상 작동한다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":20,"mark":"ㅇ","section":"2. 상단 헤더","item":"로그아웃 후 로그인 전용 페이지 및 기능에 접근할 수 없다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":21,"mark":"ㅇ","section":"2. 상단 헤더","item":"글쓰기 버튼 클릭 시 정상적으로 글쓰기 화면으로 이동한다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":22,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"전체 글 선택 시 전체 게시글이 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":23,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"인기 글 선택 시 인기 기준 게시물이 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":24,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"최신 글 선택 시 최신순으로 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":25,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"실시간 대화 클릭 시 해당 기능이 정상 열린다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":26,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"현재 선택된 메뉴가 시각적으로 명확하게 구분된다.","result":"ㅇ","note":"메인 페이지에서 현재 게시판의 위치가 전체/인기/최신 중 어디인지 명확하게 표시되면 좋을 것 같음.(카테고리 게시판에서 소분류 게시판 표시를 가져오면 좋을 것 같음)","userStatus":"비고 재확인","action":"홈 › 전체/인기/최신/댓글 많은 글/개인 목록 위치 표시 추가. 홈 위치 표시는 로컬 화면 확인."},{"id":27,"mark":"!","section":"3. 좌측 메뉴","item":"내가 쓴 글에는 실제 로그인 사용자가 작성한 글만 표시된다. P1","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":"Dev authenticated 역할 A/B 시험으로 내 글 목록의 본인 포함·타인 제외 확인. 실제 다계정 브라우저 UI 시험은 별도."},{"id":28,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"저장한 글에는 해당 사용자가 저장한 글만 표시된다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":29,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"저장 취소한 게시글은 저장한 글 목록에서 제거된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":30,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"알림함에 정상 접근할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":31,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"회원 설정에 정상 접근할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":32,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"일반 사용자에게 관리자 메뉴가 노출되지 않는다. P0","result":"ㅇ","note":"모바일 미실시","userStatus":"미실시·부분 확인","action":""},{"id":33,"mark":"!","section":"3. 좌측 메뉴","item":"관리자 계정에서는 관리자 메뉴가 정상 노출된다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":34,"mark":"!","section":"4. 중앙 게시글 피드","item":"게시글 제목이 정확하게 표시된다.","result":"이전 테스트 결과와 같이 긴 제목과 본문에서 ui를 벗어나는 경우 발견.","note":"","userStatus":"오류·개선·정책 검토","action":"피드와 상세 제목에 overflow-wrap:anywhere 및 min-width:0 적용. 영어 장문 제목의 실제 화면 재검증 필요."},{"id":35,"mark":"!","section":"4. 중앙 게시글 피드","item":"게시글 요약문이 정확하게 표시된다.","result":"이전 테스트 결과와 같이 긴 제목과 본문에서 ui를 벗어나는 경우 발견.","note":"","userStatus":"오류·개선·정책 검토","action":"카드·요약·본문의 너비 및 줄바꿈 보완. 모든 장문/언어 조합 화면 재검증 필요."},{"id":36,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"카테고리 / 주제 표시가 실제 게시글 데이터와 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":37,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"작성자 표시가 현재 확정된 익명/닉네임 정책에 맞게 나온다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":38,"mark":"!","section":"4. 중앙 게시글 피드","item":"조회수 표시가 실제 데이터와 일치한다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":"Dev 임시 글의 공개 조회수와 DB 저장 값 일치 확인. 테스트는 롤백."},{"id":39,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"추천수가 실제 데이터와 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":40,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"댓글수가 실제 공개 댓글 개수와 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":41,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"최신 글 정렬이 created_at 기준으로 정확하다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":42,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"게시글 클릭 시 해당 게시글 상세 페이지로 이동한다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":43,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"삭제 또는 숨김 처리된 게시물이 일반 사용자에게 표시되지 않는다. P0","result":"ㅇ","note":"숨김 테스트 미실시","userStatus":"미실시·부분 확인","action":"Dev 임시 숨김/삭제 글의 공개 상세·댓글·피드 제외 확인. 실제 일반 브라우저 직접 URL 시험은 별도."},{"id":44,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"전체 탭이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":45,"mark":"!","section":"5. 피드 상단 탭","item":"인기 탭의 정렬 기준이 현재 확정된 인기 알고리즘과 일치한다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":"현재 DB 함수 인기 기준은 추천+공개 댓글×1.2, 동률은 작성 시각/ID 내림차순임을 확인. 점수별 대량 정렬 E2E는 미실시."},{"id":46,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"최신 탭이 최신 작성순으로 정렬된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":47,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"댓글 많은 글이 댓글수 기준으로 정상 정렬된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":48,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"탭을 빠르게 연속 변경해도 게시글이 중복되거나 데이터가 꼬이지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":49,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"탭 변경 시 선택 상태가 정확하게 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":50,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"탭 변경 도중 이전 API 요청 결과가 뒤늦게 나타나 현재 선택 상태를 덮어쓰지 않는다.","result":"ㅇ","note":"느린 네트워크에서 테스트 미실시","userStatus":"미실시·부분 확인","action":""},{"id":51,"mark":"ㅇ","section":"6. 글쓰기","item":"로그인 사용자만 글쓰기가 가능하다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":52,"mark":"ㅇ","section":"6. 글쓰기","item":"제목 입력이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":53,"mark":"ㅇ","section":"6. 글쓰기","item":"본문 입력이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":54,"mark":"ㅇ","section":"6. 글쓰기","item":"카테고리 / 소분류 선택이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":55,"mark":"ㅇ","section":"6. 글쓰기","item":"익명/닉네임 작성 방식이 현재 제품 정책대로 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":56,"mark":"ㅇ","section":"6. 글쓰기","item":"제목 없이 등록할 경우 적절한 오류가 표시되고 글이 생성되지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":57,"mark":"ㅇ","section":"6. 글쓰기","item":"본문 없이 등록할 경우 적절한 오류가 표시되고 글이 생성되지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":58,"mark":"ㅇ","section":"6. 글쓰기","item":"공백만 입력한 제목/본문으로 글을 등록할 수 없다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":59,"mark":"ㅇ","section":"6. 글쓰기","item":"정상 입력 후 게시글 등록이 성공한다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":60,"mark":"ㅇ","section":"6. 글쓰기","item":"등록 직후 피드에 새 게시물이 나타난다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":61,"mark":"ㅇ","section":"6. 글쓰기","item":"등록 버튼을 빠르게 여러 번 눌러도 게시글이 중복 생성되지 않는다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":62,"mark":"!","section":"6. 글쓰기","item":"등록 실패 시 기존 작성 내용이 전부 사라지지 않는다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":63,"mark":"!","section":"6. 글쓰기","item":"매우 긴 제목 입력 시 제한이 정상 동작한다.","result":"태스트 미실시","note":"정책 확인 필요","userStatus":"미실시·부분 확인","action":"Dev DB 직접 요청에서 제목 120자 허용·121자 거절 확인. UI 120자 제한 유지."},{"id":64,"mark":"ㅇ","section":"6. 글쓰기","item":"매우 긴 본문 입력 시 정상 처리된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":65,"mark":"ㅇ","section":"6. 글쓰기","item":"<script> 등 HTML/스크립트 문자열을 입력해도 실제 코드가 실행되지 않는다. P0","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":66,"mark":"ㅇ","section":"7. 게시글 상세","item":"목록에서 선택한 게시글과 상세 화면의 내용이 동일하다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":67,"mark":"ㅇ","section":"7. 게시글 상세","item":"제목 / 본문 / 작성자 / 작성일 및 시각이 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":68,"mark":"ㅇ","section":"7. 게시글 상세","item":"게시글 조회 시 조회수가 정상 증가한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":69,"mark":"ㅇ","section":"7. 게시글 상세","item":"새로고침에 따른 조회수 정책이 의도대로 작동한다.","result":"다른 브라우저, 시크릿 모드 시 조회수 정상 작동","note":"날짜당 1회는 테스트 미실시","userStatus":"미실시·부분 확인","action":"같은 viewer_key 중복 증가 방지 및 임시 조회 이벤트 날짜 변경을 통한 날짜 경계 시험 확인. 실제 자정 대기와 다름."},{"id":70,"mark":"ㅇ","section":"7. 게시글 상세","item":"조회수 증가만으로 게시글 updated_at이 변경되지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":71,"mark":"","section":"7. 게시글 상세","item":"삭제된 게시글 URL 접근 시 적절한 화면이 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":72,"mark":"ㅇ","section":"7. 게시글 상세","item":"존재하지 않는 게시글 URL 접근 시 404 또는 적절한 안내가 나온다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":73,"mark":"ㅇ","section":"8. 익명 시스템","item":"익명 게시글의 작성자가 올바르게 익명 처리된다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":74,"mark":"ㅇ","section":"8. 익명 시스템","item":"게시글 작성자가 자기 글에 댓글을 달면 같은 익명 번호를 유지한다.","result":"ㅇ","note":"다른 계정으로 첫 댓글 달았을 때 익명 정책이 제대로 작동하는지는 테스트 미실시","userStatus":"미실시·부분 확인","action":"Dev 작성자 A의 댓글 익명1 유지, B 댓글 익명2 확인."},{"id":75,"mark":"!","section":"8. 익명 시스템","item":"다른 사용자가 같은 글에 댓글을 달면 다른 익명 번호가 부여된다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":"Dev 임시 A/B의 익명 번호 분리 및 답글 parent_id 확인."},{"id":76,"mark":"ㅇ","section":"8. 익명 시스템","item":"같은 사용자가 같은 게시글에 여러 댓글을 달아도 동일 익명 번호가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":77,"mark":"!","section":"8. 익명 시스템","item":"같은 사용자가 다른 게시글에 참여했을 때 익명 번호가 새롭게 결정된다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":78,"mark":"ㅇ","section":"8. 익명 시스템","item":"익명 사용자의 실제 닉네임이 API 또는 UI에 노출되지 않는다. P0","result":"ㅇ","note":"네트워크 응답 테스트 미실시","userStatus":"미실시·부분 확인","action":"Dev 공개 RPC 반환 JSON에 작성자 uid·실제 닉네임·nickname_snapshot 미포함 확인. 모든 API 전체 감사와는 다름."},{"id":79,"mark":"ㅇ","section":"8. 익명 시스템","item":"닉네임 댓글 기능을 제공한다면 작성 당시 닉네임이 정상 표시된다.","result":"N/A","note":"","userStatus":"해당 없음","action":""},{"id":80,"mark":"ㅇ","section":"8. 익명 시스템","item":"닉네임 변경 후 과거 게시물 표시가 제품 정책대로 유지된다.","result":"N/A","note":"","userStatus":"해당 없음","action":""},{"id":81,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"댓글 작성이 정상 작동한다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":82,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"댓글 작성 직후 댓글수가 증가한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":83,"mark":"!","section":"9. 댓글 / 답글","item":"답글 작성이 정상 작동한다.","result":"답글 작성 시 지정한 댓글에 답글이 달리는 것이 아닌 마지막으로 작성된 댓글에 답글이 달리는 것으로 확인.","note":"","userStatus":"오류·개선·정책 검토","action":"공개 5e5ad77에 부모 우선 정렬과 클릭 시 입력창 적용. 실제 새 답글이 지정한 부모 바로 다음에 표시되고, 등록 후 입력창 접힘 및 새로고침 유지 확인. 2계정 시험은 남음."},{"id":84,"mark":"!","section":"9. 댓글 / 답글","item":"답글 대상이 [익명N] 등 의도한 방식으로 정확히 표시된다.","result":"","note":"","userStatus":"결과 미기재","action":"공개 실제 신규 답글과 2단계 답글에서 부모의 익명2 표시 확인. 새 답글 작성자도 같은 계정의 익명2 유지. A/B 다른 계정 조합은 남음."},{"id":85,"mark":"!","section":"9. 댓글 / 답글","item":"여러 단계 답글 작성이 가능하다.","result":"1단계까지만 작성됨.","note":"","userStatus":"오류·개선·정책 검토","action":"공개 사이트에서 답글에 다시 답글을 실제 등록해 2단계 배치(24px 들여쓰기), 부모 바로 뒤 표시와 새로고침 유지 확인. 3단계 이후 들여쓰기는 제한해 모바일 폭 보존. 더 깊은 단계·다른 계정 조합은 남음."},{"id":86,"mark":"!","section":"9. 댓글 / 답글","item":"댓글 작성자가 정확하게 표시된다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":87,"mark":"!","section":"9. 댓글 / 답글","item":"다른 사용자의 댓글을 수정할 수 없다. P0","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":"Dev authenticated 역할 A의 B 댓글 수정 RPC가 false를 반환함을 확인."},{"id":88,"mark":"!","section":"9. 댓글 / 답글","item":"다른 사용자의 댓글을 삭제할 수 없다. P0","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":"Dev authenticated 역할 A의 B 댓글 삭제 RPC가 권한 오류로 거절됨을 확인."},{"id":89,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"자기 댓글 수정 및 삭제가 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":90,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"삭제 댓글 처리 방식이 UI 정책과 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":91,"mark":"!","section":"9. 댓글 / 답글","item":"매우 긴 댓글이 UI 영역 밖으로 빠져나가지 않는다.","result":"글자수 제한을 둬야될 것 같음.","note":"","userStatus":"오류·개선·정책 검토","action":"기존 서버/입력창 1,000자 제한 유지, 현재 글자 수 표시 추가. 기존 1,000자 안팎 긴 영문/한글 댓글 390/1024px에서 넘침 없음 확인."},{"id":92,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"댓글 등록 버튼을 빠르게 여러 번 눌러도 중복 댓글이 생성되지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":93,"mark":"ㅇ","section":"10. 추천","item":"추천 버튼 클릭 시 추천수가 +1 된다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":94,"mark":"ㅇ","section":"10. 추천","item":"다시 클릭하면 추천이 취소되고 추천수가 -1 된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":95,"mark":"ㅇ","section":"10. 추천","item":"새로고침 후에도 추천 상태가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":96,"mark":"ㅇ","section":"10. 추천","item":"다른 사용자에게도 전체 추천수가 동일하게 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":97,"mark":"ㅇ","section":"10. 추천","item":"개인의 추천 여부만 사용자별로 다르게 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":98,"mark":"ㅇ","section":"10. 추천","item":"같은 사용자가 한 게시글을 여러 번 추천할 수 없다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":99,"mark":"ㅇ","section":"10. 추천","item":"비로그인 사용자의 추천 정책이 의도대로 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":100,"mark":"ㅇ","section":"11. 저장","item":"저장 버튼 클릭 시 저장 상태가 변경된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":101,"mark":"ㅇ","section":"11. 저장","item":"새로고침 후에도 저장 상태가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":102,"mark":"ㅇ","section":"11. 저장","item":"저장 취소가 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":103,"mark":"ㅇ","section":"11. 저장","item":"저장한 글 페이지에 저장한 게시물이 나타난다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":104,"mark":"ㅇ","section":"11. 저장","item":"다른 사용자의 저장 여부 또는 저장 목록을 볼 수 없다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":105,"mark":"ㅇ","section":"12. 주제 탐색","item":"각각의 주제 클릭이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":106,"mark":"ㅇ","section":"12. 주제 탐색","item":"선택한 주제의 게시글만 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":107,"mark":"ㅇ","section":"12. 주제 탐색","item":"다른 주제로 변경했을 때 이전 필터가 잘못 남아 있지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":108,"mark":"ㅇ","section":"12. 주제 탐색","item":"게시글이 없는 주제에서는 적절한 빈 상태가 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":109,"mark":"ㅇ","section":"12. 주제 탐색","item":"전체 보기가 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":110,"mark":"!","section":"12. 주제 탐색","item":"비활성화된 주제가 일반 사용자에게 노출되지 않는다.","result":"해당 기능 없음","note":"","userStatus":"오류·개선·정책 검토","action":"Dev 임시 카테고리/소분류 비활성 시 공개 글 조회 제외 확인. 모든 화면 직접 URL은 별도."},{"id":111,"mark":"ㅇ","section":"13. 오늘의 투표","item":"투표 항목을 선택할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":112,"mark":"ㅇ","section":"13. 오늘의 투표","item":"투표 동작이 정상 작동한다.","result":"ㅇ","note":"별도로 정확한 결과 확인은 미실시","userStatus":"미실시·부분 확인","action":"Dev 두 uid의 투표 변경·중복 누적 방지·2인 합계 시험 실행. 실제 투표 UI 동기화 시험은 별도. 웹 계정 전환 시 이전 선택/응답 무효화 및 동기 투표 잠금 보강. 자동 소스 검사·공개 투표 조회 확인, 실제 A/B UI 투표는 별도."},{"id":113,"mark":"ㅇ","section":"13. 오늘의 투표","item":"동일 계정의 중복 투표 정책이 정상 적용된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":114,"mark":"ㅇ","section":"13. 오늘의 투표","item":"투표 완료 후 결과가 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":115,"mark":"ㅇ","section":"13. 오늘의 투표","item":"새로고침 후에도 사용자의 투표 상태가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":116,"mark":"ㅇ","section":"13. 오늘의 투표","item":"투표 종료 후 추가 투표가 차단된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":117,"mark":"!","section":"13. 오늘의 투표","item":"현재 활성 투표가 없을 때 UI가 깨지지 않는다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":118,"mark":"ㅇ","section":"14. 실시간 대화","item":"실시간 대화 버튼이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":119,"mark":"ㅇ","section":"14. 실시간 대화","item":"대화창 열기 / 닫기가 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":120,"mark":"ㅇ","section":"14. 실시간 대화","item":"메시지 작성이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":121,"mark":"ㅇ","section":"14. 실시간 대화","item":"다른 계정에서 작성한 메시지가 정상적으로 보인다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":122,"mark":"ㅇ","section":"14. 실시간 대화","item":"연속 메시지 작성 시 표시 순서가 정확하다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":123,"mark":"ㅇ","section":"14. 실시간 대화","item":"최근 대화 목록이 실제 대화 기록과 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":124,"mark":"ㅇ","section":"14. 실시간 대화","item":"새 메시지가 발생하면 최신 대화 목록이 정상 갱신된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":125,"mark":"ㅇ","section":"14. 실시간 대화","item":"빈 메시지를 전송할 수 없다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":126,"mark":"ㅇ","section":"14. 실시간 대화","item":"긴 메시지가 UI 밖으로 빠져나가지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":127,"mark":"","section":"15. 회원 / 권한","item":"비로그인 사용자가 공개 게시글을 볼 수 있다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":128,"mark":"","section":"15. 회원 / 권한","item":"비로그인 상태에서 제한 기능 접근 시 적절한 로그인 안내가 나온다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":129,"mark":"","section":"15. 회원 / 권한","item":"User A가 User B의 데이터를 수정할 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":"Dev 타인 글/댓글 수정·삭제 거절과 자신의 is_admin 직접 승격 거절 확인."},{"id":130,"mark":"","section":"15. 회원 / 권한","item":"User A가 User B의 저장 목록을 볼 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":"Dev A/B 저장 목록 격리, 저장 시각 역순 및 페이지 경계 시험 후 정렬 변경 실제 적용 확인."},{"id":131,"mark":"","section":"15. 회원 / 권한","item":"User A가 User B의 비공개 사용자 정보를 볼 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":"Dev 다른 profile 행 조회 차단 및 공개 글/댓글에서 실제 닉네임·uid 미노출 확인."},{"id":132,"mark":"","section":"15. 회원 / 권한","item":"일반 사용자가 관리자 기능을 실행할 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":"Dev authenticated 비관리자 및 anon의 관리자 RPC 차단 확인. 관리자 전체 화면 비교는 별도."},{"id":133,"mark":"","section":"15. 회원 / 권한","item":"일반 사용자나 비로그인 사용자가 /admin URL을 직접 입력해도 관리자 페이지 접근이 차단된다. P0","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":134,"mark":"","section":"15. 회원 / 권한","item":"로그아웃된 세션으로 보호된 API 요청을 실행할 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":"uid 없는 authenticated/anon의 쓰기와 개인 저장 목록 차단 확인. 이미 발급된 과거 JWT의 즉시 폐기·만료 UI 시험은 미완료."},{"id":135,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"게시글 상세 → 뒤로가기 시 기존 피드 상태로 정상 복귀한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":136,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"필터 적용 → 상세 → 뒤로가기 시 기존 필터가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":137,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"게시글 상세 페이지에서 새로고침해도 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":138,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"글쓰기 페이지에서 새로고침해도 오류가 발생하지 않는다.","result":"ㅇ","note":"글쓰기 들어가서 카테고리/소분류 변경 후 새로 고침할 경우에는 유지되지 않음. 새로 고침 시 [작성한 내용 저장되지 않음] 경고 표시되도록 개선.","userStatus":"비고 재확인","action":"공개 b9cfc4a: 제목/본문 및 카테고리·소분류 변경 후 내부 이동창 취소/이동, 목록 새로고침 뒤 작성 화면 재진입 시 텍스트·게시판 선택 복원 확인. 로그아웃 삭제는 범위 단위 검사, 직접 작성 화면 새로고침 기본 경고는 별도."},{"id":139,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"URL을 직접 입력해서 특정 게시글에 접근할 수 있다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":140,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"존재하지 않는 URL은 정상적인 404 화면을 보여준다.","result":"","note":"설명을 좀 더 자세하게 변경(현재 '게시글을 불러오지 못했습니다.'라고 출력되는데 설명이 부족한 것 같음.)","userStatus":"오류·개선·정책 검토","action":"삭제·숨김·접근 불가와 네트워크 조회 실패 안내를 구분하도록 상세 문구 보완. 모든 404 경로는 이번에 실검증하지 않음."},{"id":141,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"1920×1080 환경에서 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":142,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"2560×1440 환경에서 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":143,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"3840×2160 환경에서 콘텐츠가 지나치게 작거나 벌어져 보이지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":144,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"실제 브라우저 확대율 125%에서도 UI가 깨지지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":145,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"실제 브라우저 확대율 150%에서도 주요 기능을 사용할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":146,"mark":"!","section":"17. 반응형 / 화면 크기","item":"작은 노트북 해상도에서 좌우 요소가 겹치지 않는다.","result":"1024×768에서 레이아웃 깨짐","note":"","userStatus":"오류·개선·정책 검토","action":"1024px CSS에서 sidebar display:none과 170px 열 배치 충돌 발견·수정. 로컬 홈 1024×768에서 사이드바 표시, 중앙 너비 775px, 가로 넘침 없음 확인."},{"id":147,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"모바일 환경에서 불필요한 가로 스크롤이 발생하지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":148,"mark":"!","section":"17. 반응형 / 화면 크기","item":"모바일 메뉴에 정상적으로 접근할 수 있다.","result":"모바일 화면 검토 필요","note":"","userStatus":"오류·개선·정책 검토","action":"390px 상세 화면에서 하단 메뉴·글쓰기 링크·답글 입력 표시 확인. 일반 회원/비로그인/관리자 모바일 메뉴 4상태 비교는 남음."},{"id":149,"mark":"!","section":"17. 반응형 / 화면 크기","item":"실제 모바일 기기에서 글쓰기 및 댓글 입력이 정상 작동한다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":150,"mark":"ㅇ","section":"18. 실제 브라우저 테스트","item":"Chrome","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":151,"mark":"ㅇ","section":"18. 실제 브라우저 테스트","item":"Microsoft Edge","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":152,"mark":"ㅇ","section":"18. 실제 브라우저 테스트","item":"Naver Whale","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":153,"mark":"d","section":"18. 실제 브라우저 테스트","item":"Safari / iPhone Safari","result":"텍스트 입력 시 화면 확대됨. 나머지 정상 작동.","note":"","userStatus":"오류·개선·정책 검토","action":"모바일 input/textarea/select 16px 적용, 사용자 확대 기능은 차단하지 않음. Chromium 390px 입력 폰트 16px 확인. iPhone Safari 실기기 자동 확대/키보드 재검증 필요."},{"id":154,"mark":"ㅇ","section":"18. 실제 브라우저 테스트","item":"브라우저를 바꿔도 로그인/게시글/저장 목록/권한 등 서비스 동작에 비정상적인 차이가 없다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":155,"mark":"ㅇ","section":"19. UI / 디자인","item":"좌우 카드의 border / radius 규칙이 일관된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":156,"mark":"ㅇ","section":"19. UI / 디자인","item":"같은 역할의 텍스트는 폰트 크기와 굵기가 일관된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":157,"mark":"!","section":"19. UI / 디자인","item":"메뉴 아이콘 크기와 정렬이 일정하다.","result":"헤더 번호인증/선택 버튼 정렬 수정 필요. 주제탐색, ai검색, 검색버튼(돋보기) 정렬 수정 필요.","note":"","userStatus":"오류·개선·정책 검토","action":"헤더 버튼 중앙 정렬 및 중간 폭 두 줄 배치 보완. 홈 1024px 배치 확인. 선택 번호 인증 링크 및 모든 언어 조합 정렬은 추가 검증 필요."},{"id":158,"mark":"ㅇ","section":"19. UI / 디자인","item":"선택된 메뉴/탭의 색상 규칙이 일관된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":159,"mark":"!","section":"19. UI / 디자인","item":"클릭 가능한 요소와 단순 텍스트가 시각적으로 구분된다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":160,"mark":"ㅇ","section":"19. UI / 디자인","item":"회색 텍스트의 명암이 너무 낮지 않아 읽기 어렵지 않다.","result":"","note":"WCAG 대비 미확인","userStatus":"미실시·부분 확인","action":""},{"id":161,"mark":"ㅇ","section":"19. UI / 디자인","item":"버튼 크기와 padding이 페이지별로 일관된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":162,"mark":"ㅇ","section":"19. UI / 디자인","item":"특정 해상도에서 지나치게 많은 빈 공간이 발생하지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":163,"mark":"ㅇ","section":"19. UI / 디자인","item":"큰 화면에서 콘텐츠가 화면 상단 중앙에 지나치게 작게 모여 보이지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":164,"mark":"ㅇ","section":"19. UI / 디자인","item":"게시글 사이 구분선과 간격이 일정하다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":165,"mark":"!","section":"19. UI / 디자인","item":"긴 한국어 / 영어가 섞인 문자열에서도 레이아웃이 깨지지 않는다.","result":"긴 텍스트가 ui를 벗어남, 영어는 제목은 ui를 벗어나나 본문은 정상, 한글은 제목은 정상 본문이 ui를 벗어남.","note":"","userStatus":"오류·개선·정책 검토","action":"텍스트 너비와 줄바꿈 보완. 기존 긴 댓글 가로 넘침 없음 확인. 혼합 장문 제목·닉네임 전체 조합은 남음."},{"id":166,"mark":"!","section":"20. 오류 / 예외 상황","item":"인터넷 연결을 끊은 상태에서 적절한 오류가 표시된다.","result":"로그인 상태에서 Offline 전환 후 글 등록 시 로그인이 필요합니다 표시. 오류 안내 부정확","note":"","userStatus":"오류·개선·정책 검토","action":"글쓰기/댓글/추천/저장의 getUser 네트워크 실패를 로그인 필요와 구분하도록 보완. 오프라인·503·401·세션 없음 단위 검사 통과. 실제 브라우저 Offline 전환 재검증은 남음."},{"id":167,"mark":"!","section":"20. 오류 / 예외 상황","item":"Supabase 요청 실패 시 페이지 전체가 빈 화면이 되지 않는다.","result":"get_public_posts, get_chat_messages_with_ai, toggle_comment_like, get_comment_like_state, get_post_attachments 정상 작동. get_public_comments API 요청 차단 시 게시글 상세 페이지 진입에 실패하며, 게시글을 불러오지 못했습니다.라는 오류가 표시됨.","note":"","userStatus":"오류·개선·정책 검토","action":"본문을 먼저 표시하고 댓글/첨부 조회를 독립 처리. 댓글 실패 안내·재시도와 실패 시 기존 댓글 보존 추가. 소스 연결 검사 및 정상 본문/댓글 로컬 확인. 실제 get_public_comments 차단 주입은 아직 미실시."},{"id":168,"mark":"ㅇ","section":"20. 오류 / 예외 상황","item":"게시글 등록 실패 시 사용자에게 적절한 이유/실패 메시지를 보여준다.","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":169,"mark":"ㅇ","section":"20. 오류 / 예외 상황","item":"댓글 등록 실패 시 기존 입력 내용이 유지된다.","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":170,"mark":"","section":"20. 오류 / 예외 상황","item":"API 응답이 느려도 중복 요청이나 중복 데이터가 발생하지 않는다.","result":"pass","note":"검색은 방식이 달라 테스트 미적합.","userStatus":"미실시·부분 확인","action":"댓글·글쓰기·더보기 동기 잠금과 탭/계정 변경 시 이전 조회·제출 응답 무효화 보강. 소스 검사 통과, 실제 지연/연타 E2E는 미완료. 투표·채팅에도 동기 잠금/계정 응답 무효화/전송 예외 처리 보강."},{"id":171,"mark":"ㅇ","section":"20. 오류 / 예외 상황","item":"빠르게 여러 버튼을 연속 클릭해도 데이터가 꼬이지 않는다.","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":172,"mark":"d","section":"20. 오류 / 예외 상황","item":"로그인 세션이 만료됐을 때 적절하게 재로그인을 유도한다.","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":173,"mark":"!","section":"20. 오류 / 예외 상황","item":"DB 응답에 예상하지 못한 null 값이 포함되어도 페이지 전체가 죽지 않는다.","result":"","note":"테스트 미실시","userStatus":"미실시·부분 확인","action":"null/비문자열 번역 텍스트를 정규화해 trim 오류 방지. 모든 DB 필드 null 주입을 완료한 것은 아님."}],"currentVerification":{"date":"2026-10-09","deployment":"웹 e0c22b9의 Vercel Production 빌드·배포 성공 및 공개 화면 확인. Dev DB 저장 정렬 적용, 번역 Edge Function 보호 코드 배포 및 실제 응답 확인. 공개 초안/이동창·390px 버튼·영일중 설정 화면 검증 완료. 후속 글쓰기 대비/보고서 보완은 별도 배포. 전체 173개 E2E 완료를 뜻하지 않습니다.","automatedTests":73,"checks":["Dev DB에서 authenticated/anon 역할을 실제로 전환해 A/B 임시 uid로 시험. 기존 데이터는 변경하지 않고 테스트 전체를 ROLLBACK했습니다. 실제 두 브라우저의 로그인 시험과는 다릅니다.","타인 글·댓글 수정/삭제 차단, 개인 글/저장 목록 격리, 다른 profile 조회 차단, is_admin 직접 승격 거절, 비관리자·비로그인 관리자 RPC 차단 확인.","공개 글·댓글 JSON의 author_id/nickname_snapshot/테스트 실제 닉네임 미노출, 작성자 익명1·다른 사용자 익명2 및 parent_id 확인.","제목 120자 허용/121자 거절, 댓글 1001자 거절, 다른 글의 댓글을 부모로 지정하는 요청 거절 확인.","같은 viewer_key 반복 조회 중복 증가 없음, 임시 이벤트 날짜를 전날로 바꾼 날짜 경계, 실제 조회수·댓글수와 공개 집계 일치 확인.","두 uid의 투표 변경/중복 방지 및 2인 합계를 시험. 숨김/삭제/비활성 카테고리·소분류 공개 조회 제외와 모든 public 테이블 RLS 확인.","저장 정렬을 임시 적용하고 저장 시각 역순·페이지 경계·타인 격리를 시험 후 롤백. 이후 Dev 실제 적용 saved_order_applied=true 확인.","자동 검사 73개, TypeScript·Lint 통과. 초안 파싱/24시간 만료/사용자별 삭제 범위, 계정 전환 무효화 연결, null 텍스트와 번역 방어 코드 연결을 검사했습니다. 이는 173개 전체 E2E 통과가 아닙니다.","번역 Edge Function을 기존 키·모델·쿼터 유지 상태로 배포. 일본어/중국어 실제 생성 각각 200, 같은 일본어 입력의 cached=true/200, 빈 입력 400 확인. 비정상 길이·반복·불완전 응답 방어와 30초 제한 적용.","공개 b9cfc4a에서 제목·본문·게시판 변경 → 이동창 취소/이동 → 목록 새로고침 → 작성 화면 재진입 시 텍스트와 일상/자유잡담 선택 복원 확인. 서버에 새 게시글은 등록하지 않음.","공개 이동창의 Tab 순환 및 계속 작성 버튼 포커스, 390px 화면 내 표시/가로 넘침 없음, textarea 16px 확인. 실제 iPhone 키보드 시험과는 구분. 390px 상단 취소 버튼 수정 후 44×40px·nowrap·flex-shrink:0 및 실제 한 줄 표시 확인.","공개 e0c22b9에서 영어·일본어·중국어 설정 제목/익명 안내/번역 언어/선택 번호 인증 안내와 헤더-설정 선택 동기화 확인. DB 설정 저장은 누르지 않았고, 브라우저 언어는 기존 자동으로 원복. 홈 영어 제목·투표 제목/참여수·일부 투표 콘텐츠 번역 확인. 모든 동적 명칭/오류 현지화 완료는 아님.","390px 글쓰기 대비 계산: 안내 2.77:1·첨부 용량 안내 2.61:1 발견. 해당 안내와 익명/번역 고지를 #596579·12px 이상으로 보완. 전체 사이트 WCAG 적합성 인증이나 모든 상태 검사와는 다름.","공개 실시간 대화의 AI 준비 상태 정상 확인. 임시 문구를 전송 없이 입력·삭제해 입력색 #151821/흰 배경/16px 확인, 닫기 뒤 aria-expanded=false 확인. 신규 채팅·투표·회원 정보 저장은 하지 않음."],"priorities":["#17 주요 홈·투표·대화·회원 설정 문구를 보완했으나 카테고리/소분류명·작성 양식·오류 전체 현지화와 모든 언어 품질은 추가 작업/검증 필요.","실제 iPhone Safari 입력 확대·키보드 가림: 실기기 필요. Chromium 390px 검사를 Safari 통과로 계산하지 않음.","실제 A/B 브라우저 로그인 전환과 비로그인·관리자 모바일 메뉴 조합: 추가 계정/브라우저 세션 필요. DB 역할별 시험과 구분.","실제 Offline/API 차단/Slow 3G/버튼 연타 스트레스, 모든 DB null 필드 주입, 전체 WCAG 검사는 미완료(글쓰기 일부 수치 측정·보완만 시행). 현재 브라우저 도구에 네트워크 차단·지연 주입 기능이 없음.","가입 인증/재설정 메일 실수신, 이미 발급된 과거 JWT의 즉시 폐기/만료 UI는 별도 확인 필요.","SMS 공개 OFF 유지. Twilio Trial 수신 제한 해제/과금·발신번호 설정과 실제 문자 시험은 사용자 설정·승인 필요.","첨부 이미지 전체 조합·혼합 장문 제목/닉네임, 대량 데이터 정렬/레이아웃 및 전체 접근성 수치 검사는 추가 검증 필요."],"actions":{"17":"Dev 일본어/중국어 실제 생성 200·일본어 캐시 확인. 공개 e0c22b9 설정의 영어/일본어/중국어 및 선택 동기화, 홈 영어 투표/안내 확인. 브라우저 언어는 자동으로 원복. 동적 게시판명·작성 양식·오류 전체 현지화와 장문 품질은 미완료.","27":"Dev authenticated 역할 A/B 시험으로 내 글 목록의 본인 포함·타인 제외 확인. 실제 다계정 브라우저 UI 시험은 별도.","38":"Dev 임시 글의 공개 조회수와 DB 저장 값 일치 확인. 테스트는 롤백.","43":"Dev 임시 숨김/삭제 글의 공개 상세·댓글·피드 제외 확인. 실제 일반 브라우저 직접 URL 시험은 별도.","45":"현재 DB 함수 인기 기준은 추천+공개 댓글×1.2, 동률은 작성 시각/ID 내림차순임을 확인. 점수별 대량 정렬 E2E는 미실시.","63":"Dev DB 직접 요청에서 제목 120자 허용·121자 거절 확인. UI 120자 제한 유지.","69":"같은 viewer_key 중복 증가 방지 및 임시 조회 이벤트 날짜 변경을 통한 날짜 경계 시험 확인. 실제 자정 대기와 다름.","74":"Dev 작성자 A의 댓글 익명1 유지, B 댓글 익명2 확인.","75":"Dev 임시 A/B의 익명 번호 분리 및 답글 parent_id 확인.","78":"Dev 공개 RPC 반환 JSON에 작성자 uid·실제 닉네임·nickname_snapshot 미포함 확인. 모든 API 전체 감사와는 다름.","87":"Dev authenticated 역할 A의 B 댓글 수정 RPC가 false를 반환함을 확인.","88":"Dev authenticated 역할 A의 B 댓글 삭제 RPC가 권한 오류로 거절됨을 확인.","110":"Dev 임시 카테고리/소분류 비활성 시 공개 글 조회 제외 확인. 모든 화면 직접 URL은 별도.","112":"Dev 두 uid의 투표 변경·중복 누적 방지·2인 합계 시험 실행. 실제 투표 UI 동기화 시험은 별도. 웹 계정 전환 시 이전 선택/응답 무효화 및 동기 투표 잠금 보강. 자동 소스 검사·공개 투표 조회 확인, 실제 A/B UI 투표는 별도.","129":"Dev 타인 글/댓글 수정·삭제 거절과 자신의 is_admin 직접 승격 거절 확인.","130":"Dev A/B 저장 목록 격리, 저장 시각 역순 및 페이지 경계 시험 후 정렬 변경 실제 적용 확인.","131":"Dev 다른 profile 행 조회 차단 및 공개 글/댓글에서 실제 닉네임·uid 미노출 확인.","132":"Dev authenticated 비관리자 및 anon의 관리자 RPC 차단 확인. 관리자 전체 화면 비교는 별도.","134":"uid 없는 authenticated/anon의 쓰기와 개인 저장 목록 차단 확인. 이미 발급된 과거 JWT의 즉시 폐기·만료 UI 시험은 미완료.","138":"공개 b9cfc4a: 제목/본문 및 카테고리·소분류 변경 후 내부 이동창 취소/이동, 목록 새로고침 뒤 작성 화면 재진입 시 텍스트·게시판 선택 복원 확인. 로그아웃 삭제는 범위 단위 검사, 직접 작성 화면 새로고침 기본 경고는 별도.","170":"댓글·글쓰기·더보기 동기 잠금과 탭/계정 변경 시 이전 조회·제출 응답 무효화 보강. 소스 검사 통과, 실제 지연/연타 E2E는 미완료. 투표·채팅에도 동기 잠금/계정 응답 무효화/전송 예외 처리 보강.","173":"null/비문자열 번역 텍스트를 정규화해 trim 오류 방지. 모든 DB 필드 null 주입을 완료한 것은 아님."},"additions":{"A2":{"status":"Dev 서버 배포·실제 응답 검증","evidence":"신규/캐시 번역 길이·반복 및 불완전 응답 거절, 30초 제한 적용. 일본어·중국어 실제 생성 200, 일본어 캐시 200, 빈 입력 400 확인. 실제 장문 문제 원인·모든 언어 번역 품질은 추가 검증 필요."},"A5":{"status":"Dev DB 적용·서버 시험 완료","evidence":"저장 시각 역순·페이지 경계·다른 사용자 격리 시험 후 Dev 실제 적용 saved_order_applied=true 확인. 원본 프로젝트는 변경하지 않음. 최신 웹 저장 목록 UI 비교는 별도."}}},"webRuntimeVerification":{"date":"2026-10-11","scope":"PC·모바일 웹과 광고·AI 관리자 화면은 공개 사이트에 반영. AI·번역 서버와 기능별 혼합 모델은 OpenLog Dev에 적용·조회 검증. 전체 앱 기능과 173개 수동 QA가 모두 완료됐다는 의미는 아님. 이번 변경은 Mac iOS 파일·공통 의존성을 변경하지 않음.","automatedTests":195,"checks":["읽기 재사용·렌더링 보완: 계정별 탭 메모리에 공개 목록 첫 페이지30초(방문마다 서버 재검증), 주제5분, 첨부 미리보기2분, 최근 대화30초(Realtime·보이는 창15초 재검증), 대화방 목록30초를 보관. 최대96건·문자열 크기 추산2MB와 동시 요청 관리32건으로 제한. 같은 요청은 합치고 변하지 않은 행/대화 목록은 재사용. 빈 광고의 매초 타이머를 제거하고 광고 만료 시점에만 갱신. 로그아웃·계정/토큰 변경과 쓰기·삭제·차단에 캐시 무효화. 내 글·저장·검색 결과, 권한 판정·관리자/신청 정보·인증값은 이 캐시에 보관하지 않음. 195개 자동 검사 통과. 탭 종료 후 영구 보관·전체 기능 캐싱·실물 기기 성능 향상·일 이용자1만 명 부하를 검증했다는 뜻은 아님. 기존 번역 DB 영구 저장은 변경하지 않음.","대화 이동 회귀 수정: 일반 대화 버튼·메뉴는 /chat 이동 대신 현재 화면 위 하단 팝업으로 열고, 닫기/Escape/바깥 클릭 후 게시판 주소·스크롤·초점을 유지. 과거 /chat 직접 링크는 호환용으로 유지. 검색·채팅·빠른 댓글·상세 댓글/답글·댓글 수정은 같은 form 제출 경로의 Enter, Shift+Enter 줄바꿈과 한글 조합 입력 가드 사용. 긴 게시글 본문은 줄바꿈 유지. 184개 자동 검사 및 TypeScript 통과; 실제 로그인 회원의 새 메시지/댓글 쓰기와 휴대폰 실물 키보드 검증은 별도임.","광고는 외부 이동이 아니라 OpenLog 내부 신청서로 연결하도록 변경. 관리자는 공개 혜택·상담을 선택하며 외부 URL 입력은 제거. 기존 target_url/RPC 응답 형식은 유지하되 엄격한 캠페인 식별자로만 사용하고 웹은 같은 사이트의 상대 경로로 이동. 잘못된 주소·중복 파라미터·미공개/종료 항목은 차단. Dev 서버 트리거와 공개 조회 필터를 적용하고 격리 PostgreSQL에서 외부 저장/미공개·만료 게시 차단·공개 제외·관리자 권한 유지 검증. 실제 광고 게시·고객 신청·광고주 전송은 실행하지 않음. 기존 이름·인증 휴대폰·상담 답변·동의 범위는 변경하지 않았으며 광고주 자동 전송은 없음. 174개 자동 검사 통과. 네이티브 캠페인 상세 화면 연결은 별도 작업임.","게시판형 후속 개편: 큰 아바타·사진·댓글 미리보기·중복 숫자 대신 제목·분류·작성자·날짜·조회/추천/댓글 중심 목록으로 변경. 사진은 72×64(좁은 화면60×60) 썸네일이고 상세 원본은 변경하지 않음. 참여 메뉴의 추천·저장·공유·클릭 시 빠른 댓글은 유지. 로컬 실제 PC1280의 일반 텍스트 글93px, 모바일390은132.5px, 320은150.5px이며 가로 넘침 없음. 참여 메뉴/댓글 입력 열고 닫기, 제목→상세→관계 게시판 복귀 확인. 사진 실물·추천/저장/댓글 쓰기 전체 E2E는 별도 미검증.","광고 노출 후속 정책으로 이전 PR #15의 일반 사용자 빈칸 예약은 폐기: 실제 집행 광고가 없으면 숨김. 홈·카테고리 목록의 보이는 글5개/15개/25개 뒤 최대3곳, 목록 끝에는 붙이지 않음. 내 글·저장·검색·대화 제외. 목록 전체가 공개 카탈로그를 공동 조회하고 최초 조회 완료 후 글 표시; 조회2.5초 제한·초기 빈 목록에 뒤늦은 광고 삽입 차단·만료·취소 경계를 모의 실행 검사. 실제 광고가 있으면 기존144/160px 규격을 사용. 170개 자동 검사 통과. 실제 캠페인을 게시하거나 수익·클릭률·밀도 최적값을 검증한 것은 아님.","언어·메뉴·광고 슬롯 PR #15를 main 1a01cb8로 병합하고 Vercel Production 성공 확인. 헤더의 언어 선택을 제거하고 MY·회원 설정에서 '기기 설정 따르기 (한국어)'처럼 읽히도록 변경. 실제 관리자 권한으로 PC 헤더·좌측 메뉴 및 모바일 MY의 광고 관리 진입과 관리자 화면을 확인함.","광고 인벤토리 3곳(홈·카테고리·혜택)을 빈 상태·조회 중·만료 후에도 예약. 내부 광고 칸은 PC 높이144px·모바일160px이며 외곽 여백32px는 별도. 공개 PC1280의 홈680×144·혜택1088×144, 공개 모바일390의 카테고리·혜택358×160 및 가로 넘침 없음 확인. 로컬320의 혜택288×160도 확인. 관리자 제목·설명 입력 미리보기728×144/343×160을 검증했고 저장하지 않음. 현재 제목·설명형만 지원하며 이미지 배너, 실제 공개 광고 승인·게재 및 3개 캠페인 전환 E2E는 미검증. 163개 자동 검사·TypeScript·변경 파일 ESLint·최적화 빌드 통과.","동일 계정의 PC 1440px·모바일 390px에서 홈 글 24개·관계 게시판 21개를 각각 재조회해 ID/순서·제목·미리보기·분류·조회·추천·댓글·저장 상태 일치 확인. 주제 12개 일치.","소개·만남 소주제 17개도 각각 재조회해 ID/순서·제목·추천·댓글 일치 확인. 전체 회원/모든 글의 전수 대조는 아님.","320~1440px 13개 폭의 이전 화면 검사 유지. 재조회 시 카드에 과거 낙관적 상태가 남는 문제 수정.","광고 관리자 공개 배포 후 실제 관리자 목록·권한 조회 확인. 등록·승인·초안·수정·중지·보관·동시 수정 방어는 격리 DB/합성 UI에서 검증했으며 실제 광고 게재·정산 검증과는 구분함.","AI 서버·영구 번역 저장소 소스 PR #6을 main에 병합. Dev 서버 상태에서 chat/search 재사용 v2 및 번역 public_translation_v4 버전·준비 상태 확인. 검색어 재사용·대화 기억 수집은 여전히 꺼져 있음.","실제 관리자 조회에서 기능별 모델 확인: 소재·검색어는 gpt-4o-mini, 대화·자율 참여·번역은 gpt-4.1-mini, 검색 답변은 gpt-5.4-mini. 공개 테스트 글 검색 1회에서 답변과 원문 링크 확인. 추출 입력1002/출력11 토큰·1806ms, 답변 입력1532/출력102 토큰·1537ms 기록 확인. 한 사례의 API 구간 측정이며 전체 품질·응답시간·월비용 검증은 아님.","같은 원문·언어 번역의 영구 저장·공동 재사용과 동시 요청 대기·저장 재시도·원문 변경 시 새 키 생성을 격리 DB/자동 검사로 확인. 제공자 응답 후 저장 전에 서버가 중단되는 경우까지 과금 1회를 보장하지는 않음.","공개 글·댓글·대화 번역은 일일 이용 횟수 제한에서 분리. 실제 Dev DB에서 기존 하루 한도를 소진한 조건으로 공개 콘텐츠 통과·임의 텍스트 제한·권한 차단 확인 후 검사 값은 모두 롤백. 새 공개 번역 생성은 IP별 분당 240회 보호가 있으며 저장된 번역 조회는 제외됨.","155개 자동 검사와 번역 정책 격리 DB 검사 통과. 웹 AI 검색의 로그인 확인 대기 중 중복 제출을 동기 잠금으로 보완. 지연된 인증 확인 동안 합성 요청20개가 생성1회만 실행하고, 이전 계정의 완료가 새 요청 잠금을 풀지 않는 경계 검사 통과. 실제 브라우저 연타 부하 전체를 검증했다는 뜻은 아님. 내려받는 QA 보고서도 화면과 같은 최신 범위·검사 수·남은 작업을 포함함.","추가 회원 QA: 가입 비밀번호 확인·표시/숨김, 로그인한 헤더에만 내 활동·글쓰기, 중복 주제 탐색 제거, 등록 후 작성 화면을 대체하는 이동과 상세 자체 뒤로가기의 목록 복귀, 추천/댓글 숫자, 댓글 공감 디자인 색상, 상세 날짜·조회수 13px을 보완. 작성 후 6시간 미만에는 상대시간도 숨기고, 6시간 이상일 때만 날짜·시:분을 표시. 비밀번호 일치·6시간 경계 실행 검사와 화면 연결 소스 검사를 포함함. 실제 신규 가입·게시글 등록을 실행한 전수 E2E 증거와는 구분함. 미리보기에서 가입 불일치 차단/수정 시 오류 해제·게시판 복귀, 공개 사이트에서 공감 선택 보라색과 원래 상태 복귀를 실제 확인함."],"pending":["Android 개발판 0.2.4: 기존 회원 QA·6시간 정책·자동 번역에 사진 선택/업로드·연결(최대4장/8MB), 24시간 계정별 암호화 초안·이탈/복구, 불확실한 등록 재전송 중단을 추가. 0.2.3의 공개 이미지 URL 오류를 발견해 비공개 버킷 서명 URL로 수정. 기존 사진 1장 서버 조회 sign200/image200·469464바이트, 옛 공개 URL400 확인. 소스25·Java 정책116·모의 게시 전송38·mock 번역32=211개 검사 통과. 빌드/정적 검사 0오류·3현지화 경고, 서명·에뮬레이터 설치/버전6 확인. 서버 조회·설치는 실제 네이티브 화면/업로드 E2E가 아님. 새 글/사진/계정 전환·회전·유료 호출은 미검증. 피드 사진·삭제·전화/탈퇴·Realtime·전체 디자인/언어·관리자·딥링크·정식 서명/스토어 등 동등성은 남음. 별도 Draft PR #5 b0aca78, 웹 배포에 APK가 자동 포함되지 않음.","iOS는 이전 회원 QA 전달문 수신을 확인함. 별도 PR #3의 4baaf1d에서 회원 QA 8개·6시간 정책·공감·227개 고정 문구, 계약 검사86개 및 2026-10-11 17:55 Xcode 빌드 성공 보고 확인. 후속 Draft PR #16 f263304에 본문/댓글 조회 실패 분리·클릭 시 입력창 표시·삭제 true 확인·댓글 UUID 응답/불확실 재전송 차단을 별도 소스로 준비했고 Node 소스 검사5개 통과. 이 후속 소스는 Swift/Xcode·화면 검증 전이며 미병합. Mac 호스트 미연결로 새 직접 전달 실패, PR에 검증 지침 저장. 최신 UI·유료 번역·실제 쓰기·Presence·전체 디자인/언어·전화·관리자·APNs·실기기 서명/스토어는 남음. Mac의 이전 빌드 보고는 후속 소스의 빌드 성공이나 Windows 실물 iOS 검증이 아니며 웹 배포가 네이티브 화면을 자동 업데이트하지 않음.","문자 인증은 시험 계정 수신 범위·발신 설정·유료 운영 전환 검토가 남아 있으며 전체 회원 대상 공개 활성화는 보류 상태임.","새 혼합 모델의 실제 응답 품질·지연·사용량 실측과 검색 캐시/대화 기억의 수집 범위·보유기간 검토 및 활성화 후 검증. 자체 모델 학습은 사용자 요청으로 뒤로 미룸.","Supabase Cron 등록·최초 성공 확인 및 보유기간 정리 운영. 실제 삭제 작업은 대상·기간을 확정해 별도 승인 후 실행해야 함. 혜택 개인정보 보유기간 관리는 AI 캐시 정리와 별도임.","광고·상담·보상 전체 실제 운영 흐름, 다중 관리자·다중 계정 쓰기, 실물 기기/브라우저별 전체 기존 QA 173개 재검증, 일 이용자 1만 명 조건의 부하·복구·백업 검증"]},"previousRoundTwo":{"title":"OpenLog 2차 QA 기록 및 공개 반영 검증","date":"2026-10-09","scope":"사용자 재테스트의 173개 항목별 결과·비고와 조치 상황입니다. 체크 표시만으로 통과 판정하지 않고 사용자 보고, 로컬 코드 검사, 실제 화면 확인, 공개 배포를 구분합니다.","deployment":"2026-10-09 웹 변경 5e5ad77을 GitHub main과 Vercel Production에 반영 완료. openlog-nine.vercel.app에서 댓글/2단계 답글의 실제 등록·접힘·새로고침 유지와 390px/1024px 화면을 검증했습니다. 로컬 확인 이력과 공개 확인을 아래에 구분합니다. Dev DB 저장 정렬 변경·번역 Edge Function·SMS 설정은 아직 적용하지 않았습니다.","counts":{"사용자 통과 보고":114,"비고 재확인":3,"미실시·부분 확인":26,"결과 미기재":12,"오류·개선·정책 검토":16,"해당 없음":2},"verification":{"automatedTests":67,"extraTests":12,"typecheck":"통과","lint":"통과 (오류/경고 없음)","build":"Vercel Production 빌드·배포 통과(5e5ad77, Ready, 48초). 로컬 Windows 빌드의 접근 권한 EPERM은 환경 문제로 별도 남아 있으며 로컬 전체 빌드 통과로 처리하지 않음.","note":"자동 검사는 단위·모의 API·소스 연결 검사이며 173개 실제 E2E 통과를 의미하지 않습니다. 이번 실제 DB A/B 권한 시험은 실행하지 않았습니다."},"browsersReported":["Chrome 155.0.8059.39 · 사용자 pass 보고","Edge 154.0.4258.62 · 사용자 pass 보고","Whale 5.39.412.57 · 사용자 pass 보고","iOS 27.0.1 / iPhone 15 Pro · 입력 시 확대 오류 보고, 나머지 정상 보고"],"actualChecks":["로컬 홈 1024×768: 기존 CSS 충돌 재현 후 사이드바/중앙 배치와 가로 넘침 없음 확인.","기존 게시글: 부모별 댓글 배치, 선택 댓글 아래 답글 입력창 및 자동 포커스 확인.","본문 클릭 후 Ctrl+A: 선택 텍스트가 본문과 일치하며 헤더/댓글은 제외됨.","390px 상세: 기존 긴 한글/영문 댓글 넘침 없음, textarea 폰트 16px 확인.","새 답글 카드: 모바일 표시 확인, PC 1024px 넘침 없음과 빈 입력 비활성/입력 후 등록 버튼 활성 확인. 시험 문구는 등록하지 않고 삭제.","댓글·답글 입력창 기본 0개, 버튼 클릭 시 1개, 다시 클릭/닫기로 0개 확인. 댓글 초안과 각 답글 초안은 전환·접기·재열기에서 따로 복원됨. 시험 문구는 지우고 등록하지 않음.","390px에서 접힘·답글 열기/닫기, 입력 폰트 16px 및 가로 넘침 없음 확인. 새로고침 후 기본 댓글 버튼 높이 42px·둥근 스타일과 접힌 상태 확인.","공개 5e5ad77: 기본 입력창 0개 → 클릭 시 1개, 닫기 및 대상별 초안 분리/복원 확인. 실제 댓글 1개와 답글 2개 등록 성공, 각각 등록 후 접힘 확인. 2단계 답글은 해당 부모 바로 다음에 배치되며 새로고침 후에도 유지.","공개 390px: 답글 입력창 1개, 폰트 16px, 가로 넘침 없음. 공개 1024px: 게시판 사이드바 표시와 가로 넘침 없음. 내장 Chromium 에뮬레이션이며 실제 iPhone/Safari 시험과 다름.","공개 기존 목록 복귀 주소의 관계/솔로 유지, 글쓰기의 관계/솔로 자동 선택 확인. 검증 구간 브라우저 error 로그 없음. QA 패널 최신 기록/이전 기록 분리 표시 확인."],"additions":[{"id":"A1","item":"선택 댓글 바로 아래 답글창 + 세련된 UI","status":"공개 반영·실제 등록 검증","evidence":"기본은 댓글/답글 달기 버튼만 표시. 클릭한 위치에 폼 하나만 열고 다시 누르거나 닫으면 접힘. 대상별 초안 분리/복원, 공개 댓글/답글/2단계 답글 등록·등록 후 접힘·새로고침 유지, PC/390px 화면 확인. 서버 실패 주입과 2계정 권한 시험은 별도로 남음."},{"id":"A2","item":"장문 번역이 10배로 늘어나는 현상","status":"방어 코드·단위 검사 통과, 서버 배포 대기","evidence":"클라이언트와 서버의 신규/캐시 번역에 길이·반복 검증 추가. 비정상 출력은 잘라서 보여주지 않고 원문으로 유지. 실제 문제 원문/서버 응답 원인 검증과 번역 품질 평가는 남음."},{"id":"A3","item":"한국어 설정에서 영어 자동 번역","status":"정책 유지·검토 필요","evidence":"기기/사용자 선택 언어로 외국어 내용을 자동 번역하는 기존 요청 유지. 원문 보기 및 실패 시 재시도 제공. 원문 기본 표시로 일괄 변경하지 않음."},{"id":"A4","item":"세로 첨부 이미지 잘림","status":"로컬 CSS 보완·실제 이미지 재검증 필요","evidence":"object-fit:cover 대신 contain, height:auto로 원본 비율 보존. 모든 세로/가로/다중 이미지 실검증은 남음."},{"id":"A5","item":"최근 저장한 순서로 목록 정렬","status":"DB 마이그레이션 준비, 미적용","evidence":"202610090001_saved_post_order.sql 준비. 현재 함수 정의를 보존하며 자신의 저장 시각 기준으로 페이징 전 정렬. 예상 정렬 패턴이 다르면 실행 중단. 실제 Dev 적용/A-B/페이지 경계 시험은 남음."},{"id":"A6","item":"본문만 Ctrl+A 선택","status":"로컬 실제 화면 확인","evidence":"본문이 포커스일 때만 Ctrl/Meta+A 범위를 본문 텍스트로 제한. 입력창과 나머지 페이지의 기본 전체 선택은 유지."}],"priorities":["P0: #127~134 권한 영역은 사용자 기록이 비어 있음. #87/88 타인 댓글 수정·삭제, #78 응답 개인정보, #43 숨김 노출도 실제 역할별 서버 요청 재검증 필요.","#17 전체 화면의 문구 현지화 및 일본어/중국어 실제 번역 응답 확인은 남음.","댓글·답글·2단계 답글 공개 등록 시험은 완료. 2계정 권한/동기화, 실제 댓글 API 차단/오프라인 재검증, 아이폰 Safari 키보드 시험은 남음.","저장 정렬 마이그레이션과 번역 Edge Function은 아직 미배포. 원본 프로젝트는 그대로 유지.","회원 인증/SMS 설정은 변경하지 않음. Twilio Trial의 1개 기존 이메일 계정 번호 인증 확인 기록과 공개 SMS UI OFF 상태를 유지."],"items":[{"id":1,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"페이지 최초 접속 시 오류 없이 화면이 표시된다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":2,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"새로고침해도 정상적으로 화면이 표시된다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":3,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"OPENLOG 로고 클릭 시 홈으로 이동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":4,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"헤더가 깨지거나 요소가 겹치지 않는다.","result":"ㅇ","note":"깨지거나 겹치지는 않으나 배치가 일정하지 않는 부분 있음(번호인증/선택)","userStatus":"비고 재확인","action":"헤더 버튼을 inline-flex 중앙 정렬로 보완. 인증 완료 계정에서는 선택 번호 인증 버튼이 숨겨져 해당 버튼의 실제 화면 재검증은 남음."},{"id":5,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"좌측 메뉴 / 중앙 피드 / 우측 사이드바가 정상 배치된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":6,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"긴 제목이나 긴 닉네임이 레이아웃을 깨뜨리지 않는다.","result":"긴 텍스트가 ui를 벗어남, 영어는 제목은 ui를 벗어나나 본문은 정상, 한글은 제목은 정상 본문이 ui를 벗어남.","note":"긴 닉네임 테스트 미실시","userStatus":"미실시·부분 확인","action":"제목·카드·본문 줄바꿈 보완. 기존 장문 댓글의 1024/390px 가로 넘침 없음 확인. 모든 언어의 긴 제목·닉네임 실검증은 남음."},{"id":7,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"게시글이 0개일 때 빈 화면이 아닌 적절한 안내 문구가 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":8,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"게시글이 많아져도 레이아웃이 깨지지 않는다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":9,"mark":"!","section":"1. 기본 화면 / 레이아웃","item":"로딩 중 화면이 이상하게 깜빡이거나 이전 상태가 순간적으로 나타나지 않는다.","result":"게시판 탭 이동 시 ui 흔들림 발견.","note":"느린 네트워크에서도 확인 미실시","userStatus":"미실시·부분 확인","action":"피드 최소 높이를 보완. 모든 게시판 이동과 Slow 3G의 깜빡임/CLS 수치 검사는 아직 미실시."},{"id":10,"mark":"ㅇ","section":"1. 기본 화면 / 레이아웃","item":"버튼의 hover / 클릭 / 활성 상태가 사용자에게 명확하게 구분된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":11,"mark":"ㅇ","section":"2. 상단 헤더","item":"주제 탐색 버튼이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":12,"mark":"ㅇ","section":"2. 상단 헤더","item":"검색창에 정상적으로 입력할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":13,"mark":"ㅇ","section":"2. 상단 헤더","item":"Enter 또는 검색 동작으로 검색이 실행된다.","result":"엔터 입력 시 바로 ai 검색으로 진행되는 것에 대해 생각해봐야 할수도 있음","note":"","userStatus":"오류·개선·정책 검토","action":"검색 기본 동작 변경하지 않음. AI 검색 우선/키워드 검색 우선은 제품 정책 결정 사항."},{"id":14,"mark":"ㅇ","section":"2. 상단 헤더","item":"존재하는 게시글 제목을 검색했을 때 정확한 결과가 나온다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":15,"mark":"ㅇ","section":"2. 상단 헤더","item":"존재하지 않는 검색어를 입력했을 때 검색 결과 없음 상태가 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":16,"mark":"!","section":"2. 상단 헤더","item":"검색 후 검색어를 제거하면 전체 목록으로 정상 복귀한다.","result":"검색 기능 사용 시 별도의 페이지로 넘어가기에 테스트 무의미.","note":"","userStatus":"미실시·부분 확인","action":"현재 /search의 AI/키워드 모드별 검색어 지우기·정렬·뒤로가기 시험으로 체크리스트를 대체해야 함. 이전 경로 기준 시험은 통과로 계산하지 않음."},{"id":17,"mark":"!","section":"2. 상단 헤더","item":"언어 설정 버튼이 정상 작동한다.","result":"로그아웃/번호인증및선택/카테고리/소분류/인기글/최신글/댓글 많은 글/주제둘러보기/최근대화 ui 번역 안됨. 대화창열기/오늘의투표는 박스 내 모든 텍스트가 번역되지 않음. 댓글은 번역되지 않는 것 같음(댓글 관련 모든 기능의 번역이 진행되지 않음). 메인 페이지 외에서는 번역이 진행되지 않는 것으로 확인.","note":"언어별로 게시글 번역 차이가 있음. 영어는 95% 번역하나 타 언어들은 거의 번역되지 않는 것으로 확인.","userStatus":"오류·개선·정책 검토","action":"로그아웃·선택 번호 인증·게시판 레벨 표시·조회/댓글·답글 입력창·원문/번역 버튼의 한영일중 문구 보완. 전체 카테고리명·투표·대화창·설정 화면 문구와 일본어/중국어 실제 번역 서버 응답은 미완료."},{"id":18,"mark":"ㅇ","section":"2. 상단 헤더","item":"로그인한 사용자 정보가 올바르게 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":19,"mark":"ㅇ","section":"2. 상단 헤더","item":"로그아웃 버튼이 정상 작동한다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":20,"mark":"ㅇ","section":"2. 상단 헤더","item":"로그아웃 후 로그인 전용 페이지 및 기능에 접근할 수 없다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":21,"mark":"ㅇ","section":"2. 상단 헤더","item":"글쓰기 버튼 클릭 시 정상적으로 글쓰기 화면으로 이동한다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":22,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"전체 글 선택 시 전체 게시글이 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":23,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"인기 글 선택 시 인기 기준 게시물이 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":24,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"최신 글 선택 시 최신순으로 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":25,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"실시간 대화 클릭 시 해당 기능이 정상 열린다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":26,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"현재 선택된 메뉴가 시각적으로 명확하게 구분된다.","result":"ㅇ","note":"메인 페이지에서 현재 게시판의 위치가 전체/인기/최신 중 어디인지 명확하게 표시되면 좋을 것 같음.(카테고리 게시판에서 소분류 게시판 표시를 가져오면 좋을 것 같음)","userStatus":"비고 재확인","action":"홈 › 전체/인기/최신/댓글 많은 글/개인 목록 위치 표시 추가. 홈 위치 표시는 로컬 화면 확인."},{"id":27,"mark":"!","section":"3. 좌측 메뉴","item":"내가 쓴 글에는 실제 로그인 사용자가 작성한 글만 표시된다. P1","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":28,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"저장한 글에는 해당 사용자가 저장한 글만 표시된다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":29,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"저장 취소한 게시글은 저장한 글 목록에서 제거된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":30,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"알림함에 정상 접근할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":31,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"회원 설정에 정상 접근할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":32,"mark":"ㅇ","section":"3. 좌측 메뉴","item":"일반 사용자에게 관리자 메뉴가 노출되지 않는다. P0","result":"ㅇ","note":"모바일 미실시","userStatus":"미실시·부분 확인","action":""},{"id":33,"mark":"!","section":"3. 좌측 메뉴","item":"관리자 계정에서는 관리자 메뉴가 정상 노출된다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":34,"mark":"!","section":"4. 중앙 게시글 피드","item":"게시글 제목이 정확하게 표시된다.","result":"이전 테스트 결과와 같이 긴 제목과 본문에서 ui를 벗어나는 경우 발견.","note":"","userStatus":"오류·개선·정책 검토","action":"피드와 상세 제목에 overflow-wrap:anywhere 및 min-width:0 적용. 영어 장문 제목의 실제 화면 재검증 필요."},{"id":35,"mark":"!","section":"4. 중앙 게시글 피드","item":"게시글 요약문이 정확하게 표시된다.","result":"이전 테스트 결과와 같이 긴 제목과 본문에서 ui를 벗어나는 경우 발견.","note":"","userStatus":"오류·개선·정책 검토","action":"카드·요약·본문의 너비 및 줄바꿈 보완. 모든 장문/언어 조합 화면 재검증 필요."},{"id":36,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"카테고리 / 주제 표시가 실제 게시글 데이터와 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":37,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"작성자 표시가 현재 확정된 익명/닉네임 정책에 맞게 나온다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":38,"mark":"!","section":"4. 중앙 게시글 피드","item":"조회수 표시가 실제 데이터와 일치한다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":39,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"추천수가 실제 데이터와 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":40,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"댓글수가 실제 공개 댓글 개수와 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":41,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"최신 글 정렬이 created_at 기준으로 정확하다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":42,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"게시글 클릭 시 해당 게시글 상세 페이지로 이동한다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":43,"mark":"ㅇ","section":"4. 중앙 게시글 피드","item":"삭제 또는 숨김 처리된 게시물이 일반 사용자에게 표시되지 않는다. P0","result":"ㅇ","note":"숨김 테스트 미실시","userStatus":"미실시·부분 확인","action":""},{"id":44,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"전체 탭이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":45,"mark":"!","section":"5. 피드 상단 탭","item":"인기 탭의 정렬 기준이 현재 확정된 인기 알고리즘과 일치한다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":46,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"최신 탭이 최신 작성순으로 정렬된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":47,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"댓글 많은 글이 댓글수 기준으로 정상 정렬된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":48,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"탭을 빠르게 연속 변경해도 게시글이 중복되거나 데이터가 꼬이지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":49,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"탭 변경 시 선택 상태가 정확하게 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":50,"mark":"ㅇ","section":"5. 피드 상단 탭","item":"탭 변경 도중 이전 API 요청 결과가 뒤늦게 나타나 현재 선택 상태를 덮어쓰지 않는다.","result":"ㅇ","note":"느린 네트워크에서 테스트 미실시","userStatus":"미실시·부분 확인","action":""},{"id":51,"mark":"ㅇ","section":"6. 글쓰기","item":"로그인 사용자만 글쓰기가 가능하다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":52,"mark":"ㅇ","section":"6. 글쓰기","item":"제목 입력이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":53,"mark":"ㅇ","section":"6. 글쓰기","item":"본문 입력이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":54,"mark":"ㅇ","section":"6. 글쓰기","item":"카테고리 / 소분류 선택이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":55,"mark":"ㅇ","section":"6. 글쓰기","item":"익명/닉네임 작성 방식이 현재 제품 정책대로 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":56,"mark":"ㅇ","section":"6. 글쓰기","item":"제목 없이 등록할 경우 적절한 오류가 표시되고 글이 생성되지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":57,"mark":"ㅇ","section":"6. 글쓰기","item":"본문 없이 등록할 경우 적절한 오류가 표시되고 글이 생성되지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":58,"mark":"ㅇ","section":"6. 글쓰기","item":"공백만 입력한 제목/본문으로 글을 등록할 수 없다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":59,"mark":"ㅇ","section":"6. 글쓰기","item":"정상 입력 후 게시글 등록이 성공한다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":60,"mark":"ㅇ","section":"6. 글쓰기","item":"등록 직후 피드에 새 게시물이 나타난다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":61,"mark":"ㅇ","section":"6. 글쓰기","item":"등록 버튼을 빠르게 여러 번 눌러도 게시글이 중복 생성되지 않는다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":62,"mark":"!","section":"6. 글쓰기","item":"등록 실패 시 기존 작성 내용이 전부 사라지지 않는다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":63,"mark":"!","section":"6. 글쓰기","item":"매우 긴 제목 입력 시 제한이 정상 동작한다.","result":"태스트 미실시","note":"정책 확인 필요","userStatus":"미실시·부분 확인","action":"현재 UI 제목 120자, DB create_post 제한은 유지. 120/121자 직접 요청 시험과 운영 정책 확정은 남음."},{"id":64,"mark":"ㅇ","section":"6. 글쓰기","item":"매우 긴 본문 입력 시 정상 처리된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":65,"mark":"ㅇ","section":"6. 글쓰기","item":"<script> 등 HTML/스크립트 문자열을 입력해도 실제 코드가 실행되지 않는다. P0","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":66,"mark":"ㅇ","section":"7. 게시글 상세","item":"목록에서 선택한 게시글과 상세 화면의 내용이 동일하다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":67,"mark":"ㅇ","section":"7. 게시글 상세","item":"제목 / 본문 / 작성자 / 작성일 및 시각이 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":68,"mark":"ㅇ","section":"7. 게시글 상세","item":"게시글 조회 시 조회수가 정상 증가한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":69,"mark":"ㅇ","section":"7. 게시글 상세","item":"새로고침에 따른 조회수 정책이 의도대로 작동한다.","result":"다른 브라우저, 시크릿 모드 시 조회수 정상 작동","note":"날짜당 1회는 테스트 미실시","userStatus":"미실시·부분 확인","action":""},{"id":70,"mark":"ㅇ","section":"7. 게시글 상세","item":"조회수 증가만으로 게시글 updated_at이 변경되지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":71,"mark":"","section":"7. 게시글 상세","item":"삭제된 게시글 URL 접근 시 적절한 화면이 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":72,"mark":"ㅇ","section":"7. 게시글 상세","item":"존재하지 않는 게시글 URL 접근 시 404 또는 적절한 안내가 나온다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":73,"mark":"ㅇ","section":"8. 익명 시스템","item":"익명 게시글의 작성자가 올바르게 익명 처리된다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":74,"mark":"ㅇ","section":"8. 익명 시스템","item":"게시글 작성자가 자기 글에 댓글을 달면 같은 익명 번호를 유지한다.","result":"ㅇ","note":"다른 계정으로 첫 댓글 달았을 때 익명 정책이 제대로 작동하는지는 테스트 미실시","userStatus":"미실시·부분 확인","action":""},{"id":75,"mark":"!","section":"8. 익명 시스템","item":"다른 사용자가 같은 글에 댓글을 달면 다른 익명 번호가 부여된다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":76,"mark":"ㅇ","section":"8. 익명 시스템","item":"같은 사용자가 같은 게시글에 여러 댓글을 달아도 동일 익명 번호가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":77,"mark":"!","section":"8. 익명 시스템","item":"같은 사용자가 다른 게시글에 참여했을 때 익명 번호가 새롭게 결정된다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":78,"mark":"ㅇ","section":"8. 익명 시스템","item":"익명 사용자의 실제 닉네임이 API 또는 UI에 노출되지 않는다. P0","result":"ㅇ","note":"네트워크 응답 테스트 미실시","userStatus":"미실시·부분 확인","action":""},{"id":79,"mark":"ㅇ","section":"8. 익명 시스템","item":"닉네임 댓글 기능을 제공한다면 작성 당시 닉네임이 정상 표시된다.","result":"N/A","note":"","userStatus":"해당 없음","action":""},{"id":80,"mark":"ㅇ","section":"8. 익명 시스템","item":"닉네임 변경 후 과거 게시물 표시가 제품 정책대로 유지된다.","result":"N/A","note":"","userStatus":"해당 없음","action":""},{"id":81,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"댓글 작성이 정상 작동한다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":82,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"댓글 작성 직후 댓글수가 증가한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":83,"mark":"!","section":"9. 댓글 / 답글","item":"답글 작성이 정상 작동한다.","result":"답글 작성 시 지정한 댓글에 답글이 달리는 것이 아닌 마지막으로 작성된 댓글에 답글이 달리는 것으로 확인.","note":"","userStatus":"오류·개선·정책 검토","action":"공개 5e5ad77에 부모 우선 정렬과 클릭 시 입력창 적용. 실제 새 답글이 지정한 부모 바로 다음에 표시되고, 등록 후 입력창 접힘 및 새로고침 유지 확인. 2계정 시험은 남음."},{"id":84,"mark":"!","section":"9. 댓글 / 답글","item":"답글 대상이 [익명N] 등 의도한 방식으로 정확히 표시된다.","result":"","note":"","userStatus":"결과 미기재","action":"공개 실제 신규 답글과 2단계 답글에서 부모의 익명2 표시 확인. 새 답글 작성자도 같은 계정의 익명2 유지. A/B 다른 계정 조합은 남음."},{"id":85,"mark":"!","section":"9. 댓글 / 답글","item":"여러 단계 답글 작성이 가능하다.","result":"1단계까지만 작성됨.","note":"","userStatus":"오류·개선·정책 검토","action":"공개 사이트에서 답글에 다시 답글을 실제 등록해 2단계 배치(24px 들여쓰기), 부모 바로 뒤 표시와 새로고침 유지 확인. 3단계 이후 들여쓰기는 제한해 모바일 폭 보존. 더 깊은 단계·다른 계정 조합은 남음."},{"id":86,"mark":"!","section":"9. 댓글 / 답글","item":"댓글 작성자가 정확하게 표시된다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":87,"mark":"!","section":"9. 댓글 / 답글","item":"다른 사용자의 댓글을 수정할 수 없다. P0","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":88,"mark":"!","section":"9. 댓글 / 답글","item":"다른 사용자의 댓글을 삭제할 수 없다. P0","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":89,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"자기 댓글 수정 및 삭제가 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":90,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"삭제 댓글 처리 방식이 UI 정책과 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":91,"mark":"!","section":"9. 댓글 / 답글","item":"매우 긴 댓글이 UI 영역 밖으로 빠져나가지 않는다.","result":"글자수 제한을 둬야될 것 같음.","note":"","userStatus":"오류·개선·정책 검토","action":"기존 서버/입력창 1,000자 제한 유지, 현재 글자 수 표시 추가. 기존 1,000자 안팎 긴 영문/한글 댓글 390/1024px에서 넘침 없음 확인."},{"id":92,"mark":"ㅇ","section":"9. 댓글 / 답글","item":"댓글 등록 버튼을 빠르게 여러 번 눌러도 중복 댓글이 생성되지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":93,"mark":"ㅇ","section":"10. 추천","item":"추천 버튼 클릭 시 추천수가 +1 된다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":94,"mark":"ㅇ","section":"10. 추천","item":"다시 클릭하면 추천이 취소되고 추천수가 -1 된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":95,"mark":"ㅇ","section":"10. 추천","item":"새로고침 후에도 추천 상태가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":96,"mark":"ㅇ","section":"10. 추천","item":"다른 사용자에게도 전체 추천수가 동일하게 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":97,"mark":"ㅇ","section":"10. 추천","item":"개인의 추천 여부만 사용자별로 다르게 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":98,"mark":"ㅇ","section":"10. 추천","item":"같은 사용자가 한 게시글을 여러 번 추천할 수 없다. P1","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":99,"mark":"ㅇ","section":"10. 추천","item":"비로그인 사용자의 추천 정책이 의도대로 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":100,"mark":"ㅇ","section":"11. 저장","item":"저장 버튼 클릭 시 저장 상태가 변경된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":101,"mark":"ㅇ","section":"11. 저장","item":"새로고침 후에도 저장 상태가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":102,"mark":"ㅇ","section":"11. 저장","item":"저장 취소가 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":103,"mark":"ㅇ","section":"11. 저장","item":"저장한 글 페이지에 저장한 게시물이 나타난다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":104,"mark":"ㅇ","section":"11. 저장","item":"다른 사용자의 저장 여부 또는 저장 목록을 볼 수 없다. P0","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":105,"mark":"ㅇ","section":"12. 주제 탐색","item":"각각의 주제 클릭이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":106,"mark":"ㅇ","section":"12. 주제 탐색","item":"선택한 주제의 게시글만 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":107,"mark":"ㅇ","section":"12. 주제 탐색","item":"다른 주제로 변경했을 때 이전 필터가 잘못 남아 있지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":108,"mark":"ㅇ","section":"12. 주제 탐색","item":"게시글이 없는 주제에서는 적절한 빈 상태가 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":109,"mark":"ㅇ","section":"12. 주제 탐색","item":"전체 보기가 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":110,"mark":"!","section":"12. 주제 탐색","item":"비활성화된 주제가 일반 사용자에게 노출되지 않는다.","result":"해당 기능 없음","note":"","userStatus":"오류·개선·정책 검토","action":"기능이 없는 것이 아니라 categories/subcategories의 is_active와 서버 공개 조회의 활성 조건이 이미 존재함. 비활성 게시판 실제 일반 계정 UI/직접 URL 재검증은 남음."},{"id":111,"mark":"ㅇ","section":"13. 오늘의 투표","item":"투표 항목을 선택할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":112,"mark":"ㅇ","section":"13. 오늘의 투표","item":"투표 동작이 정상 작동한다.","result":"ㅇ","note":"별도로 정확한 결과 확인은 미실시","userStatus":"미실시·부분 확인","action":""},{"id":113,"mark":"ㅇ","section":"13. 오늘의 투표","item":"동일 계정의 중복 투표 정책이 정상 적용된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":114,"mark":"ㅇ","section":"13. 오늘의 투표","item":"투표 완료 후 결과가 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":115,"mark":"ㅇ","section":"13. 오늘의 투표","item":"새로고침 후에도 사용자의 투표 상태가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":116,"mark":"ㅇ","section":"13. 오늘의 투표","item":"투표 종료 후 추가 투표가 차단된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":117,"mark":"!","section":"13. 오늘의 투표","item":"현재 활성 투표가 없을 때 UI가 깨지지 않는다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":118,"mark":"ㅇ","section":"14. 실시간 대화","item":"실시간 대화 버튼이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":119,"mark":"ㅇ","section":"14. 실시간 대화","item":"대화창 열기 / 닫기가 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":120,"mark":"ㅇ","section":"14. 실시간 대화","item":"메시지 작성이 정상 작동한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":121,"mark":"ㅇ","section":"14. 실시간 대화","item":"다른 계정에서 작성한 메시지가 정상적으로 보인다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":122,"mark":"ㅇ","section":"14. 실시간 대화","item":"연속 메시지 작성 시 표시 순서가 정확하다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":123,"mark":"ㅇ","section":"14. 실시간 대화","item":"최근 대화 목록이 실제 대화 기록과 일치한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":124,"mark":"ㅇ","section":"14. 실시간 대화","item":"새 메시지가 발생하면 최신 대화 목록이 정상 갱신된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":125,"mark":"ㅇ","section":"14. 실시간 대화","item":"빈 메시지를 전송할 수 없다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":126,"mark":"ㅇ","section":"14. 실시간 대화","item":"긴 메시지가 UI 밖으로 빠져나가지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":127,"mark":"","section":"15. 회원 / 권한","item":"비로그인 사용자가 공개 게시글을 볼 수 있다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":128,"mark":"","section":"15. 회원 / 권한","item":"비로그인 상태에서 제한 기능 접근 시 적절한 로그인 안내가 나온다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":129,"mark":"","section":"15. 회원 / 권한","item":"User A가 User B의 데이터를 수정할 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":130,"mark":"","section":"15. 회원 / 권한","item":"User A가 User B의 저장 목록을 볼 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":131,"mark":"","section":"15. 회원 / 권한","item":"User A가 User B의 비공개 사용자 정보를 볼 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":132,"mark":"","section":"15. 회원 / 권한","item":"일반 사용자가 관리자 기능을 실행할 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":133,"mark":"","section":"15. 회원 / 권한","item":"일반 사용자나 비로그인 사용자가 /admin URL을 직접 입력해도 관리자 페이지 접근이 차단된다. P0","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":134,"mark":"","section":"15. 회원 / 권한","item":"로그아웃된 세션으로 보호된 API 요청을 실행할 수 없다. P0","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":135,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"게시글 상세 → 뒤로가기 시 기존 피드 상태로 정상 복귀한다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":136,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"필터 적용 → 상세 → 뒤로가기 시 기존 필터가 유지된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":137,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"게시글 상세 페이지에서 새로고침해도 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":138,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"글쓰기 페이지에서 새로고침해도 오류가 발생하지 않는다.","result":"ㅇ","note":"글쓰기 들어가서 카테고리/소분류 변경 후 새로 고침할 경우에는 유지되지 않음. 새로 고침 시 [작성한 내용 저장되지 않음] 경고 표시되도록 개선.","userStatus":"비고 재확인","action":"작성 내용/이미지가 있으면 새로고침·창 종료 beforeunload 경고 등록, 등록 성공 후 해제. 브라우저가 경고 문구를 결정함. SPA 내부 이동 경고와 초안 자동 저장/선택 복원은 추가하지 않음."},{"id":139,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"URL을 직접 입력해서 특정 게시글에 접근할 수 있다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":140,"mark":"ㅇ","section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","item":"존재하지 않는 URL은 정상적인 404 화면을 보여준다.","result":"","note":"설명을 좀 더 자세하게 변경(현재 '게시글을 불러오지 못했습니다.'라고 출력되는데 설명이 부족한 것 같음.)","userStatus":"오류·개선·정책 검토","action":"삭제·숨김·접근 불가와 네트워크 조회 실패 안내를 구분하도록 상세 문구 보완. 모든 404 경로는 이번에 실검증하지 않음."},{"id":141,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"1920×1080 환경에서 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":142,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"2560×1440 환경에서 정상 표시된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":143,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"3840×2160 환경에서 콘텐츠가 지나치게 작거나 벌어져 보이지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":144,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"실제 브라우저 확대율 125%에서도 UI가 깨지지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":145,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"실제 브라우저 확대율 150%에서도 주요 기능을 사용할 수 있다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":146,"mark":"!","section":"17. 반응형 / 화면 크기","item":"작은 노트북 해상도에서 좌우 요소가 겹치지 않는다.","result":"1024×768에서 레이아웃 깨짐","note":"","userStatus":"오류·개선·정책 검토","action":"1024px CSS에서 sidebar display:none과 170px 열 배치 충돌 발견·수정. 로컬 홈 1024×768에서 사이드바 표시, 중앙 너비 775px, 가로 넘침 없음 확인."},{"id":147,"mark":"ㅇ","section":"17. 반응형 / 화면 크기","item":"모바일 환경에서 불필요한 가로 스크롤이 발생하지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":148,"mark":"!","section":"17. 반응형 / 화면 크기","item":"모바일 메뉴에 정상적으로 접근할 수 있다.","result":"모바일 화면 검토 필요","note":"","userStatus":"오류·개선·정책 검토","action":"390px 상세 화면에서 하단 메뉴·글쓰기 링크·답글 입력 표시 확인. 일반 회원/비로그인/관리자 모바일 메뉴 4상태 비교는 남음."},{"id":149,"mark":"!","section":"17. 반응형 / 화면 크기","item":"실제 모바일 기기에서 글쓰기 및 댓글 입력이 정상 작동한다.","result":"미실시","note":"","userStatus":"미실시·부분 확인","action":""},{"id":150,"mark":"ㅇ","section":"18. 실제 브라우저 테스트","item":"Chrome","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":151,"mark":"ㅇ","section":"18. 실제 브라우저 테스트","item":"Microsoft Edge","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":152,"mark":"ㅇ","section":"18. 실제 브라우저 테스트","item":"Naver Whale","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":153,"mark":"d","section":"18. 실제 브라우저 테스트","item":"Safari / iPhone Safari","result":"텍스트 입력 시 화면 확대됨. 나머지 정상 작동.","note":"","userStatus":"오류·개선·정책 검토","action":"모바일 input/textarea/select 16px 적용, 사용자 확대 기능은 차단하지 않음. Chromium 390px 입력 폰트 16px 확인. iPhone Safari 실기기 자동 확대/키보드 재검증 필요."},{"id":154,"mark":"ㅇ","section":"18. 실제 브라우저 테스트","item":"브라우저를 바꿔도 로그인/게시글/저장 목록/권한 등 서비스 동작에 비정상적인 차이가 없다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":155,"mark":"ㅇ","section":"19. UI / 디자인","item":"좌우 카드의 border / radius 규칙이 일관된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":156,"mark":"ㅇ","section":"19. UI / 디자인","item":"같은 역할의 텍스트는 폰트 크기와 굵기가 일관된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":157,"mark":"!","section":"19. UI / 디자인","item":"메뉴 아이콘 크기와 정렬이 일정하다.","result":"헤더 번호인증/선택 버튼 정렬 수정 필요. 주제탐색, ai검색, 검색버튼(돋보기) 정렬 수정 필요.","note":"","userStatus":"오류·개선·정책 검토","action":"헤더 버튼 중앙 정렬 및 중간 폭 두 줄 배치 보완. 홈 1024px 배치 확인. 선택 번호 인증 링크 및 모든 언어 조합 정렬은 추가 검증 필요."},{"id":158,"mark":"ㅇ","section":"19. UI / 디자인","item":"선택된 메뉴/탭의 색상 규칙이 일관된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":159,"mark":"!","section":"19. UI / 디자인","item":"클릭 가능한 요소와 단순 텍스트가 시각적으로 구분된다.","result":"","note":"","userStatus":"결과 미기재","action":""},{"id":160,"mark":"ㅇ","section":"19. UI / 디자인","item":"회색 텍스트의 명암이 너무 낮지 않아 읽기 어렵지 않다.","result":"","note":"WCAG 대비 미확인","userStatus":"미실시·부분 확인","action":""},{"id":161,"mark":"ㅇ","section":"19. UI / 디자인","item":"버튼 크기와 padding이 페이지별로 일관된다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":162,"mark":"ㅇ","section":"19. UI / 디자인","item":"특정 해상도에서 지나치게 많은 빈 공간이 발생하지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":163,"mark":"ㅇ","section":"19. UI / 디자인","item":"큰 화면에서 콘텐츠가 화면 상단 중앙에 지나치게 작게 모여 보이지 않는다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":164,"mark":"ㅇ","section":"19. UI / 디자인","item":"게시글 사이 구분선과 간격이 일정하다.","result":"ㅇ","note":"","userStatus":"사용자 통과 보고","action":""},{"id":165,"mark":"!","section":"19. UI / 디자인","item":"긴 한국어 / 영어가 섞인 문자열에서도 레이아웃이 깨지지 않는다.","result":"긴 텍스트가 ui를 벗어남, 영어는 제목은 ui를 벗어나나 본문은 정상, 한글은 제목은 정상 본문이 ui를 벗어남.","note":"","userStatus":"오류·개선·정책 검토","action":"텍스트 너비와 줄바꿈 보완. 기존 긴 댓글 가로 넘침 없음 확인. 혼합 장문 제목·닉네임 전체 조합은 남음."},{"id":166,"mark":"!","section":"20. 오류 / 예외 상황","item":"인터넷 연결을 끊은 상태에서 적절한 오류가 표시된다.","result":"로그인 상태에서 Offline 전환 후 글 등록 시 로그인이 필요합니다 표시. 오류 안내 부정확","note":"","userStatus":"오류·개선·정책 검토","action":"글쓰기/댓글/추천/저장의 getUser 네트워크 실패를 로그인 필요와 구분하도록 보완. 오프라인·503·401·세션 없음 단위 검사 통과. 실제 브라우저 Offline 전환 재검증은 남음."},{"id":167,"mark":"!","section":"20. 오류 / 예외 상황","item":"Supabase 요청 실패 시 페이지 전체가 빈 화면이 되지 않는다.","result":"get_public_posts, get_chat_messages_with_ai, toggle_comment_like, get_comment_like_state, get_post_attachments 정상 작동. get_public_comments API 요청 차단 시 게시글 상세 페이지 진입에 실패하며, 게시글을 불러오지 못했습니다.라는 오류가 표시됨.","note":"","userStatus":"오류·개선·정책 검토","action":"본문을 먼저 표시하고 댓글/첨부 조회를 독립 처리. 댓글 실패 안내·재시도와 실패 시 기존 댓글 보존 추가. 소스 연결 검사 및 정상 본문/댓글 로컬 확인. 실제 get_public_comments 차단 주입은 아직 미실시."},{"id":168,"mark":"ㅇ","section":"20. 오류 / 예외 상황","item":"게시글 등록 실패 시 사용자에게 적절한 이유/실패 메시지를 보여준다.","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":169,"mark":"ㅇ","section":"20. 오류 / 예외 상황","item":"댓글 등록 실패 시 기존 입력 내용이 유지된다.","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":170,"mark":"","section":"20. 오류 / 예외 상황","item":"API 응답이 느려도 중복 요청이나 중복 데이터가 발생하지 않는다.","result":"pass","note":"검색은 방식이 달라 테스트 미적합.","userStatus":"미실시·부분 확인","action":"댓글 제출 동기 잠금 추가. 검색은 AI/키워드 각각 느린 응답·취소·후속 입력 시험으로 교체해야 함."},{"id":171,"mark":"ㅇ","section":"20. 오류 / 예외 상황","item":"빠르게 여러 버튼을 연속 클릭해도 데이터가 꼬이지 않는다.","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":172,"mark":"d","section":"20. 오류 / 예외 상황","item":"로그인 세션이 만료됐을 때 적절하게 재로그인을 유도한다.","result":"pass","note":"","userStatus":"사용자 통과 보고","action":""},{"id":173,"mark":"!","section":"20. 오류 / 예외 상황","item":"DB 응답에 예상하지 못한 null 값이 포함되어도 페이지 전체가 죽지 않는다.","result":"","note":"테스트 미실시","userStatus":"미실시·부분 확인","action":"모든 DB 필드에 null을 주입하는 시험은 미실시. nullable 부모·순환 댓글과 잘못된 번역 반환 단위 검사만 이번 통과."}]},"previousReport":{"title":"OpenLog 전체 테스트 인수인계","date":"2026-10-06","site":"https://openlog-nine.vercel.app","scope":"173개 전수 분류. 모든 항목이 실제 테스트 통과라는 뜻이 아닙니다.","originalPreserved":true,"qaEnvironment":"OpenLog Dev / 내장 Chromium","databaseTests":{"passed":43,"total":43,"rollback":true,"fixtureRowsLeft":0,"groups":[{"name":"계정·익명·기본 기능","passed":38,"total":38},{"name":"조회 가시성 수정 후","passed":5,"total":5}]},"automatedTests":{"passed":44,"total":44,"kind":"단위·모의 API·소스 회귀 검사, 실제 전체 E2E 검사와 별개"},"build":"lint·타입 검사·프로덕션 빌드 통과","fixes":["게시글에서 기존 게시판·소분류·정렬로 돌아가기","카테고리·소분류 개별 링크와 현재 게시판 글쓰기 자동 선택","추천·저장·공감 활성 색상 및 작성 시각 표시","저장 0개 안내, 익명 정책 안내, 일반 계정 관리자 메뉴 숨김","키워드 초기화 시 전체 글 복귀, 검색 안 정렬 유지","내 글·저장 목록에서 일반 인기 카드/탭 제거","이미지 실패 후 본문 중복 등록 방지와 등록된 글 이동","알림 조회 실패 표시·재시도, 로그아웃 시 개인 알림 지우기","주요 메뉴 한·영·일·중 번역, 이전 내용 번역 오표시·저장소 오류 보완","구형 채팅·첨부 조회의 비활성 게시판 필터 보완","검색 원문에서 돌아올 때 키워드 방식·검색어·정렬 메모리 복원 보완"],"warnings":["실제 Chrome·Edge·Whale·Safari 및 휴대폰 키보드 테스트 미완료","회원가입→실제 메일 수신→인증→로그인, 실제 2계정 화면 동기화 추가 필요","선택형 휴대폰 문자 인증의 화면·연동 코드 준비. 문자 공급자 연결·실제 수신 검증은 미완료. PASS 본인확인 아님","인터넷·Supabase 장애 주입, 느린 네트워크·동시 요청 테스트 추가 필요","닉네임 공개 선택 정책과 인기 알고리즘 확정 필요","사이트 전체 문구 다국어화는 일부만 완료","실제 OpenAI 장시간 자동 참여·번역 품질·월 예산 검증 별도 필요"],"optionalPhoneVerification":{"title":"추가 준비 · 선택형 휴대폰 문자 인증","status":"화면·연동 코드 준비 / 실제 문자 발송 대기","description":"회원 설정에서 원하는 회원만 번호 인증을 진행합니다. 일반 회원가입·글쓰기·댓글·채팅은 인증 없이 이용할 수 있습니다. PASS·통신사 선택·이름·생년월일 입력은 없습니다. 기존 173개 통과 수에 합산하지 않습니다.","prepared":"010 번호 정규화, 선택 동의, 코드 6자리 확인, 60초 재전송 대기, 연타 잠금, 계정 변경 시 입력 삭제, 서버의 인증 번호·계정 재확인, 번호 마스킹, 오류 안내. 공급자 미연결 시 발송 비활성.","pending":["문자 서비스·발신 번호·서버 요청 한도 및 남용 방지 설정","실제 사용 서비스와 일치하는 개인정보 처리 안내 확정","본인 번호로 문자 수신·오입력·만료·재전송·재로그인 검증","SMS 공급자 비밀값 서버 등록 후 발송 UI 활성화·재배포"]},"counts":{"화면 통과":56,"부분 확인":48,"사용자 확인":29,"미재검증":6,"정책·미구현":5,"서버 통과":29},"items":[{"id":1,"section":"1. 기본 화면 / 레이아웃","mark":"ㅇ","item":"페이지 최초 접속 시 오류 없이 화면이 표시된다. P0","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":2,"section":"1. 기본 화면 / 레이아웃","mark":"ㅇ","item":"새로고침해도 정상적으로 화면이 표시된다. P0","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":3,"section":"1. 기본 화면 / 레이아웃","mark":"ㅇ","item":"OPENLOG 로고 클릭 시 홈으로 이동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":4,"section":"1. 기본 화면 / 레이아웃","mark":"","item":"헤더가 깨지거나 요소가 겹치지 않는다.","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":5,"section":"1. 기본 화면 / 레이아웃","mark":"ㅇ","item":"좌측 메뉴 / 중앙 피드 / 우측 사이드바가 정상 배치된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":6,"section":"1. 기본 화면 / 레이아웃","mark":"제목 ㅇ","item":"긴 제목이나 긴 닉네임이 레이아웃을 깨뜨리지 않는다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":7,"section":"1. 기본 화면 / 레이아웃","mark":"ㅇ","item":"게시글이 0개일 때 빈 화면이 아닌 안내 문구가 표시된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":8,"section":"1. 기본 화면 / 레이아웃","mark":"ㅇ","item":"게시글이 많아져도 레이아웃이 깨지지 않는다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":9,"section":"1. 기본 화면 / 레이아웃","mark":"?","item":"로딩 중 화면이 이상하게 깜빡이지 않는다.","status":"부분 확인","original_status":"uncertain","evidence":"초기 세션/검색 복원 결과가 뒤늦게 사용자 선택을 덮는 경합을 발견해, 사용자가 방식·입력을 바꾸면 이전 복원을 무효화하도록 보완했습니다. 모든 해상도·지연 상황의 깜빡임 검증은 남았습니다."},{"id":10,"section":"1. 기본 화면 / 레이아웃","mark":"ㅇ","item":"버튼 hover / 클릭 상태가 사용자에게 구분된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":11,"section":"2. 상단 헤더","mark":"ㅇ","item":"주제 탐색 버튼이 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":12,"section":"2. 상단 헤더","mark":"ㅇ","item":"검색창에 입력할 수 있다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"실제 검색 입력란에 ‘콩물’을 입력했습니다."},{"id":13,"section":"2. 상단 헤더","mark":"ㅇ","item":"Enter 또는 검색 동작으로 검색된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"실제 키워드 검색 버튼 및 Enter 입력으로 ‘콩물’ 검색을 실행해 해당 게시글을 확인했습니다."},{"id":14,"section":"2. 상단 헤더","mark":"ㅇ","item":"존재하는 게시글 제목 검색 결과가 정확하게 나온다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"실제 ‘콩물’ 키워드로 해당 제목의 요리 글 1개를 확인했습니다."},{"id":15,"section":"2. 상단 헤더","mark":"ㅇ","item":"존재하지 않는 검색어 입력 시 결과 없음 상태가 표시된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":16,"section":"2. 상단 헤더","mark":"x","item":"검색 후 검색어를 지우면 전체 목록으로 정상 복귀한다.","status":"화면 통과","original_status":"reported_failure","evidence":"배포 후 키워드를 지우면 전체 공개 글 19개로 복귀. 검색 안 최신 정렬을 눌러도 /search를 유지했습니다."},{"id":17,"section":"2. 상단 헤더","mark":"!","item":"언어 설정 버튼이 정상 작동한다. - 게시글만 번역되고 메뉴/댓글은 번역되지 않음","status":"부분 확인","original_status":"retest_or_reported_issue","evidence":"주요 PC·모바일 메뉴에 한·영·일·중 번역을 추가했습니다. 댓글 자동 번역은 기존 연결됨. 모든 화면 문구와 실제 다국어 휴대폰 검증은 아직 완료하지 않았습니다."},{"id":18,"section":"2. 상단 헤더","mark":"ㅇ","item":"로그인한 사용자 정보가 올바르게 표시된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":19,"section":"2. 상단 헤더","mark":"ㅇ","item":"로그아웃 버튼이 정상 작동한다. P0","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":20,"section":"2. 상단 헤더","mark":"ㅇ","item":"로그아웃 후 로그인 전용 페이지/기능 접근이 차단된다. P0","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":21,"section":"2. 상단 헤더","mark":"ㅇ","item":"글쓰기 버튼 클릭 시 글쓰기 화면으로 이동한다. P1","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":22,"section":"3. 좌측 메뉴","mark":"ㅇ","item":"전체 글 선택 시 전체 게시글이 표시된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":23,"section":"3. 좌측 메뉴","mark":"ㅇ","item":"인기 글 선택 시 인기 기준 게시물이 표시된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":24,"section":"3. 좌측 메뉴","mark":"ㅇ","item":"최신 글 선택 시 최신순으로 표시된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":25,"section":"3. 좌측 메뉴","mark":"ㅇ","item":"실시간 대화 클릭 시 해당 기능이 정상 열린다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":26,"section":"3. 좌측 메뉴","mark":"!","item":"현재 선택된 메뉴가 시각적으로 구분된다. - 아직 직관적이지 않음","status":"화면 통과","original_status":"retest_or_reported_issue","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":27,"section":"3. 좌측 메뉴","mark":"ㅇ","item":"내가 쓴 글에는 실제 로그인 사용자의 글만 표시된다. P1","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":28,"section":"3. 좌측 메뉴","mark":"!","item":"저장한 글에는 사용자가 저장한 글만 표시된다. P1 - 작동은 하나, 저장한 글이 없을 시 [로그인 후 내가 쓴 글과 저장한 글을 확인할 수 있습니다.]라고 표시된다. 아마, 작성 글이 없을 때에도 동일할 것 같음.","status":"화면 통과","original_status":"retest_or_reported_issue","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":29,"section":"3. 좌측 메뉴","mark":"ㅇ","item":"저장 취소한 글은 저장 목록에서 제거된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":30,"section":"3. 좌측 메뉴","mark":"","item":"알림함 접근이 정상 작동한다.","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":31,"section":"3. 좌측 메뉴","mark":"ㅇ","item":"회원 설정 접근이 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":32,"section":"3. 좌측 메뉴","mark":"!","item":"일반 사용자에게 관리자 메뉴가 노출되지 않는지 확인한다. P0","status":"미재검증","original_status":"retest_or_reported_issue","evidence":"원본 체크리스트 분류만 완료. 현재 배포 버전에서 재현·검증 필요."},{"id":33,"section":"3. 좌측 메뉴","mark":"!","item":"관리자 계정에서는 관리자 메뉴가 정상 노출된다.","status":"화면 통과","original_status":"retest_or_reported_issue","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":34,"section":"4. 중앙 게시글 피드","mark":"ㅇ","item":"게시글 제목이 정확하게 표시된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":35,"section":"4. 중앙 게시글 피드","mark":"ㅇ","item":"게시글 요약문이 정확하게 표시된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":36,"section":"4. 중앙 게시글 피드","mark":"ㅇ","item":"카테고리/주제 표시가 정확하다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":37,"section":"4. 중앙 게시글 피드","mark":"!","item":"작성자 표시가 익명/닉네임 설정에 맞게 나온다. P1","status":"정책·미구현","original_status":"retest_or_reported_issue","evidence":"현재 공개 글·댓글은 익명 고정. 닉네임 표시 입력은 제거했으며 기존 저장값은 보존했습니다. 선택형 공개 닉네임 정책은 미확정입니다."},{"id":38,"section":"4. 중앙 게시글 피드","mark":"!","item":"조회수 표시가 실제 데이터와 일치한다.","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":39,"section":"4. 중앙 게시글 피드","mark":"!","item":"추천수가 실제 데이터와 일치한다.","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":40,"section":"4. 중앙 게시글 피드","mark":"ㅇ","item":"댓글수가 실제 댓글 개수와 일치한다.","status":"서버 통과","original_status":"user_reported_pass","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":41,"section":"4. 중앙 게시글 피드","mark":"!","item":"최신 글 정렬이 created_at 기준으로 정확하다.","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":42,"section":"4. 중앙 게시글 피드","mark":"ㅇ","item":"게시글 클릭 시 해당 게시글 상세 페이지로 이동한다. P1","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":43,"section":"4. 중앙 게시글 피드","mark":"!","item":"삭제/숨김 처리된 게시물이 일반 사용자에게 표시되지 않는다. P0 - 삭제 정상 작동. 숨김 미테스트","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":44,"section":"5. 피드 상단 탭","mark":"ㅇ","item":"전체 탭이 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":45,"section":"5. 피드 상단 탭","mark":"!","item":"인기 탭의 정렬 기준이 의도한 기준과 일치한다.","status":"정책·미구현","original_status":"retest_or_reported_issue","evidence":"현재 인기 점수는 추천 수 + 공개 댓글 수×1.2, 동점은 작성 시각 순입니다. 운영자의 원하는 알고리즘과 일치하는지 확인이 남습니다."},{"id":46,"section":"5. 피드 상단 탭","mark":"ㅇ","item":"최신 탭이 최신 작성순으로 정렬된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":47,"section":"5. 피드 상단 탭","mark":"ㅇ","item":"댓글 많은 글이 댓글수 기준으로 정상 정렬된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":48,"section":"5. 피드 상단 탭","mark":"ㅇ","item":"탭을 연속해서 변경해도 중복 데이터가 생기지 않는다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":49,"section":"5. 피드 상단 탭","mark":"ㅇ","item":"탭을 변경했을 때 선택 상태가 정확하게 표시된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":50,"section":"5. 피드 상단 탭","mark":"ㅇ","item":"탭 변경 도중 이전 요청 결과가 뒤늦게 나타나는 현상이 없다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":51,"section":"6. 글쓰기","mark":"ㅇ","item":"로그인 사용자만 글쓰기가 가능하다. P0","status":"서버 통과","original_status":"user_reported_pass","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":52,"section":"6. 글쓰기","mark":"ㅇ","item":"제목 입력이 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"실제 글쓰기 제목 입력값 확인."},{"id":53,"section":"6. 글쓰기","mark":"ㅇ","item":"본문 입력이 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"실제 본문 입력값 확인."},{"id":54,"section":"6. 글쓰기","mark":"ㅇ","item":"카테고리 선택이 정상 작동한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":55,"section":"6. 글쓰기","mark":"!","item":"익명/닉네임 작성 방식을 선택할 수 있다.","status":"정책·미구현","original_status":"retest_or_reported_issue","evidence":"익명/닉네임 선택은 현재 미구현입니다. 과거 익명 작성자를 공개하지 않고 정책 확정 뒤 신규 글부터 적용해야 합니다."},{"id":56,"section":"6. 글쓰기","mark":"ㅇ","item":"제목 없이 등록할 경우 적절한 오류가 나온다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"제목 없이 등록 → ‘제목을 입력해주세요’ 표시, DB 작성 안 됨."},{"id":57,"section":"6. 글쓰기","mark":"ㅇ","item":"본문 없이 등록할 경우 적절한 오류가 나온다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"제목만 입력 후 등록 → ‘내용을 입력해주세요’ 표시, 제목 입력 보존."},{"id":58,"section":"6. 글쓰기","mark":"ㅇ","item":"공백만 입력한 글이 등록되지 않는다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"공백 제목으로 등록 → 거부, 작성 중 본문 입력 보존."},{"id":59,"section":"6. 글쓰기","mark":"ㅇ","item":"정상 입력 후 게시글 등록이 성공한다. P0","status":"서버 통과","original_status":"user_reported_pass","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":60,"section":"6. 글쓰기","mark":"ㅇ","item":"등록 직후 피드에 게시물이 나타난다. P1","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":61,"section":"6. 글쓰기","mark":"ㅇ","item":"동일 버튼을 빠르게 여러 번 눌러 글이 중복 등록되지 않는다. P1","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":62,"section":"6. 글쓰기","mark":"!","item":"등록 실패 시 작성 내용이 전부 사라지지 않는다.","status":"부분 확인","original_status":"retest_or_reported_issue","evidence":"입력 내용 유지 코드를 확인하고, 본문 저장 후 이미지 실패가 발생하면 재등록을 막고 등록된 글 링크를 제공합니다. 실제 업로드 장애 재현은 남았습니다. 실제 빈 제목/본문/공백 검증 실패 후 기존 입력 보존도 확인했습니다."},{"id":63,"section":"6. 글쓰기","mark":"ㅇ","item":"매우 긴 제목 입력 시 제한이 정상 동작한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":64,"section":"6. 글쓰기","mark":"ㅇ","item":"매우 긴 본문 입력 시 정상 처리된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":65,"section":"6. 글쓰기","mark":"!","item":"<script> 등 HTML/스크립트 문자를 입력해도 실행되지 않는다. P0","status":"부분 확인","original_status":"retest_or_reported_issue","evidence":"DB는 script 문자를 그대로 보존. UI는 React 텍스트 렌더링, src에 dangerouslySetInnerHTML 없음. 실제 공격 문자열 화면 실행 검사 추가 필요."},{"id":66,"section":"7. 게시글 상세","mark":"ㅇ","item":"목록에서 선택한 게시글과 상세 내용이 동일하다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":67,"section":"7. 게시글 상세","mark":"!","item":"제목 / 본문 / 작성자 / 작성일이 정상 표시된다. - 작성일 까지만 표시되는데 시간도 표시되어야 할 것 같음.","status":"화면 통과","original_status":"retest_or_reported_issue","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":68,"section":"7. 게시글 상세","mark":"ㅇ","item":"조회 시 조회수가 정상 증가한다.","status":"서버 통과","original_status":"user_reported_pass","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":69,"section":"7. 게시글 상세","mark":"!","item":"새로고침에 따른 조회수 정책이 의도대로 동작한다. -  정책 확인 필요","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"서버 검증: 게시글·브라우저 식별자·DB 날짜당 조회 1회. 새로고침으로 같은 날 중복 증가하지 않습니다. 사람당 1회 인증이 아니라 브라우저 기반입니다."},{"id":70,"section":"7. 게시글 상세","mark":"!","item":"조회수 증가 때문에 게시글 updated_at이 변경되지 않는다. -  정책 확인 필요","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"조회수만 변경할 때 updated_at을 바꾸지 않는 실제 트리거와 결과를 확인했습니다."},{"id":71,"section":"7. 게시글 상세","mark":"ㅇ","item":"삭제된 게시글 접근 시 적절한 화면이 표시된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":72,"section":"7. 게시글 상세","mark":"ㅇ","item":"존재하지 않는 게시글 URL 접근 시 404 또는 적절한 안내가 나온다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"없는 UUID 게시글 주소에서 ‘게시글을 찾을 수 없습니다’ 안내 실제 확인."},{"id":73,"section":"8. 익명 시스템","mark":"","item":"익명 게시글의 작성자가 올바르게 익명 처리된다. P1","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":74,"section":"8. 익명 시스템","mark":"","item":"게시글 작성자가 자기 글에 댓글을 달면 동일한 익명 번호를 유지한다.","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":75,"section":"8. 익명 시스템","mark":"","item":"다른 사용자가 댓글을 달면 다른 익명 번호가 부여된다.","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":76,"section":"8. 익명 시스템","mark":"","item":"같은 사용자가 같은 게시글에 여러 댓글을 달아도 익명 번호가 유지된다.","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":77,"section":"8. 익명 시스템","mark":"","item":"다른 게시글에서는 익명 번호가 새롭게 결정된다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":78,"section":"8. 익명 시스템","mark":"","item":"익명 사용자의 실제 닉네임이 API/UI에서 노출되지 않는다. P0","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":79,"section":"8. 익명 시스템","mark":"","item":"닉네임 모드 댓글은 작성 당시 닉네임이 표시된다.","status":"정책·미구현","original_status":"not_tested","evidence":"현재 UI는 익명 고정이므로 닉네임 댓글 모드는 제공하지 않습니다."},{"id":80,"section":"8. 익명 시스템","mark":"","item":"이후 닉네임을 변경해도 과거 게시물 표시 정책이 의도대로 유지된다.","status":"정책·미구현","original_status":"not_tested","evidence":"기존 닉네임 값은 보존. 현재 익명 고정. 닉네임 변경/과거 표시 정책은 미확정입니다."},{"id":81,"section":"9. 댓글 / 답글","mark":"ㅇ","item":"댓글 작성이 정상 작동한다. P1","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":82,"section":"9. 댓글 / 답글","mark":"ㅇ","item":"작성 직후 댓글수가 증가한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":83,"section":"9. 댓글 / 답글","mark":"ㅇ","item":"답글 작성이 정상 작동한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":84,"section":"9. 댓글 / 답글","mark":"!","item":"답글 대상이 [익명N] 등 의도한 방식으로 표시된다. ","status":"부분 확인","original_status":"retest_or_reported_issue","evidence":"중첩 parent_id는 서버에서 통과. 답글 대상 익명 표시의 여러 단계 실제 화면 확인은 남았습니다."},{"id":85,"section":"9. 댓글 / 답글","mark":"!","item":"여러 단계 답글 작성이 가능하다.","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":86,"section":"9. 댓글 / 답글","mark":"!","item":"댓글 작성자가 정확하게 표시된다.","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":87,"section":"9. 댓글 / 답글","mark":"ㅇ","item":"다른 사용자 댓글을 수정할 수 없다. P0","status":"서버 통과","original_status":"user_reported_pass","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":88,"section":"9. 댓글 / 답글","mark":"ㅇ","item":"다른 사용자 댓글을 삭제할 수 없다. P0","status":"서버 통과","original_status":"user_reported_pass","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":89,"section":"9. 댓글 / 답글","mark":"ㅇ","item":"자기 댓글 수정/삭제가 정상 작동한다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"본인 댓글 수정은 DB에서 통과. 본인 삭제·삭제 안내 화면은 현재 버전에서 추가 검증 필요."},{"id":90,"section":"9. 댓글 / 답글","mark":"ㅇ","item":"삭제 댓글 처리 방식이 UI 정책과 일치한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":91,"section":"9. 댓글 / 답글","mark":"!","item":"매우 긴 댓글이 UI를 깨뜨리지 않는다. - ui 밖으로 빠져나감","status":"화면 통과","original_status":"retest_or_reported_issue","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":92,"section":"9. 댓글 / 답글","mark":"ㅇ","item":"빠르게 여러 번 등록해 댓글이 중복 생성되지 않는다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":93,"section":"10. 추천","mark":"ㅇ","item":"추천 버튼 클릭 시 추천수가 +1 된다. P1","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":94,"section":"10. 추천","mark":"ㅇ","item":"다시 클릭하면 추천이 취소된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":95,"section":"10. 추천","mark":"ㅇ","item":"새로고침 후에도 추천 상태가 유지된다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":96,"section":"10. 추천","mark":"ㅇ","item":"다른 사용자에게도 전체 추천수가 동일하게 표시된다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":97,"section":"10. 추천","mark":"ㅇ","item":"사용자의 추천 여부만 사용자별로 다르게 표시된다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":98,"section":"10. 추천","mark":"ㅇ","item":"같은 사용자가 한 게시글을 여러 번 추천할 수 없다. P1","status":"서버 통과","original_status":"user_reported_pass","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":99,"section":"10. 추천","mark":"ㅇ","item":"비로그인 사용자의 추천 정책이 의도대로 작동한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":100,"section":"11. 저장","mark":"ㅇ","item":"저장 버튼 클릭 시 저장 상태가 변경된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":101,"section":"11. 저장","mark":"ㅇ","item":"새로고침 후 저장 상태가 유지된다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":102,"section":"11. 저장","mark":"ㅇ","item":"저장 취소가 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":103,"section":"11. 저장","mark":"ㅇ","item":"저장한 글 페이지에 해당 게시물이 나타난다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":104,"section":"11. 저장","mark":"!","item":"다른 사용자의 저장 여부를 볼 수 없다. P0","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":105,"section":"12. 주제 탐색","mark":"ㅇ","item":"각각의 주제 클릭이 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":106,"section":"12. 주제 탐색","mark":"ㅇ","item":"선택한 주제의 게시글만 나온다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":107,"section":"12. 주제 탐색","mark":"ㅇ","item":"다른 주제로 변경했을 때 이전 필터가 잘못 남지 않는다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":108,"section":"12. 주제 탐색","mark":"ㅇ","item":"게시글이 없는 주제의 빈 상태가 정상 표시된다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":109,"section":"12. 주제 탐색","mark":"ㅇ","item":"전체 보기가 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":110,"section":"12. 주제 탐색","mark":"!","item":"비활성화된 주제가 사용자에게 노출되지 않는다.","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":111,"section":"13. 오늘의 투표","mark":"ㅇ","item":"투표 항목을 선택할 수 있다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":112,"section":"13. 오늘의 투표","mark":"ㅇ","item":"투표 버튼/선택 동작이 정상 작동한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":113,"section":"13. 오늘의 투표","mark":"ㅇ","item":"동일 계정의 중복 투표 정책이 정상 적용된다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":114,"section":"13. 오늘의 투표","mark":"ㅇ","item":"투표 완료 후 결과가 정상 표시된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":115,"section":"13. 오늘의 투표","mark":"ㅇ","item":"새로고침해도 투표 상태가 유지된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":116,"section":"13. 오늘의 투표","mark":"!","item":"투표 종료 시 추가 투표가 차단된다.","status":"서버 통과","original_status":"retest_or_reported_issue","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":117,"section":"13. 오늘의 투표","mark":"!","item":"투표 데이터가 없는 경우 UI가 깨지지 않는다.","status":"부분 확인","original_status":"retest_or_reported_issue","evidence":"투표 없음일 때 PollCard가 null을 반환하므로 영역을 숨깁니다. 실제 무투표 상태 전환 및 오류 메시지 검증은 남았습니다."},{"id":118,"section":"14. 실시간 대화","mark":"ㅇ","item":"실시간 대화 버튼이 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":119,"section":"14. 실시간 대화","mark":"ㅇ","item":"대화창 열기/닫기가 정상 작동한다.","status":"화면 통과","original_status":"user_reported_pass","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":120,"section":"14. 실시간 대화","mark":"ㅇ","item":"메시지 작성이 정상 작동한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":121,"section":"14. 실시간 대화","mark":"ㅇ","item":"다른 계정에서 메시지가 정상적으로 보인다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":122,"section":"14. 실시간 대화","mark":"ㅇ","item":"연속 메시지 작성 시 순서가 정확하다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":123,"section":"14. 실시간 대화","mark":"ㅇ","item":"최근 대화 목록이 실제 대화 기록과 일치한다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":124,"section":"14. 실시간 대화","mark":"ㅇ","item":"새 메시지가 발생하면 최신 대화가 갱신된다.","status":"사용자 확인","original_status":"user_reported_pass","evidence":"사용자 원본 기록의 통과 표시. 이번 전체 점검에서 직접 재검증한 것과 구분합니다."},{"id":125,"section":"14. 실시간 대화","mark":"ㅇ","item":"빈 메시지를 전송할 수 없다.","status":"부분 확인","original_status":"user_reported_pass","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":126,"section":"14. 실시간 대화","mark":"!","item":"긴 메시지가 UI를 깨뜨리지 않는다. - ui 밖으로 뚫고 나감","status":"부분 확인","original_status":"retest_or_reported_issue","evidence":"줄바꿈 CSS와 기존 실제 채팅 메시지의 가로 넘침 없음은 확인. 최대 500자 메시지의 실전송 화면은 미검증입니다."},{"id":127,"section":"15. 회원 / 권한","mark":"","item":"비로그인 사용자가 공개 게시글을 볼 수 있다.","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":128,"section":"15. 회원 / 권한","mark":"","item":"비로그인 상태에서 제한 기능 접근 시 로그인 안내가 나온다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":129,"section":"15. 회원 / 권한","mark":"","item":"User A가 User B의 데이터를 수정할 수 없다. P0","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":130,"section":"15. 회원 / 권한","mark":"","item":"User A가 User B의 저장 목록을 볼 수 없다. P0","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":131,"section":"15. 회원 / 권한","mark":"","item":"User A가 User B의 비공개 사용자 정보를 볼 수 없다. P0","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":132,"section":"15. 회원 / 권한","mark":"","item":"일반 사용자가 관리자 기능을 실행할 수 없다. P0","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":133,"section":"15. 회원 / 권한","mark":"","item":"URL을 직접 입력해 관리자 페이지에 접근해도 차단된다. P0","status":"부분 확인","original_status":"not_tested","evidence":"관리자 RPC는 일반 계정을 거부. /admin 직접 접근의 일반·게스트 브라우저 화면은 재로그인 필요."},{"id":134,"section":"15. 회원 / 권한","mark":"","item":"로그아웃된 세션으로 API 요청 시 보호된 작업이 차단된다. P0","status":"서버 통과","original_status":"not_tested","evidence":"OpenLog Dev 실제 DB 역할 A·B·anon, rollback 검사 또는 실제 서버 조회. 브라우저 2계정 테스트를 대신한 표시는 아닙니다."},{"id":135,"section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","mark":"","item":"게시글 → 뒤로가기 시 기존 피드 상태가 정상적으로 돌아온다.","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":136,"section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","mark":"","item":"필터 적용 → 상세 → 뒤로가기 시 필터가 유지된다.","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":137,"section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","mark":"","item":"상세 페이지에서 새로고침해도 정상 표시된다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":138,"section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","mark":"","item":"글쓰기 페이지에서 새로고침해도 오류가 없다.","status":"화면 통과","original_status":"not_tested","evidence":"글쓰기 새로고침 후 오류 없이 폼 표시, 음식·맛집/요리 선택 유지. 새로고침 초안 복원은 제공하지 않습니다."},{"id":139,"section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","mark":"","item":"URL을 직접 입력해서 게시글에 접근할 수 있다.","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":140,"section":"16. 뒤로가기 / 새로고침 / 직접 URL 접근","mark":"","item":"존재하지 않는 URL은 정상적인 404 화면을 보여준다.","status":"화면 통과","original_status":"not_tested","evidence":"없는 경로에서 실제 404/This page could not be found 화면 확인."},{"id":141,"section":"17. 반응형 / 화면 크기","mark":"","item":"1920×1080에서 정상 표시","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":142,"section":"17. 반응형 / 화면 크기","mark":"","item":"2560×1440에서 정상 표시","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":143,"section":"17. 반응형 / 화면 크기","mark":"","item":"3840×2160에서 콘텐츠가 지나치게 작거나 벌어지지 않음","status":"부분 확인","original_status":"not_tested","evidence":"3840×2160에서 가로 넘침 없고 콘텐츠 폭 1340px 유지. 화면 중앙의 여백·글자 크기에 대한 최종 디자인 판단은 남았습니다."},{"id":144,"section":"17. 반응형 / 화면 크기","mark":"","item":"브라우저 125% 확대에서 깨지지 않음","status":"부분 확인","original_status":"not_tested","evidence":"실제 브라우저 125% 확대는 실행하지 않았습니다. 해상도 에뮬레이션과 확대는 서로 다른 검사입니다."},{"id":145,"section":"17. 반응형 / 화면 크기","mark":"","item":"브라우저 150% 확대에서 주요 기능 사용 가능","status":"부분 확인","original_status":"not_tested","evidence":"실제 브라우저 150% 확대는 실행하지 않았습니다."},{"id":146,"section":"17. 반응형 / 화면 크기","mark":"","item":"작은 노트북 해상도에서 좌우 요소가 겹치지 않음","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":147,"section":"17. 반응형 / 화면 크기","mark":"","item":"모바일 환경에서 가로 스크롤이 발생하지 않음","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":148,"section":"17. 반응형 / 화면 크기","mark":"","item":"모바일 메뉴 접근이 가능함","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":149,"section":"17. 반응형 / 화면 크기","mark":"","item":"모바일에서 글쓰기/댓글 입력이 정상 작동함","status":"부분 확인","original_status":"not_tested","evidence":"390px 작성·댓글 입력 배치 확인. 실제 휴대폰 키보드/등록 흐름은 미검증입니다."},{"id":150,"section":"18. 브라우저","mark":"","item":"Chrome","status":"미재검증","original_status":"not_tested","evidence":"Codex 내장 Chromium에서 확인했습니다. 별도 Chrome 앱은 테스트하지 않았습니다."},{"id":151,"section":"18. 브라우저","mark":"","item":"Edge","status":"미재검증","original_status":"not_tested","evidence":"실제 Edge 앱 테스트 미실행."},{"id":152,"section":"18. 브라우저","mark":"","item":"Whale","status":"미재검증","original_status":"not_tested","evidence":"실제 Whale 앱 테스트 미실행."},{"id":153,"section":"18. 브라우저","mark":"","item":"Safari 또는 iPhone Safari","status":"미재검증","original_status":"not_tested","evidence":"실제 Safari/iPhone Safari 테스트 미실행."},{"id":154,"section":"18. 브라우저","mark":"","item":"브라우저를 바꿔도 로그인/게시글 기능에 차이가 없음","status":"미재검증","original_status":"not_tested","evidence":"브라우저 간 로그인·쓰기 동등성 확인은 남았습니다."},{"id":155,"section":"19. UI / 디자인","mark":"","item":"좌우 카드의 border / radius가 일관된다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":156,"section":"19. UI / 디자인","mark":"","item":"폰트 크기와 두께가 같은 역할끼리 일관된다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":157,"section":"19. UI / 디자인","mark":"","item":"메뉴 아이콘 크기가 일정하다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":158,"section":"19. UI / 디자인","mark":"","item":"선택 메뉴 색상 규칙이 일관된다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":159,"section":"19. UI / 디자인","mark":"","item":"클릭 가능한 요소와 단순 텍스트가 구분된다.","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":160,"section":"19. UI / 디자인","mark":"","item":"회색 텍스트의 명암이 너무 낮지 않다.","status":"부분 확인","original_status":"not_tested","evidence":"색상 대비의 전 화면 측정·접근성 검사는 남았습니다."},{"id":161,"section":"19. UI / 디자인","mark":"","item":"버튼 크기와 padding이 페이지별로 일관된다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":162,"section":"19. UI / 디자인","mark":"","item":"빈 공간이 지나치게 많이 발생하는 해상도가 없는지 확인한다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":163,"section":"19. UI / 디자인","mark":"","item":"콘텐츠가 화면 상단에 지나치게 작게 모여 보이지 않는지 확인한다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":164,"section":"19. UI / 디자인","mark":"","item":"게시글 사이 구분선 간격이 일정하다.","status":"화면 통과","original_status":"not_tested","evidence":"배포된 사이트 실제 화면·클릭 또는 이전 연속 점검에서 확인. 내장 Chromium PC/390px 기준이며 별도 모바일 기기가 아닙니다."},{"id":165,"section":"19. UI / 디자인","mark":"","item":"긴 한국어 / 영어가 섞여도 레이아웃이 깨지지 않는다.","status":"부분 확인","original_status":"not_tested","evidence":"관련 코드/일부 흐름은 확인했습니다. 실패 재현 또는 전체 시나리오 검증이 남았습니다."},{"id":166,"section":"20. 오류 / 예외 상황","mark":"","item":"인터넷 연결을 끊은 상태에서 적절한 오류가 나온다.","status":"부분 확인","original_status":"not_tested","evidence":"인터넷 차단을 실제로 재현하지 않았습니다."},{"id":167,"section":"20. 오류 / 예외 상황","mark":"","item":"Supabase 요청 실패 시 빈 화면이 되지 않는다.","status":"부분 확인","original_status":"not_tested","evidence":"피드·상세의 오류 안내 코드, 알림 실패/재시도 메시지 보완. 실제 Supabase 장애 주입 테스트는 미실행."},{"id":168,"section":"20. 오류 / 예외 상황","mark":"","item":"게시글 등록 실패 시 사용자에게 이유를 알려준다.","status":"부분 확인","original_status":"not_tested","evidence":"글쓰기 입력 오류 안내와 서버 실패 메시지 코드 확인. 서버 장애 주입은 미실행."},{"id":169,"section":"20. 오류 / 예외 상황","mark":"","item":"댓글 등록 실패 시 기존 입력 내용이 유지된다.","status":"부분 확인","original_status":"not_tested","evidence":"댓글 실패에서 입력을 지우지 않는 코드. 실제 장애 재현은 미실행."},{"id":170,"section":"20. 오류 / 예외 상황","mark":"","item":"API 응답이 느려도 중복 요청이 발생하지 않는다.","status":"부분 확인","original_status":"not_tested","evidence":"동시 요청 방지/버전 가드는 코드·회귀 검사. 느린 네트워크 주입과 전 기능 동시성 테스트는 미실행."},{"id":171,"section":"20. 오류 / 예외 상황","mark":"","item":"빠르게 여러 버튼을 눌러도 데이터가 꼬이지 않는다.","status":"부분 확인","original_status":"not_tested","evidence":"모든 버튼의 무작위 연타/데이터 일관성 스트레스 테스트는 미실행."},{"id":172,"section":"20. 오류 / 예외 상황","mark":"","item":"로그인 세션 만료 시 적절하게 재로그인을 유도한다.","status":"부분 확인","original_status":"not_tested","evidence":"알림 SIGNED_OUT 정리와 인증 RPC 차단 확인. 실제 토큰 만료 화면은 미검증."},{"id":173,"section":"20. 오류 / 예외 상황","mark":"","item":"DB에 예상하지 못한 null 값이 있어도 페이지 전체가 죽지 않는다.","status":"부분 확인","original_status":"not_tested","evidence":"특정 응답 파서 null/형식 검증만 통과. 전 DB 필드 null 주입 검사는 미실행."}]}}