Skip to content
Open
Show file tree
Hide file tree
Changes from 148 commits
Commits
Show all changes
230 commits
Select commit Hold shift + click to select a range
d7ec38c
Merge pull request #127 from GoormOnlyOne/develop
gkdudans Aug 18, 2025
88a450e
Merge branch 'develop' of https://github.com/GoormOnlyOne/OnlyOne-Bac…
doehy Aug 21, 2025
b16decc
Merge branch 'develop' of https://github.com/GoormOnlyOne/OnlyOne-Bac…
Aug 26, 2025
6528148
Merge branch 'develop' of https://github.com/GoormOnlyOne/OnlyOne-Bac…
Aug 26, 2025
caa5820
feat: querydsl 설정
Aug 27, 2025
189eb25
test : 그라파나 프로메테우스 설정, 자코코 커버리지 개선
choigpt Aug 27, 2025
6223323
test : 배치 생성 테스트 수정
choigpt Aug 27, 2025
c74d182
feat: QueryDsl 설정 클래스
ghkddlscks19 Aug 28, 2025
2b1882b
feat: full text 검색 쿼리 커스텀
ghkddlscks19 Aug 28, 2025
1895906
feat: db 인덱스 추가
ghkddlscks19 Aug 28, 2025
e6dcf3d
Merge pull request #134 from GoormOnlyOne/develop
gkdudans Aug 28, 2025
e0b849e
test: 알림 테스트 네이밍 표준화 및 안정화
choigpt Aug 28, 2025
3bb26ff
fix: conflict 해결
ghkddlscks19 Aug 28, 2025
1dc112f
refact: 테스트 코드 작성 및 프로덕션 코드 수정
doehy Aug 28, 2025
ff136c3
Merge branch 'develop' of https://github.com/GoormOnlyOne/OnlyOne-Bac…
doehy Aug 28, 2025
c6296a3
feat: ClubCreateServiceTest
doehy Aug 28, 2025
55bb784
refactor: querydsl로 변경
ghkddlscks19 Aug 29, 2025
3f08752
Merge pull request #138 from GoormOnlyOne/feat/feed/hyun
ghkddlscks19 Aug 29, 2025
6c37859
feat: merge conflict 해결
ghkddlscks19 Aug 29, 2025
b24aa12
Merge pull request #139 from GoormOnlyOne/test/search/chan
gkdudans Aug 29, 2025
3506e95
test: 채팅 api 테스트 코드 추가
NamYeonW00 Aug 29, 2025
9d9232b
Merge branch 'develop' into refact/chat/yw
NamYeonW00 Aug 29, 2025
84f5027
Merge pull request #140 from GoormOnlyOne/refact/chat/yw
gkdudans Aug 29, 2025
6256644
merge: develop 브랜치와 알림 기능 병합 완료
choigpt Aug 29, 2025
b913a4c
chore: QueryDSL 설정 정리
choigpt Aug 29, 2025
0423f35
fix: QueryDslConfig 파일명 대소문자 정리 (QuerydslConfig으로 통일)
choigpt Aug 29, 2025
31bf845
chore: 불필요한 파일 및 빌드 아티팩트 정리
choigpt Aug 29, 2025
2c7c168
chore: .gitignore에 QueryDSL 생성 파일 추가
choigpt Aug 29, 2025
ebae877
chore: .claude 설정 폴더 제거 및 .gitignore 추가
choigpt Aug 29, 2025
6ce5e13
Merge pull request #141 from GoormOnlyOne/feat/notification/haechang
ghkddlscks19 Aug 29, 2025
274911c
chore: QueryDSL 생성 파일 완전 제거 및 .gitignore 업데이트
choigpt Aug 29, 2025
0974316
refactor: SseEmittersService를 global.sse 패키지로 이동
choigpt Sep 1, 2025
1702a52
Merge remote-tracking branch 'origin/develop' into feat/notification/…
choigpt Sep 1, 2025
f6098a0
feat: 그라파나, 프로메테우스 설정 추가
gkdudans Sep 1, 2025
81f91b6
refactor: NotificationService 의존성 주입 개선 및 메서드 통일
choigpt Sep 1, 2025
55bc129
remove: FCM 서비스 및 사용하지 않는 알림 기능 제거
choigpt Sep 1, 2025
f8236f0
Merge pull request #142 from GoormOnlyOne/refactor/settlement/gkdudans
ghkddlscks19 Sep 1, 2025
96916c4
restore: 핵심 테스트 파일 복구
choigpt Sep 1, 2025
8dc055e
fix: 채팅 관련 수정
Sep 1, 2025
d9bbb49
test: 알림 및 SSE 서비스 테스트 구조 개선
choigpt Sep 1, 2025
457f212
test: 알림 이벤트 핸들러 및 SSE 컨트롤러 테스트 구조 개선
choigpt Sep 1, 2025
684b989
fix: 복합 인덱스 수정
ghkddlscks19 Sep 1, 2025
1a9d525
Merge branch 'develop' into feat/notification/haechang
choigpt Sep 1, 2025
e95c2a3
fix: 통합검색 where 절 우선순위 조정
ghkddlscks19 Sep 1, 2025
855c801
fix: 코드래빗 리뷰 반영 - JDK 17 호환성 및 null 안전성 개선
choigpt Sep 1, 2025
22364c9
fix: 지역, 관심사를 서브쿼리로 먼저 실행되도록 수정
ghkddlscks19 Sep 1, 2025
8c628cd
feat: arrayList import
Sep 1, 2025
a670e8b
feat: SSE 전용 인증 필터 및 알림 서비스 리팩토링
choigpt Sep 1, 2025
2794d1b
Merge branch 'feat/notification/haechang' of https://github.com/Goorm…
choigpt Sep 2, 2025
df8bbf0
refactor: FCM 의존성 완전 제거 및 SSE 인증 테스트 강화
choigpt Sep 2, 2025
3b6f626
fix: SSE 인증 필터 Status enum 비교 로직 개선
choigpt Sep 2, 2025
a76f693
test: SseStreamControllerTest 인증 테스트 현실 반영
choigpt Sep 2, 2025
f699179
fix: 코드래빗 리뷰 반영 - JDK 17 호환성 및 null 안전성 개선
choigpt Sep 2, 2025
271ca12
Merge pull request #143 from GoormOnlyOne/feat/notification/haechang
choigpt Sep 2, 2025
a13c5f8
feat: member_count 추가
ghkddlscks19 Sep 2, 2025
213d475
fix: count 집계 함수 -> memberCount 컬럼으로 수정
ghkddlscks19 Sep 2, 2025
d9fb91c
feat: 모임 생성/가입 시 멤버 수 증가, 모임 탈퇴시 멤버 수 감소
ghkddlscks19 Sep 2, 2025
40c707e
Merge branch 'test/search/chan' of https://github.com/GoormOnlyOne/On…
ghkddlscks19 Sep 2, 2025
f2a2e8d
feat: merge conflict
ghkddlscks19 Sep 2, 2025
3bb924b
fix: memberCount 타입 캐스팅 오류 수정
ghkddlscks19 Sep 2, 2025
49407b5
fix: memberCount Long 타입으로 수정
ghkddlscks19 Sep 3, 2025
1fdb1f6
fix: 관련도 점수 4점 이상으로 수정
ghkddlscks19 Sep 3, 2025
37a6aec
fix: memberCount 다시 Long으로 수정
ghkddlscks19 Sep 3, 2025
8f2379e
fix: 복합 인덱스 수정
ghkddlscks19 Sep 3, 2025
7493464
Merge pull request #144 from GoormOnlyOne/test/search/chan
geleego Sep 3, 2025
ae27ef7
feat: SSE 알림 시스템 완전 구현 및 Firebase 의존성 제거
choigpt Sep 4, 2025
eb84f90
feat: redis 적용 전 성능 개선 및 통합 테스트 작성
doehy Sep 5, 2025
604cb32
feat: SSE 성능 최적화 및 대용량 트래픽 대응 개선
choigpt Sep 5, 2025
0717047
chore: .my.cnf 추가
ghkddlscks19 Sep 8, 2025
0d26223
chore: elasticsearch 추가
ghkddlscks19 Sep 8, 2025
453b74a
feat: @EnableRetry 추가
ghkddlscks19 Sep 8, 2025
eec485e
feat: elasticsearch 인덱싱
ghkddlscks19 Sep 8, 2025
b171686
feat: elasticsearch 검색 추가
ghkddlscks19 Sep 8, 2025
8926a01
feat: elasticsearch 검색 관련 에러코드 추가
ghkddlscks19 Sep 8, 2025
3aac3ad
feat: elasticsearch 검색 추가
ghkddlscks19 Sep 8, 2025
bf7bbc2
chore: elasticsearch 설정 및 불용어/동의어
ghkddlscks19 Sep 8, 2025
3769782
feat: elasticsearch 연동을 위한 ClubDocument 추가
ghkddlscks19 Sep 8, 2025
8e23894
refactor: int 타입을 Long 타입으로 변환
gkdudans Sep 8, 2025
e8eb453
refactor: 자동 정산 API 트랜잭션 분리 / 비동기 처리
gkdudans Sep 8, 2025
c3f913c
refactor: int 타입을 Long 타입으로 변환
gkdudans Sep 8, 2025
b0ad143
refactor: 유저별 정산 멀티쓰레드 처리로 수정
gkdudans Sep 9, 2025
ae78fbc
refactor: 알림 시스템을 배치 처리 기반으로 전환 및 SSE 성능 최적화
choigpt Sep 9, 2025
6b8ce16
fix: 동적 쿼리로 수정
ghkddlscks19 Sep 9, 2025
d4981e7
fix: 동기화 코드 제거
ghkddlscks19 Sep 9, 2025
6d23d81
fix: elasticsearch에 맞게 키워드 검색 반환 수정
ghkddlscks19 Sep 9, 2025
d549bce
fix: Elasticsearch 설정 수정
ghkddlscks19 Sep 10, 2025
c5d9a4e
feat : 성능 개선 과정
choigpt Sep 10, 2025
c0b191a
refactor: SSE 및 알림 시스템 성능 최적화 및 인증 통합
choigpt Sep 12, 2025
971f9c6
resolve: SecurityConfig merge conflict - combine monitoring endpoints
choigpt Sep 12, 2025
f89362e
merge: develop 브랜치에서 SSE/Notification 제외한 변경사항 선별 머지
choigpt Sep 12, 2025
1af644b
feat: Redis Lua 스크립트 추가
gkdudans Sep 12, 2025
7c72ec3
refactor: 가상스레드 상한 조정
gkdudans Sep 12, 2025
948df3c
refactor: Kafka 기본 설정 추가
gkdudans Sep 14, 2025
a3f7b30
feat: Kafka 기본 설정 추가
gkdudans Sep 14, 2025
3fe2882
refactor: 가상스레드 기반 처리 방법 수정
gkdudans Sep 14, 2025
379c101
refactor: 배치 크기 제한, 쿼리문 개선
gkdudans Sep 14, 2025
0ac52de
feat: 커스텀으로 변경
ghkddlscks19 Sep 15, 2025
229787d
feat: 유저ID를 통해 클럽ID를 가져오는 쿼리 추가
ghkddlscks19 Sep 15, 2025
09f6953
fix: 정렬 조건 수정
ghkddlscks19 Sep 15, 2025
560b137
feat: 커스텀, 구현 메소드 작성
ghkddlscks19 Sep 15, 2025
1e85b3b
refactor: log 제거
ghkddlscks19 Sep 15, 2025
6f26f83
refactor: StructuredTaskScope 기반 처리 방법 수정
gkdudans Sep 15, 2025
0273867
docs: 디버깅용 로그 추가
gkdudans Sep 15, 2025
88a72d3
Revert "docs: 디버깅용 로그 추가"
gkdudans Sep 15, 2025
b2ed041
feat: getCurrentuserId 로직 추가
ghkddlscks19 Sep 15, 2025
c99fdf0
fix: userId로 반환받아 불필요한 db 호출 수정
ghkddlscks19 Sep 15, 2025
8962f0e
refact: gitignore 수정
NamYeonW00 Sep 15, 2025
dc666d1
docs: 디버깅용 로그 제거
gkdudans Sep 15, 2025
ccb9c90
docs: 디버깅용 로그 제거
gkdudans Sep 15, 2025
d90a40b
docs: 디버깅용 로그 제거
gkdudans Sep 15, 2025
ee689e9
feat: 채팅 기능 최적화
NamYeonW00 Sep 15, 2025
1dd4795
refactor: Outbox 쿼리문 변경
gkdudans Sep 15, 2025
b635d98
refactor: 인터럽트 가능한 방식으로 수정
gkdudans Sep 15, 2025
f7c167c
refactor: 카프카 관련 코드 변경사항 반영
gkdudans Sep 15, 2025
b760ab2
feat: 좋아요 동시성 기능 최적화
doehy Sep 16, 2025
6ab1bfc
remove: NotificationAsyncConfig - Virtual Thread Executor로 대체
choigpt Sep 16, 2025
4a2b66a
config: Virtual Thread 및 Redis 설정 최적화
choigpt Sep 16, 2025
b7f9a0c
refactor: Spring EventPublisher 기반 알림 시스템으로 복원
choigpt Sep 16, 2025
a3cd3a5
cleanup: 알림 시스템 불필요한 서비스 클래스 제거
choigpt Sep 16, 2025
e7bbd1b
refactor: SSE 시스템 Virtual Thread 기반 최적화
choigpt Sep 16, 2025
2283db8
test: 알림 및 SSE 테스트 코드 업데이트
choigpt Sep 16, 2025
93a2fc5
update: 다른 도메인 서비스의 알림 연동 코드 수정
choigpt Sep 16, 2025
b44a94b
perf: 성능 테스트를 위한 빌드 설정 최적화
choigpt Sep 16, 2025
37f6264
fix: jwt kakaoId를 subject에서 받아오는 로직 수정
ghkddlscks19 Sep 16, 2025
131b1fa
Merge pull request #145 from GoormOnlyOne/test/search/chan
gkdudans Sep 16, 2025
db134dc
docs: .gitignore 업데이트
gkdudans Sep 16, 2025
9768e58
Merge branch 'develop' of https://github.com/GoormOnlyOne/OnlyOne-Bac…
gkdudans Sep 16, 2025
3a1321f
feat: 이벤트 배치 처리 시스템 구현
choigpt Sep 16, 2025
4c8398c
perf: 이벤트 처리 성능 병목 해결
choigpt Sep 16, 2025
135b43d
update: SSE 연결 관리자 개선
choigpt Sep 16, 2025
df6d9d5
refact: 채팅 관련 설정파일 수정
NamYeonW00 Sep 16, 2025
cfda51c
Merge pull request #146 from GoormOnlyOne/refactor/settlement/gkdudan…
gkdudans Sep 16, 2025
3ceb7d7
Merge branch 'develop' into refact/chat/yw
NamYeonW00 Sep 16, 2025
124a1e8
Merge pull request #147 from GoormOnlyOne/refact/chat/yw
ghkddlscks19 Sep 16, 2025
82ee3b6
feat: batchCount 크기 조정
doehy Sep 16, 2025
1ee59b9
Merge branch 'develop' of https://github.com/GoormOnlyOne/OnlyOne-Bac…
doehy Sep 16, 2025
fab656a
feat: Pull 충돌 해결
doehy Sep 16, 2025
8ca1c09
[Feat] 좋아요 동시성 기능 최적화
NamYeonW00 Sep 16, 2025
4a469b3
작업 중인 변경사항 임시 커밋
choigpt Sep 16, 2025
7bc8ca2
refactor: 테스트용 이벤트 로드 컨트롤러 제거
choigpt Sep 16, 2025
1b1bf52
clean: 로그 파일 및 테스트 스크립트 정리
choigpt Sep 16, 2025
b995472
fix: 머지 충돌 해결 및 대용량 로그 파일 제거
choigpt Sep 17, 2025
2675377
Merge remote-tracking branch 'origin/develop' into feat/notification/…
choigpt Sep 17, 2025
00644ee
chore: develop 브랜치와 머지 충돌 해결
choigpt Sep 17, 2025
fdad672
fix: 중복된 SseEmittersService 클래스 제거
choigpt Sep 17, 2025
77cad6f
fix: 코드 리뷰 이슈 수정
choigpt Sep 17, 2025
09fda9e
fix: @Async 어노테이션 제거로 트랜잭션 이벤트 리스너 호환성 확보
choigpt Sep 17, 2025
cbb918f
fix: Redis LocalDateTime serialization 및 Docker Compose 정리
choigpt Dec 17, 2025
7ea16d7
test: P0 피드 도메인 부하 테스트 추가
choigpt Feb 12, 2026
1f168eb
test: P0 일정/지갑 도메인 부하 테스트 추가
choigpt Feb 12, 2026
96ed462
test: P1 검색 도메인 부하 테스트 추가
choigpt Feb 12, 2026
06d7018
test: P1 채팅 도메인 부하 테스트 추가
choigpt Feb 12, 2026
499817f
test: P2 클럽 도메인 부하 테스트 추가
choigpt Feb 12, 2026
8df4b55
test: P2 크로스 도메인 사용자 여정 부하 테스트 추가
choigpt Feb 12, 2026
ea19df1
test: P3 자정 배치 임팩트 테스트 추가
choigpt Feb 12, 2026
632be84
chore: 전체 도메인 부하 테스트 데이터 생성 프로시저 추가
choigpt Feb 12, 2026
6c0a459
perf: 알림 도메인 부하 테스트 기반 성능 최적화
choigpt Feb 13, 2026
49e8fa3
refactor: 멀티 모듈 프로젝트 구조로 전환
choigpt Feb 17, 2026
16c9109
perf: 검색 도메인 Teammates 3단계 쿼리 분리 및 ES 검색 최적화
choigpt Feb 17, 2026
177b143
perf: Redis 캐시 TTL 및 HikariPool 커넥션 풀 최적화
choigpt Feb 17, 2026
bd80bd5
perf: 알림 도메인 성능 최적화
choigpt Feb 17, 2026
458b7b5
chore: Docker 배포 및 인프라 설정 추가
choigpt Feb 17, 2026
a203741
test: 전체 도메인 부하 테스트 스크립트 추가 및 업데이트
choigpt Feb 17, 2026
14dd6a9
refactor: 모듈 구조 리팩토링 및 서비스 CQRS 분리
choigpt Feb 18, 2026
68d7616
infra: Prometheus + Grafana 전체 모니터링 인프라 구축
choigpt Feb 18, 2026
8d56375
feat: 전체 도메인 기능 개선, 보안 강화 및 인프라 설정 업데이트
choigpt Feb 20, 2026
6ecacac
feat(chat): 채팅 도메인 기능 개선 및 Redis Pub/Sub 설정 추가
choigpt Feb 25, 2026
e1d789c
feat(feed): 피드 도메인 기능 개선 및 좋아요 스트림 컨슈머 안정화
choigpt Feb 25, 2026
e4660b7
feat(notification): 알림 도메인 서비스 개선 및 리포지토리 최적화
choigpt Feb 25, 2026
e9ffc93
refactor(security): 인증 필터 통합 및 SSE 보안 구조 개선
choigpt Feb 25, 2026
07233f7
infra: Docker 인프라 리소스 확장 및 설정 통합
choigpt Feb 25, 2026
29c6919
test: 전체 도메인 부하 테스트 스크립트 추가 및 모니터링 대시보드 구성
choigpt Feb 25, 2026
9131083
perf(feed): 피드 도메인 부하 테스트 기반 성능 최적화
choigpt Feb 25, 2026
8ded3b4
refactor: 전체 도메인 서비스 리팩토링 및 부하 테스트 기반 성능 최적화
choigpt Feb 26, 2026
dc11da8
fix(finance): 결제 Phase 3 detached entity 버그 수정 및 부하 테스트 구성
choigpt Feb 26, 2026
3a70841
refactor: 전체 도메인 서비스 리팩토링 및 프로젝트 구조 정리
choigpt Feb 27, 2026
4ee7402
perf(notification): 알림 시스템 인터페이스 추상화, 실시간 전송 및 부하 테스트
choigpt Feb 28, 2026
09da24d
perf(chat): 채팅 도메인 성능 최적화, 스토리지 추상화 및 부하 테스트
choigpt Mar 1, 2026
9e80cac
perf(finance): 정산 대량 요청 병목 개선 (p95 19.5s → 2.46s)
choigpt Mar 2, 2026
a3e7c43
infra: EC2 부하 테스트 환경 구축 스크립트 및 설정
choigpt Mar 3, 2026
0644ab9
feat: 전체 도메인 Port/Adapter 추상화, k6 부하 테스트, EC2 환경 구축
choigpt Mar 3, 2026
b3575a5
fix: QuerydslConfig를 api 모듈로 이동
choigpt Mar 3, 2026
fb5f288
fix: ElasticsearchConfig에 ec2 프로필 추가
choigpt Mar 3, 2026
ecbb4ec
fix: application-ec2.yml에 RabbitMQ 설정 추가
choigpt Mar 3, 2026
527804d
fix: seed-all-domains.sql _seq100k ENGINE=MEMORY→InnoDB
choigpt Mar 3, 2026
7cfce94
fix: seed-search.sql only_full_group_by 호환 수정
choigpt Mar 3, 2026
e781ed8
fix(seed): seed-finance.sql club_id FK 제약조건 오류 수정
choigpt Mar 3, 2026
20c0ae3
fix(k6): 전체 도메인 부하 테스트 데이터 정합성 및 4xx 오류 수정
choigpt Mar 3, 2026
e6c190a
fix(loadtest): k6 threshold 실패 시 파이프라인 중단 방지
choigpt Mar 4, 2026
5430b3d
feat(loadtest): thread dump 수집 + k6 HTML 리포트 자동 생성
choigpt Mar 4, 2026
bd155af
feat(loadtest): 도메인별 Grafana 스냅샷 자동 캡처
choigpt Mar 4, 2026
923de49
feat(loadtest): S3 자동 업로드 + k6→Prometheus 실시간 연동 + HTTP 파일서버
choigpt Mar 4, 2026
8dc4be9
fix(loadtest): S3 자격증명 미설정 시 graceful skip
choigpt Mar 4, 2026
ceaa2c0
fix(loadtest): S3 버킷명 onlyone-loadtest-results로 변경
choigpt Mar 4, 2026
870ef31
refactor: 코드 리뷰 반영 + 시드 데이터 10M+ 스케일링 + MongoDB 제거
choigpt Mar 5, 2026
22be594
fix(ec2): RabbitMQ/MongoDB 설정 제거 및 autoconfigure exclude 추가
choigpt Mar 5, 2026
4152bd8
fix(ec2): Mock Toss 클라이언트 ec2 프로필 활성화, Feign은 prod만
choigpt Mar 5, 2026
7a48c0f
fix(ec2): TestNotificationController ec2 프로필 활성화
choigpt Mar 5, 2026
c3f233f
perf(sse): Recovery 동기 실행 + threshold 조정 + VU 1.5배 증가
choigpt Mar 5, 2026
d4f82bf
perf(sse): Recovery 직접 전송으로 executor 경합 제거
choigpt Mar 5, 2026
16b169a
feat(notification): 알림 수평확장 + k6 Grafana 대시보드 + 부하테스트 문서
choigpt Mar 5, 2026
275e533
perf(chat): message 테이블 복합 인덱스 추가 + 쿼리 최적화
choigpt Mar 5, 2026
c5cadc1
perf(feed): 개인피드 쿼리 최적화 4종 — 커서 페이징 + 복합 인덱스 + 캐시 분리 + 인기도 사전계산
choigpt Mar 5, 2026
800607b
fix(feed): 인기도 스코어 갱신 배치 처리 — 50K 청크 단위 UPDATE로 타임아웃 방지
choigpt Mar 5, 2026
e8be166
fix(feed): 인기도 스케줄러 트랜잭션 분리 — self-invocation 프록시 문제 해결
choigpt Mar 5, 2026
cc229b6
perf(feed): 개인/인기 피드 IN절 → UNION ALL 전환 + 집중 테스트 스크립트
choigpt Mar 6, 2026
e5002c6
perf(feed): 개인 피드 UNION ALL → 클럽별 개별 쿼리 + Java 병합으로 변경
choigpt Mar 6, 2026
a55426c
fix(feed): 네이티브 쿼리 clubId Integer→Long 캐스팅 오류 수정
choigpt Mar 6, 2026
8e6f9d8
refactor: 멀티 모듈 → 단일 모듈 통합
choigpt Mar 7, 2026
3189569
style: 코드 컨벤션 정리 — import 정렬, 와일드카드 제거, 포맷 통일
choigpt Mar 7, 2026
3c88385
refactor: TransactionTemplate 빈 분리 + 피드 캐시 on/off 설정
choigpt Mar 7, 2026
0bd1480
chore: 설정/시드/k6 테스트 정리 — 불필요 스크립트 제거, 404 처리 수정, 로그 레벨 조정
choigpt Mar 7, 2026
c76bc72
chore: EC2 스크립트 MongoDB 참조 제거 + 삭제된 테스트 참조 정리
choigpt Mar 7, 2026
cfe68dc
fix: base 프로필에 Kakao redirect URI 추가
choigpt Mar 7, 2026
14f0d3b
fix: FeedLikeStreamConsumer TransactionTemplate 빈 충돌 — @Qualifier 지정
choigpt Mar 7, 2026
e54b877
perf(notification): 알림 쿼리 최적화 4종 — JOIN 변환, DELETE 통합, SSE 타임아웃 증가
choigpt Mar 7, 2026
a0243c4
perf(k6): SSE 테스트를 xk6-sse 모듈로 전환 — 정확한 connect duration 측정
choigpt Mar 7, 2026
81f9390
fix(k6): xk6-sse connected 감지 fallback 추가 — open 콜백 미호출 대비
choigpt Mar 7, 2026
9953c92
fix(k6): xk6-sse timeout + error close 추가 — VU 블록 방지
choigpt Mar 7, 2026
7e7f3cd
perf(notification): LEFT JOIN 제거 + markAll 단일문 통합 — lock contention 해소
choigpt Mar 7, 2026
a86023c
perf(chat): 채팅 쿼리 최적화 — 불필요 조회 제거 + HikariCP 400
choigpt Mar 7, 2026
991241a
perf(feed): 댓글 카운트 비동기 분리 + 쿼리 최적화 4종
choigpt Mar 8, 2026
d0a597e
perf(finance): 지갑 조회 N+1 제거 + 인덱스 4종 추가
choigpt Mar 8, 2026
f5c3955
refactor(wallet): 미사용 PESSIMISTIC_WRITE findByUser() 제거
choigpt Mar 8, 2026
cd90982
perf(finance): 결제 confirm 쿼리 경량화 + R/W 풀 분리 활성화
choigpt Mar 8, 2026
e4d30c7
perf: 전 영역 Redis @Cacheable 캐시 적용 (14개 엔드포인트)
choigpt Mar 8, 2026
524e198
chore: 앱 시작 스크립트 추가 (환경변수 자동 로드)
choigpt Mar 8, 2026
20d0070
perf: 알림 도메인 Redis 캐시 적용
choigpt Mar 8, 2026
de120ca
perf: k6 테스트 환경변수 스케일링 + 500x 시드 데이터 (MySQL/MongoDB)
choigpt Mar 9, 2026
5340984
perf: 정산 500K 증설 시드 + MongoDB 100x 시드 + clubForSchedule modulo 수정
choigpt Mar 9, 2026
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
11 changes: 0 additions & 11 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,3 @@ VITE_WS_ENDPOINT=https://api.buddkit.p-e.kr/ws

toss_payments_client_key = "test_ck_yL0qZ4G1VOD9R1EMNgyProWb2MQY"
toss_payments_secret_key = "test_sk_pP2YxJ4K87aM9n56AQLzVRGZwXLO"


# Firebase 설정
VITE_FIREBASE_API_KEY=AIzaSyBtmNNWYOo2Ei_tBDn2FNjTEA93rVg6LlU
VITE_FIREBASE_AUTH_DOMAIN=buddkit-40bb2.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=buddkit-40bb2
VITE_FIREBASE_STORAGE_BUCKET=buddkit-40bb2.firebasestorage.app
VITE_FIREBASE_MESSAGING_SENDER_ID=1073730325267
VITE_FIREBASE_APP_ID=1:1073730325267:web:b08aa144950c40e7af68e6
VITE_FIREBASE_MEASUREMENT_ID=G-9349WR6Q6W
VITE_FIREBASE_VAPID_KEY=BMvlz7JcrpEw9Mt2q3VrqMZFBomCaxGy43rqg0g8cGOCleYzMRf5O8wPv4-Vqp88LF36IxWupcao4ayeM3ji2zQ
13 changes: 7 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,19 +64,20 @@ grafana-data
prometheus-data
docker-compose.yml
prometheus.yml
<<<<<<< HEAD
datasource.yml
k6/

smoke_dummy.js

=======
influxdb-data
k6-test
redis-data/dump.rdb
.my.cnf
src/main/resources/application-stage.yml
k6/k6_result.json
k6/settlement_test.js
ngrinder-controller
>>>>>>> 1191fa0d327320b6ba956954cf597dcb07feda36

### Logs ###
logs/
*.log
boot.log
**/logs/
**/*.log
257 changes: 257 additions & 0 deletions README-DOCKER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
# Docker Compose 사용 가이드

## 개요

이 프로젝트는 단일 파일 `docker-compose.yml`로 통합되었으며, profiles를 사용하여 다양한 모드로 실행할 수 있습니다.

## 실행 모드

### 1. 인프라만 실행 (기본)

데이터베이스, Redis, Kafka, Elasticsearch 등 인프라 서비스만 실행합니다.

```bash
docker-compose up -d
```

**실행되는 서비스:**
- MySQL (port: 3306)
- Redis (port: 7379)
- Kafka (port: 10092, 29092)
- Zookeeper (port: 2181)
- Elasticsearch (port: 10200, 10300)
- Kafka UI (port: 10989)
- Prometheus (port: 9500)
- InfluxDB (port: 8086)
- Grafana (port: 3333)
- Jaeger (port: 16686)

### 2. 단일 애플리케이션 서버 모드

인프라 + 단일 앱 서버를 실행합니다.

```bash
docker-compose --profile single up -d
```

**추가 서비스:**
- app (port: 8080) - 단일 Spring Boot 애플리케이션

### 3. 스케일 모드 (3개 서버 + Nginx 로드밸런서)

인프라 + 3개 앱 서버 + Nginx 로드밸런서를 실행합니다.

```bash
docker-compose --profile scale up -d
```

**추가 서비스:**
- app1 (내부 포트: 8080)
- app2 (내부 포트: 8080)
- app3 (내부 포트: 8080)
- nginx (port: 8080) - 3개 서버로 부하 분산

**Nginx 로드밸런싱:**
- 알고리즘: `ip_hash` (같은 클라이언트는 같은 서버로 라우팅)
- SSE 연결 유지를 위한 특별한 설정 포함
- `/api/sse` 엔드포인트는 버퍼링 완전 비활성화

### 4. 부하 테스트 모드

스케일 모드 + K6 부하 테스트를 실행합니다.

```bash
# 스케일 모드 먼저 실행
docker-compose --profile scale up -d

# 부하 테스트 실행
docker-compose --profile load-test up k6
```

**K6 테스트 스크립트 변경:**

`docker-compose.yml` 파일에서 k6 서비스의 `command` 부분을 수정하여 다른 테스트를 실행할 수 있습니다:

```yaml
# 부하 분산 확인 테스트 (1분)
command: run --out influxdb=http://influxdb:8086/k6 /scripts/0-load-balance-test.js

# SSE 연결 테스트 (약 7분)
command: run --out influxdb=http://influxdb:8086/k6 /scripts/1-sse-connection-test.js

# 알림 생성 테스트 (5분)
command: run --out influxdb=http://influxdb:8086/k6 /scripts/2-notification-create-test.js

# API 조회 테스트 (5분)
command: run --out influxdb=http://influxdb:8086/k6 /scripts/3-api-query-test.js
```

## 서비스 확인

### 로그 확인

```bash
# 모든 서비스 로그
docker-compose logs -f

# 특정 서비스 로그
docker-compose logs -f app1
docker-compose logs -f nginx
docker-compose logs -f k6
```

### Nginx 부하 분산 확인

Nginx 로그를 확인하여 요청이 app1, app2, app3에 분산되는지 확인:

```bash
docker-compose logs -f nginx | grep "upstream:"
```

로그 출력 예시:
```
nginx | 172.20.0.1 - - [17/Dec/2025:12:00:00 +0000] "GET /actuator/health HTTP/1.1" 200 156 "-" "k6/0.45.0" upstream: 172.20.0.10:8080 upstream_response_time: 0.023
nginx | 172.20.0.1 - - [17/Dec/2025:12:00:01 +0000] "GET /actuator/health HTTP/1.1" 200 156 "-" "k6/0.45.0" upstream: 172.20.0.11:8080 upstream_response_time: 0.019
nginx | 172.20.0.1 - - [17/Dec/2025:12:00:02 +0000] "GET /actuator/health HTTP/1.1" 200 156 "-" "k6/0.45.0" upstream: 172.20.0.12:8080 upstream_response_time: 0.021
```

### 서비스 상태 확인

```bash
docker-compose ps
```

### 헬스체크 확인

```bash
# 단일 모드
curl http://localhost:8080/actuator/health

# 스케일 모드 (Nginx 통해 접근)
curl http://localhost:8080/actuator/health

# Nginx 자체 헬스체크
curl http://localhost:8080/nginx-health
```

## 모니터링

### Grafana

- URL: http://localhost:3333
- 기본 계정: admin / admin
- K6 테스트 결과는 InfluxDB 데이터소스에서 확인 가능

### Prometheus

- URL: http://localhost:9500
- 애플리케이션 메트릭 수집

### Jaeger

- URL: http://localhost:16686
- 분산 트레이싱

### Kafka UI

- URL: http://localhost:10989
- Kafka 토픽 및 메시지 모니터링

## 종료 및 정리

### 서비스 중지 (데이터 유지)

```bash
# 단일 모드
docker-compose --profile single down

# 스케일 모드
docker-compose --profile scale down
```

### 완전 삭제 (볼륨 포함)

```bash
docker-compose --profile scale down -v
```

### 빌드 캐시 삭제

```bash
docker-compose build --no-cache
```

## 트러블슈팅

### 포트 충돌

Windows에서 Redis 기본 포트(6379)가 충돌할 수 있습니다. 이 경우 7379 포트를 사용합니다.

```bash
# Windows에서 포트 사용 확인
netstat -ano | findstr :6379
```

### 컨테이너가 시작되지 않을 때

1. 로그 확인
```bash
docker-compose logs <service-name>
```

2. 헬스체크 상태 확인
```bash
docker inspect <container-name> | grep -A 10 Health
```

3. 재시작
```bash
docker-compose restart <service-name>
```

### Nginx가 upstream 서버를 찾지 못할 때

app1, app2, app3이 모두 healthy 상태가 될 때까지 기다립니다 (약 3분 소요).

```bash
# 앱 서버 헬스체크 상태 확인
docker-compose ps
```

## 개발 워크플로우

### 로컬 개발

1. 인프라만 실행하여 IDE에서 애플리케이션 실행
```bash
docker-compose up -d
```

2. IDE에서 Spring Boot 애플리케이션 실행 (port: 8080)

### 부하 테스트

1. 스케일 모드로 실행
```bash
docker-compose --profile scale up -d --build
```

2. 모든 서버가 healthy 상태가 될 때까지 대기 (약 3분)

3. K6 부하 테스트 실행
```bash
docker-compose --profile load-test up k6
```

4. Grafana에서 결과 확인 (http://localhost:3333)

5. Nginx 로그로 부하 분산 확인
```bash
docker-compose logs nginx | grep "upstream:" | tail -100
```

## 참고사항

- **docker-compose.scale.yml은 삭제 가능**: 모든 기능이 `docker-compose.yml`로 통합되었습니다.
- **K6 이미지**: `xk6-sse:local` 이미지가 사전에 빌드되어 있어야 합니다.
- **토큰 파일**: K6 테스트를 위해서는 `k6-load-test/tokens.json` 파일이 필요합니다.
Loading