-
Notifications
You must be signed in to change notification settings - Fork 3
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
[Feature/#213] 모집글 작성 알림 구현 및 리팩토링 #218
Conversation
- GatherArticleResponse.LocationInfoDTO.java 구현 - 모집글 작성 위치 정보를 위한 DTO 구현 - GatherArticleRepositoryCustom.java - 모집글 작성 위치 정보를 조회하기 위한 메서드 선언 - findLocationInfoDTOById() 메서드 선언 - GatherArticleRepositoryCustomImpl.java - 모집글 작성 위치 정보를 조회하기 위한 메서드 구현 - findLocationInfoDTOById() 메서드 구현 - MemberRepositoryCustom.java - 작성된 모집글의 주변에 위치한 사용자의 아이디를 반환하는 메서드를 선언 - findUsernamesWithGatherArticleInRange() 메서드 선언 - MemberRepositoryCustomImpl.java - 작성된 모집글의 주변에 위치한 사용자의 아이디를 반환하는 메서드를 구현 - findUsernamesWithGatherArticleInRange() 메서드 구현 - NotificationService.java - notifyGatherArticle() 메서드: 모집글이 작성되면 해당 모집글 주변에 위치한 사용자에게 알림 - GatherArticleController.java - createGatherArticle() 메서드 - 모집글 작성시 작성된 모집글 주변에 위치한 사용자에게 알림을 보내기위하여, notifyGatherArticle() 호출
- MemberResponse.UserNameDTO -> MemberResponse.UsernameDTO 로 클래스 이름 수정으로 인한 리팩토링
- NotificationRepositoryCustom.java - 사용자별 알림 목록 단순 조회 로직에서 엔티티를 직접 레포지토리에서 조회하고 있으므로 DTO 를 활용하여 조회하도록 리턴값 수정 - findNotificationByMemberUsername() 메서드 리턴값 수정 - NotificationRepositoryCustomImpl.java - 사용자별 알림 목록 단순 조회 로직에서 엔티티를 직접 레포지토리에서 조회하고 있으므로 DTO 를 활용하도록 로직 수정 - findNotificationByMemberUsername() 메서드 로직 수정
- NotificationController.java - subscribe() 메서드 - 알림 관련 요청을 효율적으로 proxy 하기위하여 URI 수정 - SSE 방식은 표준 HTTP 통신과 다른 방식이므로 Spring에서 제공하는 Authentication 객체를 활용하여 사용자 인증을 할 수 없으므로, 파라미터 수정 - SSE 방식은 캐싱과 버퍼 기능을 활용하지 않아야 통신 가능하므로 응답 헤더 추가 - 알림 구독 관련 로직 수정으로 인한 리턴값 수정 - getNotifications() 메서드 - SSE 방식은 표준 HTTP 통신과 다른 방식이므로 Spring 에서 제공하는 Authentication 객체를 활용하여 사용자 인증을 할 수 없으므로, 파라미터 수정 - nginx.conf - 배포 환경에서의 알림 기능 관련 이슈 해결을 위하여 알림 기능 관련 nginx 코드 추가 - WebMvcConfig.java - 알림 기능은 SSE 방식은 표준 HTTP 통신과 다른 방식이므로 Spring 에서 제공하는 Authentication 객체를 활용하여 사용자 인증을 할 수 없으므로, 알림 기능 관련한 요청은 excludePathPatterns() 메서드를 활용하여 인증 인터셉터가 동작하지 않도록 수정된 URI 등록
@geunhokinn @serahissomi @meanzi3 |
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.
모집글 작성 알림 구현 및 리팩토링 하시느라 고생하셨습니다. 확인 부탁드립니다!
JPAExpressions | ||
.selectOne() | ||
.from(publicDistrict) | ||
.join(nearPublicDistrict).on(publicDistrict.id.eq(nearPublicDistrict.publicDistrict.id)) | ||
.where( | ||
nearPublicDistrict.sido.eq(sido) | ||
.and(nearPublicDistrict.sgg.eq(sgg)) | ||
.and(nearPublicDistrict.emd.eq(emd)) | ||
.and(member.radius.goe(nearPublicDistrict.radius)) // 반경 조건 | ||
) | ||
.exists() |
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.
on 절을 활용해 조인 대상을 필터링 할 때, 외부 조인이 아니라 내부조인을 사용하면 where 절에서 필터링 하는 것과 기능이 동일하므로 where 절에서 필터하는 것은 어떨까요?
#️⃣연관된 이슈
📝작업 내용
모집글 작성 위치 주변 사용자 알림 구현
GatherArticleResponse.LocationInfoDTO.java 구현
GatherArticleRepositoryCustom.java
GatherArticleRepositoryCustomImpl.java
MemberRepositoryCustom.java
MemberRepositoryCustomImpl.java
NotificationService.java
GatherArticleController.java
MemberResponse.UserNameDTO 클래스 이름 수정으로 인한 리팩토링
알림 기능 리팩토링
NotificationRepositoryCustom.java
NotificationRepositoryCustomImpl.java
배포환경에서의 이슈 해결을 위한 알림 기능 리팩토링
NotificationController.java
subscribe() 메서드
getNotifications() 메서드
nginx.conf
WebMvcConfig.java
💬리뷰 요구사항(선택)