Files
CODE_ASSISTANT/specs/005-chat-image-input/spec.md
T
2026-09-16 17:22:14 +09:00

3.4 KiB

기능 명세: 채팅 이미지 입력

사용자 시나리오 및 테스트

사용자 스토리 1 - 캡쳐 이미지로 질문 (P1)

사용자는 화면 캡쳐 이미지를 새 대화에 첨부하고, 텍스트 없이도 이미지 내용을 바탕으로 답변을 받을 수 있다.

독립 테스트: 캡쳐 이미지 한 장만 첨부해 전송하면 새 세션이 만들어지고 이미지가 포함된 질문이 처리된다.

사용자 스토리 2 - 클립보드 이미지로 질문 (P1)

사용자는 새 대화나 기존 대화에서 클립보드 이미지를 붙여 질문할 수 있다.

독립 테스트: PNG, JPEG 또는 WebP 이미지를 클립보드에서 붙이면 썸네일이 보이고 전송 요청에 포함된다.

사용자 스토리 3 - 잘못된 첨부를 전송 전에 확인 (P2)

사용자는 허용되지 않는 형식이나 크기의 이미지를 선택했을 때 즉시 이유를 확인하고 질문 내용을 잃지 않는다.

독립 테스트: 제한을 넘는 첨부를 시도하면 전송되지 않고 안내가 표시되며 기존 입력과 첨부가 남는다.

요구사항

  • FR-001: 화면 캡쳐 이미지를 새 대화의 첨부로 전송할 수 있어야 한다.
  • FR-002: 클립보드의 PNG, JPEG, WebP 이미지를 새 대화와 기존 대화에 첨부할 수 있어야 한다.
  • FR-003: 텍스트 또는 이미지 중 하나만 있어도 전송할 수 있어야 한다.
  • FR-004: 이미지는 최대 4장, 한 장당 5 MiB, 전체 15 MiB까지만 허용해야 한다.
  • FR-005: 전송 전 각 이미지의 썸네일을 보여주고 개별 삭제할 수 있어야 한다.
  • FR-006: 이미지 형식이나 크기 제한을 넘으면 이유를 알려주고 현재 입력을 보존해야 한다.
  • FR-007: 전송이 성공적으로 시작된 뒤에만 입력과 첨부를 비워야 한다.
  • FR-008: 이미지가 없는 기존 텍스트 전용 전송 동작을 유지해야 한다.
  • FR-009: 저장된 과거 대화에는 이미지 원본이나 복원 가능한 썸네일을 표시하지 않아야 한다.

주요 데이터

  • 이미지 첨부: 지원 형식, 인코딩된 본문, 원본 크기로 이루어진 일회성 입력이다.
  • 작성 중 질문: 입력 텍스트, 접힌 텍스트 첨부, 이미지 첨부의 묶음이다.

성공 기준

  • SC-001: 사용자가 캡쳐 또는 클립보드 이미지로 3번 이내의 동작을 거쳐 질문을 보낼 수 있다.
  • SC-002: 텍스트 없이 지원 이미지 한 장만 첨부한 질문이 정상 처리된다.
  • SC-003: 제한을 넘는 이미지는 서버 요청 전에 모두 차단되고 입력 손실이 없다.
  • SC-004: 기존 텍스트 전용 채팅 테스트가 모두 통과한다.

예외 상황

  • 같은 이미지가 여러 번 들어오면 각각 별도 첨부로 취급한다.
  • 전송 중에는 새 첨부와 중복 전송을 막는다.
  • 클립보드에 텍스트와 이미지가 함께 있으면 둘 다 작성 중 질문에 반영한다.

가정

  • 서버는 이미지 원본을 저장하지 않으므로 새로고침 후 과거 이미지 미리보기는 복구하지 않는다.
  • 화면 캡쳐는 현재처럼 새 대화 화면으로 이동해 첨부된다.
  • 네트워크 요청이 시작된 뒤 발생한 서버 오류는 기존 채팅 오류 처리 흐름을 따른다.