Skip to content

[Feat] 토닥이 채팅 SSE 클라이언트 설정 및 DTO 구성 - #83

Draft
oungsi2000 wants to merge 4 commits into
feat/73-chat-usecasefrom
feat/75-chat-dto
Draft

[Feat] 토닥이 채팅 SSE 클라이언트 설정 및 DTO 구성#83
oungsi2000 wants to merge 4 commits into
feat/73-chat-usecasefrom
feat/75-chat-dto

Conversation

@oungsi2000

Copy link
Copy Markdown
Collaborator

관련 이슈

#74
#75

작업 내용

  • Ktor SSE 플러그인을 이용해 토닥이 채팅 SSE 플러그인을 구현했습니다
  • 관련 DTO를 구현했습니다
  • ViewModel 구성 후 테스트 시 로직 및 DTO가 달라질 수도 있어서 일단 draft로 두었습니다.

변경사항 / 상세

  • Ktor SSE Plugin 사용

중점 리뷰사항

스크린샷 (선택)

@oungsi2000 oungsi2000 self-assigned this Aug 4, 2026
@oungsi2000 oungsi2000 added the feature 새로운 기능 추가 label Aug 4, 2026
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f0e3555c-3b5d-4590-b0da-fc89f2711389

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

oungsi2000 and others added 4 commits August 6, 2026 16:14
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bodyAsChannel로 event/data/id/retry 필드를 직접 파싱하던 코드를 Ktor 3.1.3에
번들된 sse() + ClientSSESession.incoming: Flow<ServerSentEvent>로 교체.
와이어 포맷 파싱(멀티라인 data, 주석 줄 등)을 직접 구현/유지보수하지 않고
Ktor 자체 구현에 맡긴다.

SseFlowTest.kt는 삭제한다: sse()는 요청에 SSECapability를 태그하고
HttpClientEngine.checkExtensions가 엔진의 지원 여부를 검사하는데,
MockEngine(3.1.3)은 이 capability를 선언하지 않고 final class라 확장도
불가능해 연결 단계에서 시나리오와 무관하게 무조건 IllegalArgumentException을
던진다(실측 확인). 이벤트 매핑 커버리지는 ChatMapperTest가 ServerSentEvent를
직접 구성해 이미 담당하고 있고, 스트리밍 자체는 dev 서버 스모크 테스트로 검증한다.

검증: core:data-remote 컴파일/테스트/ktlintCheck 전부 통과.
SseFlow.kt를 ServerSentEvents.kt로 이름을 변경하여 명확성을 높인다.
ChatStreamErrorResponse의 code와 message 필드를 Non-nullable로 변경하여
에러 응답 시 필수 정보가 누락되지 않도록 제약을 강화한다.
@oungsi2000
oungsi2000 changed the base branch from feat/59-todak-chat to feat/73-chat-usecase August 6, 2026 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature 새로운 기능 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant