🍒 IssueName
카드 선택 화면을 단일 선택 → 복수 선택으로 전환
📝 Description
사용자가 카드를 여러 장 골라 문장을 조합할 수 있어야 한다(예: "이거"+"주세요" → "이거 주세요").
지금은 card_select_screen.dart가 단일 선택으로 하드코딩돼 있어 카드를 한 장밖에 못 고른다.
백엔드는 이미 준비 완료됐다: POST /select가 cards 배열을 받아 한 번에 기록하도록 바뀌었다
(기존 card 단수 호출도 당분간 계속 동작함). 관련 백엔드 PR: malkong/backend#26
🔧 바꿔야 할 부분 (lib/screens/card_select_screen.dart)
RecommendedCard? _selected (단수) → List<RecommendedCard> _selected (복수)
onTap: () => setState(() => _selected = card) (교체) → 토글 방식으로 변경(이미 선택된 카드면 목록에서 제거, 아니면 추가)
- 안내 문구
'하고 싶은 말을 한 장 골라 주세요.' → 복수 선택에 맞게 수정
ResultScreen(card: card, ...) → 선택된 카드 목록을 넘기도록 변경
/select 호출: 카드마다 여러 번 호출하지 말고, 선택 완료 시 cards 배열로 한 번만 호출
(lib/services/api_service.dart의 selectCard도 cards 배열을 받도록 같이 손봐야 함)
⚠️ 별도 확인 필요 — 문장 조합/TTS
ResultScreen이 지금은 TtsService.speak(card.word)로 카드 하나의 단어만 그대로 읽는다.
카드 여러 장을 자연스러운 한 문장으로 만드는 로직이 앱에도 백엔드에도 아직 없다
(팀원의 card_tts 브랜치에 generate_sentence_from_cards가 있지만 어디에도 연결 안 됨).
이 이슈 범위에서는 카드 여러 장을 단순히 이어붙여 읽는 정도로 우선 처리하고,
자연스러운 문장 조합은 별도 이슈로 논의 필요.
💨 참고 — 응답속도 개선
Mode 1(speech_text: '')의 /analyze 응답이 10~15초 → 1초 미만으로 개선됐다
(malkong/backend#26). api_service.dart의 _analyzeTimeout(현재 30초)을 줄여도 된다.
🌱 Todo
🍒 IssueName
카드 선택 화면을 단일 선택 → 복수 선택으로 전환
📝 Description
사용자가 카드를 여러 장 골라 문장을 조합할 수 있어야 한다(예: "이거"+"주세요" → "이거 주세요").
지금은
card_select_screen.dart가 단일 선택으로 하드코딩돼 있어 카드를 한 장밖에 못 고른다.백엔드는 이미 준비 완료됐다:
POST /select가cards배열을 받아 한 번에 기록하도록 바뀌었다(기존
card단수 호출도 당분간 계속 동작함). 관련 백엔드 PR: malkong/backend#26🔧 바꿔야 할 부분 (
lib/screens/card_select_screen.dart)RecommendedCard? _selected(단수) →List<RecommendedCard> _selected(복수)onTap: () => setState(() => _selected = card)(교체) → 토글 방식으로 변경(이미 선택된 카드면 목록에서 제거, 아니면 추가)'하고 싶은 말을 한 장 골라 주세요.'→ 복수 선택에 맞게 수정ResultScreen(card: card, ...)→ 선택된 카드 목록을 넘기도록 변경/select호출: 카드마다 여러 번 호출하지 말고, 선택 완료 시cards배열로 한 번만 호출(
lib/services/api_service.dart의selectCard도cards배열을 받도록 같이 손봐야 함)ResultScreen이 지금은TtsService.speak(card.word)로 카드 하나의 단어만 그대로 읽는다.카드 여러 장을 자연스러운 한 문장으로 만드는 로직이 앱에도 백엔드에도 아직 없다
(팀원의
card_tts브랜치에generate_sentence_from_cards가 있지만 어디에도 연결 안 됨).이 이슈 범위에서는 카드 여러 장을 단순히 이어붙여 읽는 정도로 우선 처리하고,
자연스러운 문장 조합은 별도 이슈로 논의 필요.
💨 참고 — 응답속도 개선
Mode 1(
speech_text: '')의/analyze응답이 10~15초 → 1초 미만으로 개선됐다(malkong/backend#26).
api_service.dart의_analyzeTimeout(현재 30초)을 줄여도 된다.🌱 Todo
card_select_screen.dart복수 선택 UI로 전환api_service.dart의selectCard를cards배열 호출로 변경ResultScreen이 선택된 카드 목록을 받아 표시