1. 📚 스터디 주제 정리 (목표 지점 확인 및 질문자 지정)
주제 | 주요 질문 대상자 | 확인할 내용 요약 |
Kafka | 광민님, 하경님 | 정의, 사용 목적, 적합한 사용 사례 |
RabbitMQ | 본인 | 정의, 사용 목적, 다른 메시징 시스템과의 차별점 |
Redis | 한나님 | 정의, 사용 목적, Pub/Sub vs Streams vs Sorted Set 등 설정 방식의 적합성 |
FCM | 하경님 | 정의, 기본 개념, 전송 구조, 메시지 타입 및 사용법 |
Docker | 서하님 | 정의, 기본 개념, 도커파일 작성법, 컨테이너 실행 방법 |
2. ✍️ 스터디 블로그 정리 & 5분 요약 발표 준비
- 각 주제별 요점을 정리하여 블로그 포스트 작성
- 블로그 내용은 발표 시 5분 이내로 핵심만 전달 가능하도록 요약
- 핵심 정리 기준:
- 정의
- 사용 목적
- 주요 사용 예시
- 실무에서의 유의점 or 설정 팁
3. 🛠 향후 계획 및 주의사항
📌 기술/작업 흐름 정리
- 프론트 작업 및 연동 관련: 민준님께 확인
- AWS 연동성 사전 확인:
- S3, EC2, RDS 외에 EKS/Kubernetes까지 고려 가능성 검토
- IAM 권한 연계 및 서비스 연동 구조 이해 필요
🧪 테스트 및 실험 아이디어
- ✨ 정리: 테스트 우선순위 추천
우선순위 테스트 항목이유 ⭐ 1 위치 기반 기능(Redis GEO + 카카오맵) 핵심 서비스 기능이며, 정확도와 성능 모두 중요 ⭐ 2 Kafka/Redis 메시징 처리 테스트 FCM 등과 연결된 비동기 이벤트 신뢰성 확보 필요 ⭐ 3 API 인증/인가, 에러 처리 테스트 보안 및 사용자 응답 신뢰성 확보 ⭐ 4 집계/스케줄러 테스트 트렌드 기능 등 데이터 정확성 확보 ⭐ 5 Docker/AWS 통합 테스트 실서비스 배포 전 연동성 체크 목적
더보기
1. 🚨 위치 기반 기능 (재난 대응 핵심 기능)
🔬 목적: Redis GEO, 실시간 위치 추적, 반경 필터링 정확도 확보
테스트 | 항목설명 |
🔹 Redis GEO vs GEOHASH vs HASH 구조 성능 비교 | 저장/조회 속도, 정확도 측정 (JMH 권장) |
🔹 위치 추적 API 테스트 | 좌표 저장, 지역명 저장 API 정상 동작 확인 |
🔹 위치 중복 저장 방지 테스트 | 동일 사용자 위치 반복 전송 시 중복 방지 로직 확인 |
🔹 반경 2km 대피소 필터링 정확도 테스트 | GEOSEARCH 정확도/응답 속도 확인 |
🔹 Redis TTL 정책 테스트 | 사용자 위치, 대피소 캐시 등의 만료 정책 유효성 확인 |
2. 🔁 비동기 메시징 시스템 연동
🔬 목적: Kafka, Redis Streams, FCM 기반의 안정적 메시지 처리
테스트 | 항목설명 |
🔹 Kafka 기본 통신 테스트 | Producer → Consumer → 처리 로직 확인 |
🔹 메시지 지연/오류 발생 시 재시도 테스트 | RetryTemplate, Dead Letter Queue 구성 확인 |
🔹 Redis Streams 알림 처리 테스트 | stream key 만료 및 maxlen 제한 동작 테스트 |
🔹 FCM 푸시 알림 비동기 전송 테스트 | Redis/Kafka 큐 사용 시 병렬 처리, 실패 시 재시도 로직 포함 여부 확인 |
3. 🧾 REST API 및 문서화 테스트
🔬 목적: RESTful API의 안정성 확보 + 문서 자동화
테스트 | 항목설명 |
🔹 REST API Controller 단위 테스트 | MockMvc + @WebMvcTest 기반 요청/응답 검증 |
🔹 Spring REST Docs / Swagger 연동 | 테스트 기반 API 문서 자동 생성 확인 |
🔹 JWT 인증/인가 필터 테스트 | 인증 실패, 권한 거부 (401/403) 처리 테스트 |
🔹 예외 처리 일관성 테스트 | GlobalExceptionHandler 기반 일관된 응답 구조 검증 |
4. 📊 스케줄러 기반 통계/집계 기능
🔬 목적: 검색어/재난 통계 데이터 정합성 및 배치 안정성 확보
테스트 | 항목설명 |
🔹 검색 로그 → Trending 집계 흐름 테스트 | 스케줄러 → DB 반영 → 응답 테스트 |
🔹 Redis 집계 데이터 정합성 테스트 | 중복 집계, TTL 설정, 집계 시점 오류 확인 |
🔹 @Scheduled 중복 실행 방지 테스트 | 락 적용 여부, 비동기 중복 방지 확인 (Redis Lock 등) |
5. 🐳 Docker 및 AWS 연동 테스트
🔬 목적: 실배포 환경에서의 연동성 및 통신 테스트
테스트 | 항목설명 |
🔹 Docker 컨테이너 간 통신 테스트 | Spring Boot ↔ Redis ↔ Kafka 연결성 테스트 |
🔹 S3 연동 테스트 | 파일 업로드/다운로드 기능 정상 작동 여부 |
🔹 Docker Compose 통합 테스트 환경 구성 | testcontainers 또는 compose 파일 구성 확인 |
🔹 RDS, Redis, Kafka 등 연동 테스트 | 배포 전 구성 요소 정상 통신 여부 확인 |
6. 🚀 Redis 구조/속도 최적화 테스트
🔬 목적: Redis 데이터 구조 선택이 성능에 미치는 영향 분석
테스트 | 항목설명 |
🔹 GEO vs HASH 거리 계산 성능 비교 | 위치 조회/삽입 속도 벤치마킹 (JMH 추천) |
🔹 Key TTL 설정에 따른 메모리 영향 테스트 | 자동 만료 정책 적용 여부 확인 |
🔹 Redis Pipeline 성능 테스트 | 대량 위치/메시지 처리 시 성능 개선 확인 |
7. ♻️ 서비스 계층 리팩토링 및 테스트
🔬 목적: 유지보수성과 테스트 용이성 확보
리팩토링 | 항목설명 |
🔹 위치 저장 → LocationService, RegionService 분리 | 책임 분리로 테스트 및 변경 용이 |
🔹 재난 통계 로직 모듈화 | ReportAggregator, TrendingUpdater 등으로 책임 분리 |
🔹 DTO/응답 모델 분리 | Controller → DTO 변환 책임 명확화 |
🔹 단위 테스트 병행 작성 | Mockito, JUnit5 기반 테스트 작성 |
8. 🧪 JMH 벤치마크 테스트 (고급)
🔬 목적: 코드 최적화 전후 성능 차이 정량적 수치화
벤치마크 | 항목설명 |
🔹 Redis GEO vs HASH | 위치 조회 시간(ms) 비교 |
🔹 Kafka vs Redis Streams 소비 속도 | 처리량 (TPS), 지연 시간 비교 |
🔹 DTO 수동 매핑 vs ModelMapper | 변환 시간 성능 측정 |
📎 참고: JMH 공식 사이트
🧭 실행 우선순위 추천
- 위치 기반 기능 테스트 (핵심 기능)
- Redis 구조 성능 비교 (속도 향상 핵심 요소)
- Kafka/Redis 비동기 처리 테스트
- REST API & 인증/예외 테스트
- 스케줄러 및 집계 테스트
- 서비스 리팩토링 + 단위 테스트
- Docker + AWS 연동 테스트
- JMH 벤치마크 성능 수치화
🧾 문서화 및 코드 정리 습관
- 테스트 코드 작성 및 커버리지 확인 습관화
- HTTP 요청/응답 구조 문서화 (예: Swagger, REST Docs 등)
- 코드 변경 사항에 대한 주석보단 문서 중심의 기록 습관
- 기능 흐름도, ERD, 시퀀스 다이어그램도 함께 문서화