Spring AI로 MCP 서버 만들기: 코드는 쉬운데 Spring Boot 3에서 안 뜹니다
Spring AI 2.0.1로 MCP 서버를 만들어 직접 붙여봤습니다. @McpTool 하나면 끝나는데, 그 전에 Jackson 3 때문에 Spring Boot 4로 올려야 했습니다.
Java·Spring 백엔드부터 인프라·DevOps까지, 실제 환경에서 검증한 개발 기록과 문제 해결 과정을 정리합니다.
Spring AI 2.0.1로 MCP 서버를 만들어 직접 붙여봤습니다. @McpTool 하나면 끝나는데, 그 전에 Jackson 3 때문에 Spring Boot 4로 올려야 했습니다.
아키텍처 규칙을 테스트로 만드는 라이브러리입니다. 바이트코드를 읽는 방식이 정말 더 정밀한지 궁금해서 직접 돌려봤더니, 소스에 있는 import를 못 보는 경우가 있었습니다.
JDK 24의 JEP 491로 synchronized pinning이 사라졌습니다. 지금 검색되는 가상 스레드 조언 절반이 낡았고, 진짜 병목은 커넥션 풀로 옮겨갔습니다.
Java 25 LTS의 JEP 18개 중 지금 바로 쓸 수 있는 것과 아직 프리뷰인 것을 구분했습니다. Scoped Values는 정식, 구조적 동시성은 아직 5번째 프리뷰입니다.
스타터 이름 변경부터 Jackson 3, 조용히 동작이 바뀌는 항목까지. Spring Boot 4.0에서 실제로 깨지는 것을 공식 가이드 기준으로 정리했습니다.
Spring Data JPA에서 엔티티를 삭제할 때 Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 오류가 발생하는 경우가 있다. DELETE SQL 자체는 단순하지만, Hibernate가 예상한 삭제 건수와 데이터베이스가 반환한 삭제 건수가 다르면 예외로 처리될 수 있다. 특히 동일한 데이터를 여러 요청이 삭제하거나, 조회한 엔티티가 실제 DELETE 실행 전에 다른 … 더 읽기
웹 서비스의 보안 수준이 지속적으로 강화되면서, 구형 암호화 프로토콜인 TLS 1.0과 TLS 1.1의 지원을 중단하고 TLS 1.2 및 TLS 1.3으로 전환하는 기업이 늘고 있습니다. 하지만 무턱대고 하위 버전의 지원을 끊어버리면 구형 브라우저나 오래된 디바이스(예: 구형 안드로이드, IoT 기기 등)를 사용하는 고객들의 접속이 전면 차단되는 장애가 발생할 수 있습니다. 따라서 보안 정책을 업데이트하기 전, 현재 우리 서비스에 … 더 읽기
PKCE 의무화, Implicit·ROPC 제거 등 OAuth 2.1 변경점과 Spring Security 마이그레이션 방법을 2026년 9월 기준으로 정리했습니다.
개발자들에게 친숙한 IDE인 인텔리제이(IntelliJ IDEA)에는 강력한 API 테스트 도구인 .http 클라이언트가 내장되어 있습니다. 많은 분들이 이를 단순히 로컬 개발 환경에서 API를 호출해보는 용도로만 사용하지만, 사실 이 도구는 CI/CD 파이프라인의 핵심 안정성 검증 도구로 확장될 수 있는 잠재력을 가지고 있습니다. 특히 서비스 배포 과정에서 “배포 후 정상 작동 여부”를 사람이 직접 확인하는 것이 아니라, 스크립트를 통해 자동으로 검증하고 … 더 읽기
백엔드 시스템의 성능을 최적화하는 과정에서 가장 가성비가 좋고 즉각적인 효과를 볼 수 있는 기술은 단연 ‘캐싱(Caching)‘입니다. 관계형 데이터베이스(RDBMS)는 디스크 I/O를 기반으로 동작하기 때문에 물리적인 속도의 한계가 명확하며, 트래픽이 몰릴 경우 병목 현상의 주범이 됩니다. 반면 Redis와 같은 인메모리(In-Memory) 저장소는 RAM에 데이터를 저장하고 처리하므로, 디스크보다 수백 배 빠른 접근 속도를 제공합니다. 하지만 “Redis를 도입했다”는 사실만으로 모든 … 더 읽기