Commit db23ae1
fix: token (#61)
* feature/base domain 04 gunwoong (#6)
* feat: 공통 도메인 구현
* feat: 메인 어플리케이션에 추가
* feature/CustomExceptionInit-22-HwuanPage
* feature/CustomExceptionInit-22-HwuanPage
* Errorcode interface Change
* Refactor application.yml 환경변수 설정 (#25)
* refactor: application.yml 환경변수 설정
* Rename: 오타 수정
* Feature/spot service interface 29 gunwoong (#30)
* feat: api
* feat: api 스케줄링
* feat: spot service inteface
* feat: 카카오 로그인을 stateless 하게 변경한다 (#51)
* refactor: 기존 state 사용 방식 -> stateless 방식으로 변경
* refactor: 기존 state 사용 방식 -> stateless 방식으로 변경으로 인해 필요 없는 엔드 포인트 삭제
* test: 변경사항 test 수정
* feat: 카카오 측에서 인증 실패시에 반환 하는 에러 처리하는 코드 구현
* test: 카카오 측에서 인증 실패시에 반환 하는 에러 처리하는 테스트 추가
* fix: 주석 제거
* fix: exception 변경
* Feat/meeting service (#46)
* WIP: Rebase를 위한 임시 저장
# Conflicts:
# src/main/java/sevenstar/marineleisure/global/exception/enums/CommonErrorCode.java
# src/main/java/sevenstar/marineleisure/global/swagger/SwaggerController.java
* feat : Meeting.java
-> Meeting 엔터티 @builder 를 상위 어노테이션에 일단 추가시켰습니다.
* feat : Meeting.java
-> Meeting 엔터티 @builder 를 상위 어노테이션에 일단 추가시켰습니다.
* feat : Meeting.java
-> Meeting 엔터티 @builder 를 상위 어노테이션에 일단 추가시켰습니다.
* Delete MeetingServiceImplReview.md
* Delete MeetingServiceUserFlow.md
* feat : 패키지명 변경 이슈
-> 패키지 명을 컨벤션에 따른 이름으로 변경했습니다.
* feat : MeetingController.java
long participantCount = participantRepository.countMeetingIdMember
->
long participantCount = participantRepository.countMeetingId로 수정하였습니다.
* feat : MeetingError.java
MeetingError.java 를 추가하였습니다.
* feat : MeetingMapper
MeetingServiceImpl에서 사용중이었던 Mapper를 분리하였습니다.
* feat : MeetingService.java
패키지 명 수정으로 인해서 수정사항이 있었습니다.
* feat : MeetingServiceImpl.java
트랜잭션 관리 명확화 하였습니다.
validate 패키지를 개선하였습니다.
joinMeeting 중복 참여 제한 로직을 강화하였습니다.
* `getAllMeetings(Long cursorId, int size)`:
* 목적: 모든 모임 목록을 페이징 처리하여 조회합니다. cursorId를 사용하여 무한 스크롤과 같은 커서 기반 페이징을 지원합니다.
* 특징: @transactional(readOnly = true)를 통해 읽기 전용 트랜잭션으로 최적화되었습니다.
* `getMeetingDetails(Long meetingId)`:
* 목적: 특정 모임의 상세 정보를 조회합니다. 호스트, 장소, 태그 등 연관된 정보를 함께 가져옵니다.
* 개선 예정: 현재 N+1 문제가 발생할 수 있어, 향후 Fetch Join을 통한 성능 최적화가 필요합니다.
* `getStatusMyMeetings(Long memberId, Long cursorId, int size, MeetingStatus meetingStatus)`:
* 목적: 특정 회원의 상태별(예: 모집 중, 완료) 모임 목록을 페이징 처리하여 조회합니다.
* `getMeetingDetailAndMember(Long memberId, Long meetingId)`:
* 목적: 호스트가 자신의 모임 상세 정보와 참여자 목록을 조회합니다. 참여자들의 닉네임을 함께 제공합니다.
* `countMeetings(Long memberId)`:
* 목적: 특정 회원이 참여한 모임의 총 개수를 반환합니다.
* `joinMeeting(Long meetingId, Long memberId)`:
* 목적: 회원이 특정 모임에 참여합니다.
* 주요 개선: 모임 상태 검증(verifyRecruiting), 중복 참여 검증(`verifyNotAlreadyParticipant`), 모임 정원 초과 검증(verifyMeetingCount) 로직이 강화되었습니다.
* 개선 예정: 동시성 문제(Race Condition) 해결을 위한 비관적 락(Pessimistic Lock) 적용이 필요합니다.
* `leaveMeeting(Long meetingId, Long memberId)`:
* 목적: 회원이 모임에서 탈퇴합니다.
* 주요 개선: 호스트 탈퇴 방지(verifyNotHost), 모임 상태에 따른 탈퇴 가능 여부 검증(verifyLeave) 로직이 추가되었습니다.
* 개선 예정: MEETING_NOT_FOUND 대신 CANNOT_LEAVE_COMPLETED_MEETING과 같은 더 구체적인 에러 코드 적용이 필요합니다.
* `createMeeting(Long memberId, CreateMeetingRequest request)`:
* 목적: 새로운 모임을 생성합니다. 호스트를 참여자로 자동 등록하고 태그 정보를 저장합니다.
* `updateMeeting(Long meetingId, Long memberId, UpdateMeetingRequest request)`:
* 목적: 기존 모임의 정보를 수정합니다. 호스트만 수정할 수 있도록 검증합니다.
* `deleteMeeting(Member member, Long meetingId)`:
* 목적: 모임을 삭제합니다.
* 개선 예정: 물리적 삭제 대신 논리적 삭제(Soft Delete) 방식 도입을 고려 중입니다.
* feat : MeetingValidate.java,MemberValidate.java,ParticipantValidate,SpotValidate,TagValidate.java
검증로직을 추가하였습니다.
* feat : MemberError.java , ParticipantRepository
기능을 추가하였습니다.
---------
Co-authored-by: Hwang Seong Cheol a.k.a Hwuan Page <[email protected]>
* feat: 테스트용 액세스 토큰 생성
* feature/base domain 04 gunwoong (#6)
* feat: 공통 도메인 구현
* feat: 메인 어플리케이션에 추가
* Refactor application.yml 환경변수 설정 (#25)
* refactor: application.yml 환경변수 설정
* Rename: 오타 수정
* Feature/spot service interface 29 gunwoong (#30)
* feat: api
* feat: api 스케줄링
* feat: spot service inteface
* feature/base domain 04 gunwoong (#6)
* feat: 공통 도메인 구현
* feat: 메인 어플리케이션에 추가
* feature/CustomExceptionInit-22-HwuanPage
* feature/CustomExceptionInit-22-HwuanPage
* Errorcode interface Change
* Feature/spot service interface 29 gunwoong (#30)
* feat: api
* feat: api 스케줄링
* feat: spot service inteface
* Feature/api scheduler 15 gunwoong (#28)
* feat: api
* feat: api 스케줄링
* feat: spot service inteface
* test: remove legacy test
* feat: apply open meteo
* test: apply api test
* feature/FavoriteCRUD-33-HwuanPage
* DELETE COMPLETE
* UPDATE COMPLETE
* search COMPLETE
* Before gunwoong
* FavoriteCRUD create
* feat/domain test
* FavoriteSpotServiceTest
* FavoriteSpotServiceTest
* feature/FavoriteCURD-33-HwuanPage
* add some description on service
* Update FavoriteServiceImpl.java
* fix: error fix
* fix: 소셜 로그인 재시도 시 닉네임 UNIQUE 제약 위반 오류 발생 (#42)
* fix: 로그아웃 후 재로그인 시 동일 정보로 db에 insert 하던 버그 수정
* refactor: 로그아웃 후 재로그인 시 동일 정보로 db에 insert 수정 사항 리팩토링
* test: 변경사항에 따른 테스트 코드 수정
* hofix: bug fix
* feat: 카카오 로그인을 stateless 하게 변경한다 (#51)
* refactor: 기존 state 사용 방식 -> stateless 방식으로 변경
* refactor: 기존 state 사용 방식 -> stateless 방식으로 변경으로 인해 필요 없는 엔드 포인트 삭제
* test: 변경사항 test 수정
* feat: 카카오 측에서 인증 실패시에 반환 하는 에러 처리하는 코드 구현
* test: 카카오 측에서 인증 실패시에 반환 하는 에러 처리하는 테스트 추가
* fix: 주석 제거
* fix: exception 변경
* Feat/meeting service (#46)
* WIP: Rebase를 위한 임시 저장
# Conflicts:
# src/main/java/sevenstar/marineleisure/global/exception/enums/CommonErrorCode.java
# src/main/java/sevenstar/marineleisure/global/swagger/SwaggerController.java
* feat : Meeting.java
-> Meeting 엔터티 @builder 를 상위 어노테이션에 일단 추가시켰습니다.
* feat : Meeting.java
-> Meeting 엔터티 @builder 를 상위 어노테이션에 일단 추가시켰습니다.
* feat : Meeting.java
-> Meeting 엔터티 @builder 를 상위 어노테이션에 일단 추가시켰습니다.
* Delete MeetingServiceImplReview.md
* Delete MeetingServiceUserFlow.md
* feat : 패키지명 변경 이슈
-> 패키지 명을 컨벤션에 따른 이름으로 변경했습니다.
* feat : MeetingController.java
long participantCount = participantRepository.countMeetingIdMember
->
long participantCount = participantRepository.countMeetingId로 수정하였습니다.
* feat : MeetingError.java
MeetingError.java 를 추가하였습니다.
* feat : MeetingMapper
MeetingServiceImpl에서 사용중이었던 Mapper를 분리하였습니다.
* feat : MeetingService.java
패키지 명 수정으로 인해서 수정사항이 있었습니다.
* feat : MeetingServiceImpl.java
트랜잭션 관리 명확화 하였습니다.
validate 패키지를 개선하였습니다.
joinMeeting 중복 참여 제한 로직을 강화하였습니다.
* `getAllMeetings(Long cursorId, int size)`:
* 목적: 모든 모임 목록을 페이징 처리하여 조회합니다. cursorId를 사용하여 무한 스크롤과 같은 커서 기반 페이징을 지원합니다.
* 특징: @transactional(readOnly = true)를 통해 읽기 전용 트랜잭션으로 최적화되었습니다.
* `getMeetingDetails(Long meetingId)`:
* 목적: 특정 모임의 상세 정보를 조회합니다. 호스트, 장소, 태그 등 연관된 정보를 함께 가져옵니다.
* 개선 예정: 현재 N+1 문제가 발생할 수 있어, 향후 Fetch Join을 통한 성능 최적화가 필요합니다.
* `getStatusMyMeetings(Long memberId, Long cursorId, int size, MeetingStatus meetingStatus)`:
* 목적: 특정 회원의 상태별(예: 모집 중, 완료) 모임 목록을 페이징 처리하여 조회합니다.
* `getMeetingDetailAndMember(Long memberId, Long meetingId)`:
* 목적: 호스트가 자신의 모임 상세 정보와 참여자 목록을 조회합니다. 참여자들의 닉네임을 함께 제공합니다.
* `countMeetings(Long memberId)`:
* 목적: 특정 회원이 참여한 모임의 총 개수를 반환합니다.
* `joinMeeting(Long meetingId, Long memberId)`:
* 목적: 회원이 특정 모임에 참여합니다.
* 주요 개선: 모임 상태 검증(verifyRecruiting), 중복 참여 검증(`verifyNotAlreadyParticipant`), 모임 정원 초과 검증(verifyMeetingCount) 로직이 강화되었습니다.
* 개선 예정: 동시성 문제(Race Condition) 해결을 위한 비관적 락(Pessimistic Lock) 적용이 필요합니다.
* `leaveMeeting(Long meetingId, Long memberId)`:
* 목적: 회원이 모임에서 탈퇴합니다.
* 주요 개선: 호스트 탈퇴 방지(verifyNotHost), 모임 상태에 따른 탈퇴 가능 여부 검증(verifyLeave) 로직이 추가되었습니다.
* 개선 예정: MEETING_NOT_FOUND 대신 CANNOT_LEAVE_COMPLETED_MEETING과 같은 더 구체적인 에러 코드 적용이 필요합니다.
* `createMeeting(Long memberId, CreateMeetingRequest request)`:
* 목적: 새로운 모임을 생성합니다. 호스트를 참여자로 자동 등록하고 태그 정보를 저장합니다.
* `updateMeeting(Long meetingId, Long memberId, UpdateMeetingRequest request)`:
* 목적: 기존 모임의 정보를 수정합니다. 호스트만 수정할 수 있도록 검증합니다.
* `deleteMeeting(Member member, Long meetingId)`:
* 목적: 모임을 삭제합니다.
* 개선 예정: 물리적 삭제 대신 논리적 삭제(Soft Delete) 방식 도입을 고려 중입니다.
* feat : MeetingValidate.java,MemberValidate.java,ParticipantValidate,SpotValidate,TagValidate.java
검증로직을 추가하였습니다.
* feat : MemberError.java , ParticipantRepository
기능을 추가하였습니다.
---------
Co-authored-by: Hwang Seong Cheol a.k.a Hwuan Page <[email protected]>
* fix : jellyfish 부분
* fix: activity 부분
* fix: member 부분
* fix: member 부분
* fix: spot 부분
* fix: forecast 부분
* fix: favorite 부분
* fix: alert 부분
* fix: meeting 부분
---------
Co-authored-by: Gunwoong cho <[email protected]>
Co-authored-by: Hwang Seong Cheol a.k.a Hwuan Page <[email protected]>
Co-authored-by: MyungJin <[email protected]>
Co-authored-by: LEESUNBIN <[email protected]>
Co-authored-by: gunwoong <[email protected]>1 parent 944b62f commit db23ae1
File tree
54 files changed
+1132
-1123
lines changed- src
- main
- java/sevenstar/marineleisure
- activity/service
- alert
- controller
- dto/vo
- service
- util
- favorite/repository
- forecast
- domain
- repository
- global
- api
- khoa
- dto/item
- mapper
- service
- openmeteo/dto/service
- scheduler
- domain
- enums
- jwt
- swagger
- utils
- meeting
- Repository
- repository
- service
- member
- controller
- domain
- repository
- service
- spot
- dto
- mapper
- repository
- service
- resources
- test/java/sevenstar/marineleisure
- global
- api
- khoa
- jwt
- member
- controller
- service
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
54 files changed
+1132
-1123
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | 7 | | |
12 | 8 | | |
13 | 9 | | |
| |||
33 | 29 | | |
34 | 30 | | |
35 | 31 | | |
36 | | - | |
37 | | - | |
38 | 32 | | |
39 | 33 | | |
40 | 34 | | |
| |||
48 | 42 | | |
49 | 43 | | |
50 | 44 | | |
51 | | - | |
| 45 | + | |
52 | 46 | | |
53 | 47 | | |
54 | 48 | | |
| |||
68 | 62 | | |
69 | 63 | | |
70 | 64 | | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | 65 | | |
81 | 66 | | |
82 | 67 | | |
| |||
Lines changed: 235 additions & 235 deletions
Large diffs are not rendered by default.
Lines changed: 36 additions & 43 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
0 commit comments