Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
307 commits
Select commit Hold shift + click to select a range
5dbd260
[Feat/#44] 대회 기록 삭제 API 구현 (#45)
ri-mmu Jul 15, 2025
2d6265d
[feat/#51] 특정 회원 운동 취소 API 구현 (#52)
Dimo-2562 Jul 15, 2025
a9b87dc
[feat/#46] 내 대회 기록 상세조회 API 구현 (#54)
ri-mmu Jul 15, 2025
c7bb02e
[feat/#55] 내 대회 기록 리스트 조회 (전체, 미입상) API 구현 (#58)
ri-mmu Jul 15, 2025
5b1b795
chore: yml 고치기 (#63)
kanghana1 Jul 15, 2025
885e6bd
[feat/#57] 운동 삭제 API 구현 (#60)
Dimo-2562 Jul 15, 2025
beafe3d
[feat/#43] 운동 게스트 삭제 API 구현 (#56)
Dimo-2562 Jul 15, 2025
59c09b7
[refactor/#61] 운동 참여자 수 계산 로직 수동 증가에서 사이즈 계산으로 변경 (#65)
Dimo-2562 Jul 15, 2025
b76e8fb
[feat/#34] 모임 가입 신청 멤버 조회 API 구현 (#68)
dbalsk Jul 15, 2025
86808a3
[feat/#59] 내 대회 메달 조회 API 구현 (#67)
ri-mmu Jul 15, 2025
2771c6a
[feat/#70] 다른 회원의 대회 기록 상세조회 API 구현 (#71)
ri-mmu Jul 15, 2025
27f47f2
[feat/#73] 다른 회원의 대회 기록 리스트 (전체, 미입상) API 구현 (#74)
ri-mmu Jul 15, 2025
ebc83d3
[feat/#75] 다른 회원의 대회 메달 조회 API 구현 (#76)
ri-mmu Jul 15, 2025
84eac5c
[feat/#66] 운동 수정 API 구현 (#69)
Dimo-2562 Jul 16, 2025
2355c5d
[feat/#53] 모임 가입신청 처리 API 구현 (#77)
dbalsk Jul 16, 2025
23b5ca0
[feat/#72] 프로필 수정 기능 구현 (#79)
kanghana1 Jul 16, 2025
128e75c
[refactor/#81] 운동 DTO에 중첩 record 적용 (#82)
Dimo-2562 Jul 16, 2025
6e85b6d
[feat/#80] 회원주소 추가 API 구현 (#83)
kanghana1 Jul 16, 2025
fb59d2a
[refactor/#84] 이미지 업로드 방식 변경 (#85)
kanghana1 Jul 16, 2025
a61fc71
refactor: dto 어노테이션 수정
kanghana1 Jul 16, 2025
dda3a7c
[refactor/#88] 메달 도메인 DTO에 중첩 record 패턴 도입 (#90)
ri-mmu Jul 16, 2025
cf913a4
[feat/#86] 대표 주소 변경API 구현 (#87)
kanghana1 Jul 17, 2025
c4bed14
[feat/#94] 회원 주소 삭제 API 구현 (#97)
kanghana1 Jul 17, 2025
8b43089
[refactor/#98] 주소 추가 로직 수정 (#99)
kanghana1 Jul 17, 2025
093dd29
[feat/#100] 회원 탈퇴 기능 구현 (#101)
kanghana1 Jul 17, 2025
ff5ce38
[refactor/#89] 모임 생성 API 이미지 업로드 방식 변경 (#91)
dbalsk Jul 17, 2025
feaa902
[refactor/#92] 모임 도메인 DTO에 중첩 record 패턴 도입 (#93)
dbalsk Jul 17, 2025
5dc8470
[fix/#107] 병합 오류 해결 (#108)
dbalsk Jul 17, 2025
54a8919
refactor: MemberExercise와 Guest에서 participantNum 필드 제거 (#105)
Dimo-2562 Jul 17, 2025
33f9589
[refactor/#109] 모임 생성 API 에러 처리 추가 (#112)
dbalsk Jul 17, 2025
f748107
[feat/#103] 운동 신청 API에서 검증 로직 추가 (#106)
Dimo-2562 Jul 17, 2025
547a699
[feat/#95] 프로필 조회 관련 API 구현 (#118)
kanghana1 Jul 18, 2025
391b50f
[feat/#110] 모임 신청 API 검증 로직 추가 구현 (#117)
dbalsk Jul 18, 2025
f81c30e
[Feat/#96] 회원 주소 조회 관련 API 구현 (#119)
kanghana1 Jul 18, 2025
86a96c2
[feat/#113] 모임 생성 API 검증 로직 추가 구현 (#121)
dbalsk Jul 18, 2025
f724ef2
[feat/#123] 운동 멤버십 구분 기능 추가 (#126)
Dimo-2562 Jul 18, 2025
d617eb5
[feat/#124] 모임 가입 승인 멤버 조회 API 구현 (#127)
dbalsk Jul 18, 2025
ef2cfa9
[feat/#78] 운동 상세 조회 API 구현 (#128)
Dimo-2562 Jul 19, 2025
a516930
[feat/#122] 모임 상세 조회 API 구현 (#129)
dbalsk Jul 19, 2025
59903f1
[feat/#131] 내 모임 조회 (간략화) API 구현 (#134)
dbalsk Jul 19, 2025
3ed8586
[feat/#132] 내가 초대한 운동 게스트 조회 API 구현 (#133)
Dimo-2562 Jul 19, 2025
29e6a36
[feat/#130] 내 모임 조회 API 구현 (#135)
dbalsk Jul 20, 2025
49d581f
[refactor/#138] orphanRemoval 제거 (#139)
kanghana1 Jul 21, 2025
320f005
[feat/#140] 모임 찜 관련 API 구현 (#141)
kanghana1 Jul 21, 2025
f4c7cf2
[docs#142] 운동 도메인 DTO의 Request 객체에 @Schema 어노테이션 추가 (#143)
Dimo-2562 Jul 21, 2025
d13a707
[feat/#145] 전역 에러 핸들러에서 Validation 과정에서 에러 응답을 1개만 던지는 대신 전체를 던지도록 변경…
Dimo-2562 Jul 21, 2025
dbbd608
[feat/#144] 모임 운동 캘린더 조회 API 구현 (#148)
Dimo-2562 Jul 22, 2025
ba66950
[feat/#125] 운동 찜 관련 기능 구현 (#150)
kanghana1 Jul 22, 2025
c231c10
재배포
kanghana1 Jul 22, 2025
c958316
test: 배포 테스트
kanghana1 Jul 22, 2025
2034755
set: 배포 이후 yml파일 수정 및 S3 설정파일 추가
kanghana1 Jul 22, 2025
3a8c9e6
[feat/#151] 운동 찜 조회 구현 (#155)
kanghana1 Jul 23, 2025
bcefede
[feat/#153] 내 운동 캘린더 조회 API 구현 (#156)
Dimo-2562 Jul 23, 2025
7307d96
[feat/#152] 찜한 모임 전체 조회 API 구현 (#157)
kanghana1 Jul 23, 2025
f076008
[feat/#166] 모임 운동 캘린더 조회 API에 찜 여부 추가 (#167)
Dimo-2562 Jul 24, 2025
8fd8a1d
[feat/#154] 내 모임 운동 조회 API 구현 (#163)
Dimo-2562 Jul 24, 2025
be81031
[feat/#149] 운동 도메인에 빈 응답 조기 반환(Early Return) 패턴 도입 (#170)
Dimo-2562 Jul 24, 2025
c375d0f
[feat/#160] 알림 전체 조회 API 구현 (#171)
kanghana1 Jul 24, 2025
ed95952
[feat/#111] 모임 삭제 API 구현 (#174)
dbalsk Jul 24, 2025
46f079d
[refactor/#175] 모임 활동상태 검증 메서드 추가 (#176)
dbalsk Jul 24, 2025
773e509
[feat/#165] 내 모임 운동 캘린더 조회 API 구현 (#179)
Dimo-2562 Jul 26, 2025
08be6ed
[feat/#178] 모임 멤버 조회 API 구현 (#180)
dbalsk Jul 26, 2025
969b20a
[feat/#177] 캘린더 조회 API에서 날짜별로 아이템 묶기 (#181)
Dimo-2562 Jul 26, 2025
6218c87
[feat/#172] 대회 이미지 업로드 API 구현 (#173)
ri-mmu Jul 26, 2025
4a38fcf
[feat/#136] 모임 탈퇴 API 구현 (#182)
dbalsk Jul 26, 2025
75401ed
refact: 필요 없어진 배포 관련 파일 삭제
kanghana1 Jul 26, 2025
a952d5d
[feat/#137] 모임 멤버 삭제 API 구현 (#187)
dbalsk Jul 27, 2025
91de30f
feat: 읽지 않은 알림 여부 조회 (#184)
kanghana1 Jul 27, 2025
f78a8e2
[feat/#159] 특정 알림 읽음 처리 (#183)
kanghana1 Jul 27, 2025
1fdc12f
[feat/#188] 모임 추천 조회 API 구현 (#190)
dbalsk Jul 28, 2025
e019596
[feat/#164] 추천 운동 조회 API 구현 (#191)
Dimo-2562 Jul 28, 2025
f9dcdbd
[refactor/#194] 도메인별 ENUM 패키지 구조 개선 (#196)
Dimo-2562 Jul 28, 2025
bed8ce3
[refactor/#189] 대회 등록 API에서 이미지 업로드 분리 (#197)
ri-mmu Jul 29, 2025
4208ca2
[refactor/#199] 대회 기록 수정 API에서 이미지 업로드 분리 (#200)
ri-mmu Jul 29, 2025
29721b5
[feat/#193] 내 참여 운동 조회 API 구현 (#201)
Dimo-2562 Jul 29, 2025
12161fc
[feat/#198] 채팅 도메인 구현 (#203)
ri-mmu Jul 29, 2025
702ba78
Update issue templates
kanghana1 Jul 29, 2025
1e05bc8
[fix] cd 파일명 변경 gradle.yml to cd.yml
kanghana1 Jul 29, 2025
4bf45ee
[chore] ci 설정
kanghana1 Jul 29, 2025
12dc416
[fix] 파일이름 변경 ci to ci.yml
kanghana1 Jul 29, 2025
10f7835
[feat/#202] 특정 건물의 운동 상세 조회 API 구현 (#204)
Dimo-2562 Jul 30, 2025
6fefae6
Update ci.yml
kanghana1 Jul 30, 2025
d419aad
debug: 충돌 해결 중 빠진 중괄호 추가
Dimo-2562 Jul 30, 2025
b398cd3
Merge branch 'develop' of https://github.com/Cockple/Cockple_BE into …
Dimo-2562 Jul 30, 2025
e018a7a
Update ci.yml
kanghana1 Jul 30, 2025
64668cd
[feat/#205] 월간 운동 건물 지도 데이터 조회 API 구현 (#210)
Dimo-2562 Jul 30, 2025
2218501
[feat/#195] 모임 추천 조회 API 구현 (콕플 추천 / 필터) (#206)
dbalsk Jul 30, 2025
7c580f0
[feat/#120] 카카오 소셜로그인 구현 (#211)
kanghana1 Jul 31, 2025
d4e955c
[feat/#209] 모임 채팅방 목록 조회 API 구현 (#213)
ri-mmu Jul 31, 2025
17247ad
[refact/#214] 나이대 변수명 변경 (#219)
dbalsk Jul 31, 2025
c883f6f
[feat/#217] 모임 생성 시 자동으로 모임 채팅방 생성 로직 구현 (#218)
ri-mmu Jul 31, 2025
02c6441
[feat/#215] 모임 채팅방 이름 검색 API 구현 (#216)
ri-mmu Jul 31, 2025
526ff90
[fix/#208] 모임 요청 파라미터 Enum 변환 및 검증 로직 수정 (#223)
dbalsk Aug 1, 2025
c5b4307
[debug#225] 출생년도 비교로 변경 및 관련 필드명 변경
Dimo-2562 Aug 1, 2025
ce3d6b0
[feat/#221] 모임 가입 수락 시 채팅방 자동 참여 로직 구현 (#226)
ri-mmu Aug 1, 2025
ec5c7c2
[fix/#222] notification 테이블에 칼럼 추가 (#233)
kanghana1 Aug 2, 2025
4932a30
[feat/#227] 모임 탈퇴 시, 자동으로 채팅방 퇴장 코드 구현 (#228)
ri-mmu Aug 2, 2025
b49a5d3
[fix/#230] 모임 이미지 저장 방식 변경 및 imgKey 주소로 변환 (#234)
dbalsk Aug 2, 2025
5330e98
[fix/#236] 대회 이미지 저장 방식 변경 (#237)
ri-mmu Aug 2, 2025
97c5b58
[feat/#192] 새로운 운동 추천 캘린더 조회 API 구현 (#229)
Dimo-2562 Aug 2, 2025
d0125ba
[fix/#235] 운동 도메인에 이미지 로직 변경 적용 (#244)
Dimo-2562 Aug 3, 2025
94fc566
[feat/#232] 신규 멤버 추천 API 구현 (#246)
dbalsk Aug 3, 2025
96f7945
[fix/#239] 로그인 후 상세 정보 받기 API 로직 수정 (#240)
kanghana1 Aug 3, 2025
eeb9503
feat: 찜 개수 제한 관련 로직 추가 (#242)
kanghana1 Aug 3, 2025
24d201a
[feat/#248] 웹소켓 기본 설정 및 연결 관리 구현 (#249)
Dimo-2562 Aug 4, 2025
0277927
[feat/#243] 개인 채팅방 생성 및 참여 API 구현 (#245)
ri-mmu Aug 4, 2025
a67e4d8
fix: senderName 삭제
ri-mmu Aug 4, 2025
3a73bd1
feat: 개인 채팅방 목록 조회 API 응답 구현
ri-mmu Aug 4, 2025
b277dc1
feat: 컨버터 구현
ri-mmu Aug 4, 2025
6159394
feat: 컨트롤러 구현
ri-mmu Aug 4, 2025
80aada5
feat: 서비스 구현
ri-mmu Aug 4, 2025
2b4a3ff
[feat/#252] 개인 채팅방 이름으로 검색 API 구현 (#254)
ri-mmu Aug 4, 2025
67700c8
feat: 클라이언트에서 서버로 보내는 Request DTO 구현
Dimo-2562 Aug 4, 2025
85ab93e
feat: Request 객체와 세션에서 필요한 정보 추출
Dimo-2562 Aug 4, 2025
7ab34cc
feat: 에러 처리 로직 구현
Dimo-2562 Aug 4, 2025
c905bfd
feat: 메시지 반환 DTO 구현
Dimo-2562 Aug 4, 2025
6243985
fix: develop 브랜치 rebase
Dimo-2562 Aug 4, 2025
476cb13
feat: 메시지 생성 및 저장 로직 구현
Dimo-2562 Aug 4, 2025
06de7ca
fix: rebase 충돌 해결
Dimo-2562 Aug 4, 2025
9b2d084
fix: Request 객체를 직접 받는 걸로 변경
Dimo-2562 Aug 4, 2025
8ffbb7e
chore: 오타 수정
Dimo-2562 Aug 4, 2025
3bf258b
fix: 필요없는 필드 제거
Dimo-2562 Aug 4, 2025
e98c48e
feat: 반환 로직 구현
Dimo-2562 Aug 4, 2025
5052141
feat: 메시지 전송 로직 호출 및 에러 처리 로직 구현
Dimo-2562 Aug 4, 2025
208e194
feat: Request 객체 검증 로직 구현
Dimo-2562 Aug 4, 2025
bda7a40
chore: 조건문 순서 변경
Dimo-2562 Aug 4, 2025
90f13e2
refactor: 서비스로 Request 객체 넘기는 것은 안티패턴이므로 제거
Dimo-2562 Aug 4, 2025
1ac1b05
feat: 브로드캐스트 로직 구현
Dimo-2562 Aug 4, 2025
fadeeee
refactor: 에러 처리 서비스 단에서 진행하도록 변경
Dimo-2562 Aug 4, 2025
e2a352e
fix: 브로드캐스트 동시성 문제 해결
Dimo-2562 Aug 4, 2025
5684af0
feat: 브로드캐스트 병렬 실행 로직 구현
Dimo-2562 Aug 4, 2025
9234e4b
chore: 파일 들여쓰기 및 import 정리
Dimo-2562 Aug 4, 2025
a6a75a8
fix: 조회 로직 에러 수정
Dimo-2562 Aug 4, 2025
0ccd53f
feat: 테스트 의존성 추가
Dimo-2562 Aug 4, 2025
b39931f
feat: 핸들러 테스트 초기 세팅 구현
Dimo-2562 Aug 4, 2025
c2cc533
feat: 웹소켓 연결 성공 테스트 구현
Dimo-2562 Aug 4, 2025
5d84cfb
feat: 웹소켓 연결 실패 테스트 구현
Dimo-2562 Aug 4, 2025
24b7ef7
feat: 메시지 전송 성공 테스트 구현 - 브로드캐스트 제외
Dimo-2562 Aug 4, 2025
7004e6a
fix: 잘못된 필드명 변경
Dimo-2562 Aug 4, 2025
fed0580
feat: 여러 사용자 테스트를 위해서 @InjectedMocks 대신 수동 생성으로 변경
Dimo-2562 Aug 4, 2025
f900a6a
fix: package-private 메서드에 접근하기 위해 패키지 경로 동일화
Dimo-2562 Aug 4, 2025
f9401ba
chore: 코드 순서 변경
Dimo-2562 Aug 4, 2025
edb8ba9
feat: 브로드캐스트 로직 테스트 구현
Dimo-2562 Aug 4, 2025
3b7397e
feat: 완전한 메시지 전송 플로우 테스트 구현
Dimo-2562 Aug 4, 2025
c8abc2f
[feat/#162] 알림 추가 로직 구현 (#253)
kanghana1 Aug 4, 2025
b732234
[fix/#255] 알림 전체 조회 응답에 data 필드 추가 (#263)
kanghana1 Aug 4, 2025
6b8c834
[feat/#247] 신규 멤버 초대 보내기 API 구현 (#257)
dbalsk Aug 4, 2025
d0f0316
[feat/#264] 개발자 테스트용 토큰 발급 (#266)
kanghana1 Aug 4, 2025
043d4ef
fix: 운동 도메인 id값 로그인한 사용자 id로 변경 (#268)
Dimo-2562 Aug 4, 2025
e7e0d44
[feat/#262] 모임 초대 처리 API 구현 (#270)
dbalsk Aug 4, 2025
77f59e0
[fix] cors 수정
kanghana1 Aug 5, 2025
8e06e52
[fix] cors 수정
kanghana1 Aug 5, 2025
fe97762
[fix/#238] 모임 유형을 오후 또는 오전으로 조회 시, 상시도 조회되도록 수정 (#272)
dbalsk Aug 5, 2025
3a54c2e
[chore/#274] 운동 도메인에서 이미지 url 필드명을 profileImageUrl로 통일 (#275)
Dimo-2562 Aug 5, 2025
549e2f3
feat: DTO에 필드 추가 및 프로필도 같이 조회하도록 변경
Dimo-2562 Aug 5, 2025
b9c5947
feat: 이미지 url도 반환하도록 변경
Dimo-2562 Aug 5, 2025
3dfaf8d
fix: 테스트에서도 이미지 url 추가
Dimo-2562 Aug 5, 2025
c09f673
[refactor/#276] 운동 도메인 커맨드 서비스 분리 (#277)
Dimo-2562 Aug 6, 2025
52e26da
[feat/#231] 모임 정보 수정 API 구현 (#278)
dbalsk Aug 6, 2025
75d3dc2
[feat/#279] 초기 채팅방 조회 API 구현 (#281)
Dimo-2562 Aug 6, 2025
f28d8d7
[debug/#289] 전송 이미지 크기 설정 (#293)
kanghana1 Aug 7, 2025
d84b0d5
[feat/#280] 과거 메시지 조회 API 구현 (#282)
Dimo-2562 Aug 7, 2025
052613f
[feat/#256] 모임 채팅방 목록 조회 slice 기반 무한스크롤 구현 (#261)
ri-mmu Aug 7, 2025
6402aa3
Merge branch 'develop' into feat/#250
Dimo-2562 Aug 7, 2025
bed9a66
[fix/#291] 모임 id값 로그인한 사용자 id로 변경
dbalsk Aug 7, 2025
1298072
[fix/#294] 초대 알림 추가시 invitationId 넘겨주기 (#295)
kanghana1 Aug 7, 2025
1ba4113
[feat/#260] 모임 관련 알림 생성 로직 추가 (#290)
dbalsk Aug 7, 2025
ad8d73e
debug: 에러 코드 변경
Dimo-2562 Aug 7, 2025
e8a6a4f
Merge branch 'develop' of https://github.com/Cockple/Cockple_BE into …
Dimo-2562 Aug 7, 2025
da238ff
[feat/#250] 메시지 전송 기능 구현 (#259)
Dimo-2562 Aug 7, 2025
71778f0
debug: develop 브랜치 충돌 해결
Dimo-2562 Aug 7, 2025
dbabdf1
fix: 채팅룸 네임 필드 삭제 (#304)
ri-mmu Aug 8, 2025
ecb7be8
[fix/#302] 하드코딩->로그인 아이디로 변경 (#303)
ri-mmu Aug 8, 2025
98ae9d0
fix: AWS 배포 과정에서 gradle 의존성 캐싱하도록 변경
Dimo-2562 Aug 8, 2025
83bb787
[feat/#283] 모임 채팅방 나가고 들어올 때 시스템 메시지 보내는 로직 구현 (#308)
Dimo-2562 Aug 9, 2025
b85968f
[feat/#284] 개인 채팅 slice기반 목록 조회 구현 (#309)
ri-mmu Aug 9, 2025
90e6c24
[feat/#305] redis 기본 설정 추가 및 도입 (#313)
kanghana1 Aug 9, 2025
7bc4978
debug: 임시로 웹소켓 경로 허용 (#316)
Dimo-2562 Aug 9, 2025
59d0ec4
[feat/#265] 채팅방 구독 로직 구현 (#314)
Dimo-2562 Aug 10, 2025
d175af9
[feat/#306] JWT를 활용해 웹소켓 연결 인증 단계 구현 (#317)
Dimo-2562 Aug 10, 2025
0cf90c3
[feat/#287] 다운로드 토큰 발급 구현 (#310)
dbalsk Aug 10, 2025
08b45f4
[feat/#288] 파일 다운로드 구현 (#318)
dbalsk Aug 10, 2025
aa900f7
fix: cors 프론트엔드 url 반영
kanghana1 Aug 10, 2025
c5b2fa4
[feat/#319] 개발자용 토큰 발급 API(다른 사용자) 구현 (#320)
Dimo-2562 Aug 11, 2025
e4f9fc6
[fix/#324] 모임 주소 중복 유니크 제약조건 추가 (#325)
dbalsk Aug 11, 2025
8ac20dc
[feat/#300] 채팅방 구독 해제 로직 (#321)
Dimo-2562 Aug 12, 2025
19462af
[feat/#311] 파일 다운로드 리팩토링 / 파일 업로드 API 구현 (#323)
dbalsk Aug 12, 2025
a388190
[feat/#322] 탈퇴 회원 시큐리티 필터에서 검증 (#327)
kanghana1 Aug 12, 2025
d05eac6
[feat/#328] JWT null인 경우 예외처리 (#329)
kanghana1 Aug 12, 2025
4a22f40
[feat/#296] 키워드 추가 API 구현 (#330)
dbalsk Aug 12, 2025
7305a16
[feat/#335] 키워드 삭제 API 구현 (#336)
dbalsk Aug 12, 2025
20cb6bd
[feat/#301] 채팅방 자동 읽음 로직 구현 (#331)
Dimo-2562 Aug 13, 2025
f3883fb
debug: LEFT JOIN으로 개인 채팅 조회 안 되는 에러 해결 (#338)
Dimo-2562 Aug 13, 2025
11379fa
[fix/#297] 여복인 경우 MaleLevel 추가 불가능하도록 수정 (#340)
dbalsk Aug 13, 2025
cf935d8
[fix/#326] 특정 지역으로 조회 시, addr2가 전체인 모임도 조회되도록 수정 (#341)
dbalsk Aug 13, 2025
16a6e17
[fix/#334] 개인 채팅에서 처음 메시지 보내면 채팅방 초대 로직으로 변경 (#342)
Dimo-2562 Aug 14, 2025
bddcb12
[fix/#345] 급수 조건이 맞지 않더라도 모임의 멤버가 될 수 있도록 수정 (#346)
dbalsk Aug 14, 2025
82ec060
fix: 운동 신청 시 급수 조건 검증 로직 주석처리 (#349)
Dimo-2562 Aug 14, 2025
1266c58
fix: 임시 url -> 실제 메달 이미지 url (#351)
ri-mmu Aug 15, 2025
2234c40
[feat/#355] 운동 수정을 위한 조회 API 구현 (#356)
Dimo-2562 Aug 15, 2025
522d941
fix: 모임 운동 캘린더 조회 API에서 운동 참여 여부도 반환하도록 변경 (#354)
Dimo-2562 Aug 15, 2025
6b8603c
[feat/#350] 모임 id로 roomid 조회 API 구현 (#352)
dbalsk Aug 15, 2025
408ee48
docs: README 작성 (#358)
Dimo-2562 Aug 15, 2025
dcc5e2c
[fix/#361] 모임 관련 검증 수정사항 반영 (#363)
dbalsk Aug 15, 2025
05dc985
[fix/#362] 현재 (목록/개인) 채팅방 목록 조회 및 검색 API에서 채팅방이 없을 때 에러 던지는 걸 빈 배열 던지…
Dimo-2562 Aug 15, 2025
0b238d3
debug: 웹소켓 설정에서 프론트 배포 주소 CORS 허용 (#360)
Dimo-2562 Aug 15, 2025
aea5248
[fix/#332] 채팅 메시지 조회할 때 읽지않은 멤버 수도 반환하도록 변경 (#344)
Dimo-2562 Aug 15, 2025
f2d1d58
[debug/#365] 잘못된 사용자id를 넘겨주어 생기던 로직 오류 해결 (#366)
dbalsk Aug 15, 2025
5465036
[docs] 리드미 약간 수정
kanghana1 Aug 16, 2025
0b21534
[feat/#367] 채팅 보낼 때 이미지와 파일도 같이 보낼 수 있도록 로직 추가 (#373)
Dimo-2562 Aug 17, 2025
159cfdb
[feat/#370] 이미지 다운로드 API 구현 (#371)
dbalsk Aug 17, 2025
a252a83
[fix/#339] 급수 검색에서 포함된 글자만으로도 조회되도록 수정 (#374)
dbalsk Aug 17, 2025
c351f66
[fix/#375] 모임 상세 조회 응답 필드 추가 (#377)
dbalsk Aug 17, 2025
5f13180
debug: 운동 상세 조회 API에서 멤버 ID값이 아닌 멤버 운동 참여 ID값을 반환하던 로직 에러 해결 (#381)
Dimo-2562 Aug 18, 2025
947876d
debug: CD 최신 이미지 반영 문제 해결 (#383)
Dimo-2562 Aug 18, 2025
57039af
debug: 남아있는 컨테이너 강제 제거하는 스크립트 추가 (#384)
Dimo-2562 Aug 18, 2025
4678c06
[fix/#385] 채팅방 목록에서 마지막 메시지 표시 로직 개선 (#386)
Dimo-2562 Aug 18, 2025
f623155
[fix/#388] 키워드 추가를 다중 선택이 가능하도록 수정 (#389)
dbalsk Aug 18, 2025
249f4cf
debug: content가 비어있을 때 hasContent가 true가 되는 에러 해결 (#391)
Dimo-2562 Aug 18, 2025
c1b8bd2
[fix/#392] 모임 목록 조회 시, 응답에 찜 여부 추가 (#394)
dbalsk Aug 18, 2025
9e2b1fe
[fix/#379] 프로필 이미지 관련 오류 수정 (#393)
kanghana1 Aug 19, 2025
34f1387
[feat/#372] WebSocket 요청마다 에러를 반환하도록 개선 (#395)
Dimo-2562 Aug 19, 2025
a8fa293
[fix/#379] 프로필 사진 수정 오류 (#396)
kanghana1 Aug 19, 2025
54cda6a
[fix/#398] 토큰 재발급 경로 permitAll 처리 (#399)
kanghana1 Aug 19, 2025
b3e9d7b
[feat/#400] 채팅 메시지에서 이모티콘과 일반 이미지 구분 기능 구현 (#402)
Dimo-2562 Aug 19, 2025
53850b0
[fix/#397] 모임 초대, 가입신청 처리 알림 추가 (#401)
dbalsk Aug 19, 2025
fe5956d
[feat/#403] 마이프로필 키워드 조회 추가 (#404)
kanghana1 Aug 19, 2025
9347b96
[chore/#405] 리프레시 토큰 재발급 텀 줄이기 (#406)
kanghana1 Aug 20, 2025
b480c95
fix: 내 운동 리스트 조회 API에 레벨 필드 추가 (#408)
Dimo-2562 Aug 20, 2025
6e26e09
[feat/#343] Redis 기반 채팅방 구독 관리 시스템 구축 (#409)
Dimo-2562 Aug 20, 2025
1d5b8ac
[chore/#411] 리프레시토큰 관련 cors 수정 (#412)
kanghana1 Aug 20, 2025
a228330
[feat/#312] 채팅방 목록 조회에서 마지막 메시지 업데이트 되도록 로직 구현 (#410)
Dimo-2562 Aug 20, 2025
5918fc1
debug: Redis에서 Jackson 직렬화 문제 해결 (#414)
Dimo-2562 Aug 21, 2025
7d050fc
fix: Update cd.yml
kanghana1 Aug 21, 2025
554acd5
[debug/#415] Redis에서 객체 조회해올 때 역직렬화 문제 해결 (#416)
Dimo-2562 Aug 21, 2025
4aa3940
feat: Redis 헬스 체크 api 구현 (#418)
Dimo-2562 Aug 21, 2025
85c5bc2
Update cd.yml
Dimo-2562 Aug 21, 2025
ccf7f5b
Update cd.yml
Dimo-2562 Aug 21, 2025
0dcedc2
Update cd.yml
Dimo-2562 Aug 21, 2025
96cae2c
debug: redis 컨테이너 명 불일치 문제 해결
Dimo-2562 Aug 21, 2025
9d5531a
Update cd.yml
kanghana1 Aug 21, 2025
d8d0c50
[feat/#419] 채팅방 목록에서 이모티콘과 일반 사진 구분 표시 (#420)
Dimo-2562 Aug 21, 2025
03b7b15
[fix/#421] profile imgKey null, 비어있는 값 모두 체크 (#422)
kanghana1 Aug 21, 2025
1b87724
debug: 내가 초대한 게스트 조회 API에서 대기자 번호 에러 해결 (#424)
Dimo-2562 Aug 22, 2025
c27ba81
[feat/#425] 특정 사용자 모임 조회 API 컨트롤러 메서드 구현 (#426)
dbalsk Sep 12, 2025
373d474
chore: 잘못된 url 주소 수정 (#428)
dbalsk Sep 12, 2025
e3cdb02
set: update cd.yml
kanghana1 Sep 21, 2025
0b9cd4a
set: update ci.yml
kanghana1 Sep 21, 2025
f45a174
[feat/#430] 회원탈퇴 카카오 연결 끊기 구현 (#433)
kanghana1 Nov 1, 2025
8bc4a48
feat: 회원탈퇴 배포서버에 반영
kanghana1 Nov 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseCookie;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import umc.cockple.demo.domain.member.dto.*;
import umc.cockple.demo.domain.member.dto.kakao.KakaoLoginDTO;
import umc.cockple.demo.domain.member.exception.MemberErrorCode;
import umc.cockple.demo.domain.member.exception.MemberException;
import umc.cockple.demo.domain.member.service.MemberCommandService;
Expand All @@ -19,6 +19,7 @@
import umc.cockple.demo.global.oauth2.service.KakaoOauthService;
import umc.cockple.demo.global.response.BaseResponse;
import umc.cockple.demo.global.response.code.status.CommonSuccessCode;
import umc.cockple.demo.global.security.domain.CustomUserDetails;
import umc.cockple.demo.global.security.utils.SecurityUtil;

import java.io.IOException;
Expand Down Expand Up @@ -128,9 +129,9 @@ public ResponseEntity<TokenRefreshResponse> refresh(@CookieValue("refreshToken")
@PatchMapping(value = "/member")
@Operation(summary = "회원 탈퇴 API",
description = "사용자 회원 탈퇴")
public BaseResponse<String> withdraw() {
public BaseResponse<String> withdraw(@AuthenticationPrincipal CustomUserDetails member) {

Long memberId = SecurityUtil.getCurrentMemberId();
Long memberId = member.getMemberId();

memberCommandService.withdrawMember(memberId);
return BaseResponse.success(CommonSuccessCode.NO_CONTENT);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ public enum MemberErrorCode implements BaseErrorCode {

NICKNAME_IS_NULL(HttpStatus.BAD_REQUEST, "MEM_AUTH_401", "토큰 생성 중 닉네임이 존재하지 않습니다."),

OAUTH_UNLINK_FAIL(HttpStatus.INTERNAL_SERVER_ERROR, "MEM_AUTH_501", "카카오 연결 끊기에 실패했습니다.")


;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import umc.cockple.demo.domain.member.domain.*;
import umc.cockple.demo.domain.member.dto.MemberDetailInfoRequestDTO;
import umc.cockple.demo.domain.member.dto.UpdateProfileRequestDTO;
import umc.cockple.demo.domain.member.dto.kakao.KakaoLoginDTO;
import umc.cockple.demo.domain.member.enums.MemberPartyStatus;
import umc.cockple.demo.domain.member.exception.MemberErrorCode;
import umc.cockple.demo.domain.member.exception.MemberException;
Expand All @@ -19,9 +18,9 @@
import umc.cockple.demo.domain.image.service.ImageService;

import java.util.List;
import umc.cockple.demo.global.oauth2.service.KakaoOauthService;

import static umc.cockple.demo.domain.member.dto.CreateMemberAddrDTO.*;
import static umc.cockple.demo.domain.member.dto.kakao.KakaoLoginDTO.*;

@Service
@Transactional
Expand All @@ -36,6 +35,7 @@ public class MemberCommandService {
private final MemberPartyRepository memberPartyRepository;
private final ChatRoomMemberRepository chatRoomMemberRepository;

private final KakaoOauthService kakaoOauthService;
private final ImageService imageService;


Expand Down Expand Up @@ -87,6 +87,9 @@ public void withdrawMember(Long memberId) {
memberExerciseRepository.deleteAllByMember(member);
memberPartyRepository.deleteAllByMember(member);

// 카카오 연결 끊기
kakaoOauthService.unlinkAccess(member);

// 활성화 여부 해제, 리프레시 토큰 삭제
member.withdraw();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ public class KakaoClient {
@Value("${kakao.user-info-uri}")
private String userInfoUri;

@Value("${kakao.unlink-uri}")
private String unlinkUri;

@Value("$kakao.admin-key")
private String adminKey;


// 인가코드로 AccessToken 요청하기
public String getAccessToken(String code) {
Expand Down Expand Up @@ -74,5 +80,19 @@ public KakaoClientInfo getClientInfo(String accessToken) {
return new KakaoClientInfo(kakaoId, nickname);
}

// 회원 탈퇴를 위해 카카오와 연결 끊기
public void unlinkByAdmin(Long socialId) {
webClient.post()
.uri(unlinkUri)
.header(HttpHeaders.AUTHORIZATION, "KakaoAK " + adminKey)
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.body(BodyInserters.fromFormData("target_id_type", "user_id")
.with("target_id", String.valueOf(socialId)))
.retrieve()
.toBodilessEntity()
.block()
;

log.info("[KAKAO] unlink OK. kakaoUserId={}", socialId);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package umc.cockple.demo.global.oauth2.domain.info;

public record KakaoClientInfo(
Long kakaoId,
Long kakaoId, // 소셜아이디
String nickname
) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ public KakaoLoginResponseDTO signup(String code) {
return new KakaoLoginResponseDTO(accessToken, refreshToken, member.getId(), member.getNickname(), newMember);
}

public void unlinkAccess(Member member) {
if (member.getSocialId() != null) {
try {
kakaoClient.unlinkByAdmin(member.getSocialId());
} catch (Exception e) {
throw new MemberException(MemberErrorCode.OAUTH_UNLINK_FAIL);
}
}

}

public KakaoLoginResponseDTO createDevToken() {
// 특정 member 가져오기
Member member = memberRepository.findById(1L)
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ kakao:
token-uri: https://kauth.kakao.com/oauth/token
user-info-uri: https://kapi.kakao.com/v2/user/me
redirect-uri: ${KAKAO_REDIRECT_URI}
admin-key: ${KAKAO_ADMIN_KEY}
unlink-uri: https://kapi.kakao.com/v1/user/unlink

jwt:
secret: ${JWT_SECRET_KEY}
Expand Down