Skip to content

Conversation

@jueunk617
Copy link
Collaborator

📌 개요

  • 스터디룸 채팅 시스템의 DTO를 Lombok Builder에서 Java Record로 전환
  • 채팅 기능별로(스터디룸/개인디엠) 패키지 구조를 분리하여 가독성 및 유지보수성 향상

🔨 작업 내용

DTO Record 전환

  • RoomChatMessageDto: Builder 패턴 → Record + 정적 팩토리 메서드
  • RoomChatPageResponse: Lombok → Record + 헬퍼 메서드
  • WebSocketSessionInfo: Builder → Record + 상태 변경 메서드

패키지 구조 분리

  • 스터디룸 채팅: com.back.domain.chat.room.*
  • 개인 채팅: com.back.domain.chat.private.*

컨트롤러 명명 개선

  • ChatWebSocketControllerRoomChatWebSocketController
  • ChatApiControllerRoomChatApiController

테스트 코드 수정

  • Record 접근자 방식에 맞게 모든 테스트 코드 업데이트
  • Builder → 정적 팩토리 메서드로 변경

🔗 관련 이슈

Closes #77


📝 참고 사항

Record 전환 이유

  • 불변성 보장으로 예상치 못한 상태 변경 방지
  • 컴파일 타임 타입 안전성 확보 (메서드 존재 여부 등)
  • Boilerplate 코드 대폭 감소 (equals, hashCode, toString 자동 생성)

변경 사항

  • DTO 접근 방식: .getField().field()
  • 객체 생성: Builder 패턴 → 정적 팩토리 메서드(createRequest(), createResponse() 등)
  • 상태 변경: 새로운 인스턴스 생성 방식(withRoomId(), withUpdatedActivity() 등)

추가 수정

  • WebSocketSessionManager 서비스도 Record 메서드에 맞게 수정
  • Security 설정에서 /api/rooms/**가 현재 permitAll()로 설정되어 인증 테스트 일부 비활성화

✅ 체크리스트

  • 기능 동작 확인
  • 테스트 코드 작성
  • 문서/주석 추가 및 최신화

@github-actions github-actions bot changed the title Refactor: 채팅 시스템 DTO Record 전환 및 패키지 구조 개선 Refactor: 채팅 시스템 DTO Record 전환 및 패키지 구조 개선 (#77) Sep 26, 2025
@jueunk617 jueunk617 merged commit 1e1b690 into dev Sep 26, 2025
2 checks passed
@github-actions github-actions bot deleted the Feat/77 branch September 26, 2025 06:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants