본문 바로가기

카테고리 없음

✅ 2025.06.07 할 일 체크리스트

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 공식 사이트


🧭 실행 우선순위 추천

  1. 위치 기반 기능 테스트 (핵심 기능)
  2. Redis 구조 성능 비교 (속도 향상 핵심 요소)
  3. Kafka/Redis 비동기 처리 테스트
  4. REST API & 인증/예외 테스트
  5. 스케줄러 및 집계 테스트
  6. 서비스 리팩토링 + 단위 테스트
  7. Docker + AWS 연동 테스트
  8. JMH 벤치마크 성능 수치화

 

🧾 문서화 및 코드 정리 습관

  • 테스트 코드 작성 및 커버리지 확인 습관화
  • HTTP 요청/응답 구조 문서화 (예: Swagger, REST Docs 등)
  • 코드 변경 사항에 대한 주석보단 문서 중심의 기록 습관
    • 기능 흐름도, ERD, 시퀀스 다이어그램도 함께 문서화