Spring AI Ops의 persistent repository cache를 활용한 Code Risk 분석과 Grafana Alerting 분석 흐름의 중요성을 강조합니다. Redis distributed lock을 사용하여 Git 작업 동시성 문제를 효과적으로 해결했으며, `preparePersistentRepository()` 메서드를 통해 동기화를 달성했습니다. 이를 통해 안정적인 분석 환경과 기능적인 fallback 정책을 유지하며 서비스의 가용성을 보장합니다.
ReadGrafana Alerting으로 장애 분석 기능 개발 중, Loki 로그와 JVM stack trace를 분석해서 소스 코드 수정 제안을 하는 기능 추가. 로그와 메트릭으로 원인 파악 후 소스 코드까지 확인 가능해짐. Source file resolve, source snippet 추출, AI 분석 결과와 소스 코드 비교 popup까지 구현하여 개선됨.
ReadAI 기반 운영 자동화 도구인 Spring AI Ops 개발과정 소개. 주요 기능은 Grafana Alerting과 Loki 로그 조회로 AI 장애 분석, GitHub git push로 코드 리뷰를 AI가 수행하는 것. Spring Boot, Kotlin, Spring AI, Redis, Java 21 Virtual Thread 등 기술 스택 사용. 중요 설계 포인트와 트러블슈팅 사례 포함. AI AutoConfiguration을 비활성화하고 Redis를 데이터 저장소로 사용함.
ReadLifelog 웹 앱은 Google Drive를 이미지 저장소로 사용하며, 느린 속도 문제를 해결하기 위해 Cache를 적용했다. Metadata API 호출 제거와 Nginx의 proxy_cache를 활용하여 이미지 캐싱을 개선했고, Cloudflare Cache Rule도 적용했다. 이로 인해 이미지 로딩 속도가 향상되었다.
ReadEmbedded Redis를 Local/DEV 환경에 내장하여 구동하고, STAGE/PROD에서는 ElastiCache를 사용하도록 @Profile로 환경별 RedisConnectionFactory Bean을 분리 구성한다. @AccessLimiter 커스텀 Annotation을 정의하여 IP/Session 기준, 최대 허용 횟수, TTL 등의 옵션을 선언적으로 설정할 수 있게 하고, Redis에 접속 횟수를 key-value로 저장해 카운팅한다. @Around AOP로 메서드 실행 전에 접속 횟수를 확인해 초과 시 ExceededRestrictException을 throw하고, 실행 후에는 비동기(CompletableFuture)로 카운트를 증가시켜 비즈니스 로직과 완전히 분리한다.
Read