Latest Posts · Page 1 of 5
Spring AI Ops 개발기 — Grafana Alerting과 GitHub Repository에 Push된 Code를 AI로 분석하는 실시간 대시보드

AI 기반 운영 자동화 도구인 Spring AI Ops 개발과정 소개. 주요 기능은 Grafana Alerting과 Loki 로그 조회로 AI 장애 분석, GitHub git push로 코드 리뷰를 AI가 수행하는 것. Spring Boot, Kotlin, Spring AI, Redis, Java 21 Virtual Thread 등 기술 스택 사용. 중요 설계 포인트와 트러블슈팅 사례 포함. AI AutoConfiguration을 비활성화하고 Redis를 데이터 저장소로 사용함.

Read
SVG 아이콘을 만드는 방법

38x38px PNG을 SVG 아이콘으로 만드는 방법을 나열한 게시글입니다. 방법은 macOS의 `sips` 명령어를 활용하는 방법부터 ImageMagick을 이용하는 방법, 그리고 Base64 인코딩 및 SVG 래퍼 생성하는 방법 등이 소개되어 있습니다. 게시글에 제공된 내용을 실행하면 SVG 문자열이 클립보드에 복사된다는 특징이 있습니다.

Read
2026 AWS 파트너 AI 클라우드 솔루션 컨퍼런스 참관기

AWS 파트너 AI 클라우드 솔루션 컨퍼런스 참석 후, 제조 AI 트렌드와 Physical AI, Digital Twin, Agentic AI에 대한 인사이트를 얻음. AI Observability의 중요성과 Datadog과 Dynatrace의 AI 기반 시스템 운영 방법을 학습함. 현대오토에버의 스마트 안전 통합관제 시스템 및 플랫폼 서비스 엔지니어 관점에서의 Observability의 시사점을 살펴봄. AI가 엔지니어의 역할을 변화시키고 있다는 전반적인 생각을 얻음.

Read
Nginx 프록시 환경에서의 WebSocket (WSS) 동작 이상 트러블슈팅

Kafka로 게시글을 발행하고, WebSocket을 통해 실시간 알림을 구현했는데, HTTPS 운영서버에서는 WebSocket이 동작하지 않아 Nginx 설정을 추가하여 문제 해결함. Nginx가 WebSocket 업그레이드 요청에 필요한 HTTP 헤더를 백엔드로 전달하지 않아 발생한 문제로, Upgrade와 Connection 헤더를 설정해야 함. Nginx에 `/ws/` 전용 location 블록을 추가하여 `proxy_http_version`, `proxy_set_header` 등의 설정을 적용하고 서비스를 재시작해야 함.

Read
Spring Boot 4 SRE 모니터링 스택 구축

Vultr 서버에 Grafana LGTM 스택(Loki, Prometheus, Tempo, Grafana)을 구성하여 Spring Boot 애플리케이션의 메트릭·로그·트레이스를 통합 관측했다. Virtual 환경 제약 속에서도 Docker 기반 인프라와 OpenTelemetry를 활용해 로그-트레이스-메트릭 간 연동까지 구현했다. 구축 과정에서 발생한 다양한 버전/설정 이슈를 해결하며 실무적인 트러블슈팅 경험과 운영 안정성을 확보했다.

Read
Google Drive 이미지 프록시 성능 개선 — Virtual Thread와 경량 캐시 적용

Google Drive 이미지 프록시에서 과도한 순차 API 호출로 인한 성능 저하를 캐시 + 병렬 처리로 개선했다. 폴더/파일 ID를 캐싱하고 Virtual Thread로 다운로드·메타 조회를 병렬화하여 응답 시간을 단축했다. 이후 Redis(Valkey) + Spring Cache로 확장하여 캐시 공유·TTL·운영 안정성까지 확보한다.

Read
RSA 클라이언트 암호화 적용

HTTPS만으로는 개발자 도구·프록시 등에서 비밀번호 평문 노출 위험이 존재하므로, 클라이언트에서 RSA로 한 번 더 암호화하는 방식을 적용한다. 브라우저는 공개키로 암호화하고 서버는 개인키로 복호화하여 기존 인증 로직은 유지하면서 전송 보안을 강화할 수 있다. 다만 이는 HTTPS를 대체하지 않으며, 리플레이 공격·키 관리 등 추가적인 보안 고려가 필요하다.

Read
Spring AI로 OpenAI 연동하기 : Kotlin + Spring Boot

Spring AI를 활용하면 OpenAI 등 다양한 LLM을 ChatClient 추상화로 간단하게 Spring Boot 애플리케이션에 연동할 수 있다. 의존성 추가, API 키 설정, ChatClient 빈 등록, 서비스 호출의 4단계만으로 LLM 기반 API를 빠르게 구축 가능하다. 추상화 구조 덕분에 모델 교체(OpenAI → Anthropic 등)도 코드 변경 없이 설정만으로 유연하게 대응 가능하다.

Read
아키텍처는 어떻게 만들어지는가: 이벤트에서 시스템으로

애플리케이션 아키텍처는 비즈니스 요구사항과 기술적 제약을 고려하여 최적의 구조를 찾는 작업이며, 이를 통해 도메인 정의와 데이터 모델링을 포함한 프로젝트 진행됨. 데이터베이스 설계에는 도메인 간 관계, 정규화, 확장성을 고려하여 논리 모델링을 진행하고, 기술 스택 선택에서는 Java 21, Spring Boot, Kotlin 등을 결정함.멀티 모듈 구조, 애노테이션 기반의 인증, Virtual Thread를 활용한 FeignClient 등의 기술 채택과 코딩 컨벤션 정의 등이 이뤄짐.마지막으로 AWS SQS를 메시징 솔루션으로 선택하고, 기술 워크샵을 통해 최종 아키텍처를 확정함.

Read
블로그에 새로운 글이 발행되었습니다.