Skip to content
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

나의 디스커션 목록 조회 API 구현 (issue #469) #471

Merged
merged 2 commits into from
Sep 19, 2024
Merged

Conversation

lilychoibb
Copy link
Member

@lilychoibb lilychoibb commented Sep 12, 2024

구현 요약

대시보드 페이지 - 내가 작성한 디스커션 목록 조회 API

SummarizedDiscussionResponse 와 응답이 같아서 DTO 재사용 하였습니다.
그런데 추후 디스커션 리스트 조회에서 스크랩 기능이 생길 경우 분리가 필요합니다!

연관 이슈

참고

코드 리뷰에 RCA 룰을 적용할 시 참고해주세요.

헤더 설명
R (Request Changes) 적극적으로 반영을 고려해주세요
C (Comment) 웬만하면 반영해주세요
A (Approve) 반영해도 좋고, 넘어가도 좋습니다. 사소한 의견입니다.

Copy link
Member

@le2sky le2sky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

릴리 안녕하세요. 아톰입니다.😀
몇 가지 코멘트 남겼습니다. 고생 많으셨고 오늘 하루도 화이팅입니다!

@@ -49,4 +49,12 @@ public ResponseEntity<ApiResponse<DiscussionResponse>> createDiscussion(

return ResponseEntity.ok(new ApiResponse<>(response));
}

@GetMapping("/discussions/mine")
@Operation(summary = "나의 디스커션 목록 조회 API", description = "내가 제출한 디스커션 목록을 조회합니다.")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Request Changes]

아래와 같은 느낌은 어떨까요?

Suggested change
@Operation(summary = "나의 디스커션 목록 조회 API", description = "내가 제출한 디스커션 목록을 조회합니다.")
@Operation(summary = "나의 디스커션 목록 조회 API", description = "내가 작성한 디스커션 목록을 조회합니다.")

Comment on lines 31 to 54

List<Discussion> findAllByMember_Id(Long memberId);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Request Changes]

이전에 제대로 확인하지 못한 점 죄송합니다.
findAllByMember_Id 상단에 findByMissionAndHashTagName 메서드도 findAll로 시작하도록 변경 부탁 드립니다. 그리고 해당 쿼리는 N + 1이 발생하지 않을까요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아 list 반환하는 경우에 findAll 이라고 알려주셨던걸 또 까먹어버렸네요 죄송합니다 🥹🥹
확인해보니 해당 쿼리도 조회가 4번이나 나가서 수정해놓았습니다!

select
        d1_0.id,
        d1_0.content,
        d1_0.created_at,
        ht1_0.discussion_id,
        ht1_0.hash_tag_id,
        ht2_0.id,
        ht2_0.name,
        d1_0.member_id,
        m2_0.id,
        m2_0.created_at,
        m2_0.email,
        m2_0.image_url,
        m2_0.name,
        m2_0.provider,
        m2_0.social_id,
        m1_0.id,
        m1_0.url,
        m1_0.summary,
        m1_0.thumbnail,
        m1_0.title,
        d1_0.title 
    from
        discussion d1_0 
    join
        mission m1_0 
            on m1_0.id=d1_0.mission_id 
    join
        member m2_0 
            on m2_0.id=d1_0.member_id 
    join
        discussion_hash_tag ht1_0 
            on d1_0.id=ht1_0.discussion_id 
    join
        hash_tag ht2_0 
            on ht2_0.id=ht1_0.hash_tag_id 
    where
        d1_0.member_id=? 
    order by
        ht1_0.discussion_id,
        ht1_0.hash_tag_id

Copy link
Member

@le2sky le2sky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

릴리 안녕하세요. 아톰입니다.
쿼리 깔끔하게 개선해주셨네요. 👍

@le2sky
Copy link
Member

le2sky commented Sep 18, 2024

그리고 문득든 생각인데, 어디는 lazy 로딩 막고, 어디는 안막는게 헷갈려서 기본적으로 fetch join 사용하고 하나하나 쿼리 튜닝해나가는 방식이 편리하겠다 생각했어요. 어디는 한방 쿼리가 더 비쌀 수도 있으니까요.

@lilychoibb lilychoibb merged commit 2a4b614 into dev Sep 19, 2024
6 checks passed
@lilychoibb lilychoibb deleted the feat/#469 branch September 19, 2024 07:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚒️ 기능 작업해야하는 기능 🚛 백엔드 백엔드 관련 이슈
Projects
Status: 😎 DONE
Development

Successfully merging this pull request may close these issues.

내가 작성한 디스커션 조회 기능
3 participants