-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feat]: 채팅방 메세지를 조회할 수 있다 #14
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이거 테스트 된건가요?? 테스트 안되었다면 테스트 코드 작성해주세요
테스트 코드 작성하기 힘들다면 로컬에서 테스트 부탁드립니다!~
Controller 로직도 빠진거 같네요
import gloddy.util.CursorRequest | ||
import gloddy.util.PageCursor | ||
|
||
class GroupChatGetMessageCommander(private val getGroupChatMessagePort: GetGroupChatMessagePort) : GetGroupChatMessageUseCase { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
조회에 대한 도메인 서비스 이름을 ~Commander
라고 지은 이유가 뭔가요??
Commander
는 CUD에 대한 도메인 서비스를 가리키는 의도로 지었는데 여기서는 GroupChatReader
라는 클래스 명이 맞지 않을까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CUD에 대한 서비스가 아닌 단순히 '요청(명령)을 한다'라는 의미로 이해하여 네이밍을 하게되었습니다. 말씀해주신대로 GroupChatReader
로 변경하고 앞으로 맞춰서 작성하겠습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그럼 혹시 dto
패키지 하위의 command
들도 CUD를 위한 dto
인가요??
interface GetGroupChatMessageUseCase { | ||
|
||
fun getPosts(groupChatGetMessageCommand: GroupChatGetMessageCommand): PageCursor<GroupChatMessage> | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
도메인 서비스에 대한 추상화는 필요 없을 거라는 판단하에 GroupChatCommander
또한 추상화를 하지 않았기 때문에 해당 클래스는 삭제 부탁드립니다~
interface GetGroupChatMessagePort { | ||
fun findWithoutKey(groupChatGetMessageCommand: GroupChatGetMessageCommand): List<GroupChatMessage> | ||
|
||
fun findWithKey(groupChatGetMessageCommand: GroupChatGetMessageCommand): List<GroupChatMessage> | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Domain 모듈의 영속성 추상클래스 <-(implement) Storage 모듈의 영속성 클래스의 이름 규칙을
~Repository
<- ~AdapterRepository
로 Command 로직을 짤 때 정했기 때문에
GroupChatQueryRepository
<- GroupChatQueryAdapterRepository
로 수정부탁합니다~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
확인했습니다 앞으로 반영하겠습니다🫡
import gloddy.persistence.repository.GroupChatMessageRepository | ||
import gloddy.port.out.GetGroupChatMessagePort | ||
|
||
class GroupChatMessageCommandAdapter( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
조회용 Adapter Repository니깐 GroupChatQueryAdapterRepository
가 맞는 표현이겠죠??
수정부탁드립니다~
그리고 GroupChat 하위 도메인들(GroupChatMessage, GroupChatUser) 또한 그에 맞는 새로운 레포지토리를 파는게 아닌 GroupChatRepository 내부에서 처리하는게 관리가 용이할 것 같애서 위처럼 GroupChatQueryAdapterRepository
로 수정 부탁드립니다~!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GroupChatRepository
내부에서 처리하는게 관리가 용이할 것 같다는 말씀이 GroupChat
(Query, Command) Repository
이런 방식을 말씀하시는거죠??
수정했습니다!
|
||
class GroupChatMessageRepository(private val namedParameterJdbcTemplate: NamedParameterJdbcTemplate) { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
QueryDsl
이나 JPARepository
가 아닌 NamedParameterJdbcTemlate
를 사용한 이유가 뭔가요??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
일단 쿼리를 직접짜야겠다는 생각을 하였고 보다 익숙한 NamedParameterJdbcTemplate
을 사용했습니다. 추후에 리팩토링을 해보겠습니다.
테스트 제외 리뷰 반영해서 올렸습니다. 확인한번 해주세요 🫡 |
관련 이슈
변경 사항
TO-BE
chat_user created_time
기준으로 조회