Spring Boot에서 이벤트 처리의 두 가지 방법
Spring Boot의 이벤트 메커니즘을 활용한 두 가지 구독 방식에 대해 설명합니다.
I. 개발 환경
Spring Boot 2.2.1.RELEASE, Maven 3.5.3, IDEA 기반으로 웹 서버를 구성했습니다.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
...
8월 12일 11:20에 게시됨
Spring-MCP와 LangChain4j의 MCP 통합 비교 가이드
1. 통합 방식 비교 분석
방식장점단점적합한 사용 시나리오
Spring AI MCP Boot Starter
Spring Boot 네이티브 지원으로 스프링 생태계와 원활한 통합; 표준화된 설정과 자동 도구 등록 제공
Spring Boot 버전 의존성 (예: 3.x), 유연성 낮음; 디버깅 도구 부족
엔터프라이즈급 Java 애플리케이션, 빠른 MCP 통합 필요 시
LangChain4j MCP 통합
다양한 전송 프로토콜 ...
8월 4일 04:04에 게시됨
SpringBoot - 05. JDBC를 통한 데이터 접근 (소스 코드 분석 + 코드 다운로드)
목차
JDBC란?
Spring Boot에서 JDBC 사용하기
자동 설정 원리
JdbcTemplate
Swagger 설정 및 테스트
CRUD 연산 테스트
에러 해결 방법
一. JDBC란?
JDBC(Java Database Connectivity)는 Java 표준 API 중 하나로, Java 애플리케이션이 데이터베이스에 연결하여 SQL문을 실행할 수 있게 해주는 기술입니다. JDBC는 다음과 같은 주요 기능을 제공합니다:
데이터베이스 ...
8월 3일 15:53에 게시됨
RuoYi 프레임워크와 통의천문(Tongyi Qianwen) AI 연동 및 스트리밍 대화 구현
RuoYi(Spring Boot & Vue.js) 프레임워크 환경에서 Aliyun의 대규모 언어 모델인 통의천문(Tongyi Qianwen)을 통합하는 방법을 설명합니다. 단순히 API를 호출하는 것을 넘어, 대화 내용을 데이터베이스에 저장하고 SSE(Server-Sent Events) 방식을 통해 실시간 스트리밍 답변을 프런트엔드에 전달하는 완성도 높은 챗봇 시스템 구축 과정을 다룹니다.
1. 데이터베이스 스 ...
7월 31일 14:17에 게시됨
Apache Commons Pool2를 이용한 중량급 객체 풀링 구현
시스템 개발 시 생성 비용이 큰 '중량급 객체'를 빈번하게 만들고 파괴하는 과정은 성능 저하의 주요 원인이 됩니다. 객체 풀링(Object Pooling) 기법은 초기화 단계에서 일정 수의 객체를 미리 생성해 두고, 필요할 때마다 풀에서 객체를 빌려(Borrow) 사용한 뒤 다시 반납(Return)하는 방식을 취합니다. 이를 통해 객체 생성 오버헤드를 줄이고 시스템 리소스를 효율적으 ...
7월 31일 03:11에 게시됨
Spring Boot 요청 매개변수 검증 구현하기
스프링 부트 애플리케이션에서 interceptor와 filter를 활용하여 요청 매개변수의 유효성을 검증하는 방법을 알아본다.
1. HttpServletRequestWrapper 재정의하여 본문 읽기
요청 본문(request body)을 읽기 위해 HttpServletRequestWrapper를 상속하는 클래스를 만든다. 파일 업로드 케이스도 함께 처리한다.
import org.springframework.web.multipart.support.Standar ...
7월 26일 18:19에 게시됨
Playwright MCP 기반의 지능형 브라우저 자동화 에이전트 구축
Playwright는 최근 MCP(Model Context Protocol)를 지원하며 AI 모델이 웹 브라우저를 직접 제어할 수 있는 표준화된 인터페이스를 제공합니다. 이를 통해 단순한 스크립트 실행을 넘어, LLM(대형 언어 모델)이 웹 페이지의 상태를 이해하고 동적으로 상호작용하는 자동화 에이전트를 구축할 수 있습니다.
1. Playwright MCP 환경 설정
Playwright MCP는 Node.js 환경에 ...
7월 23일 10:32에 게시됨
MyBatis-Plus 열거형(Enum) 매핑 메커니즘 분석 및 최적의 활용법
MyBatis-Plus의 열거형 처리 개요
MyBatis를 사용할 때 가장 번거로운 작업 중 하나는 Java의 열거형(Enum)과 데이터베이스의 컬럼 값을 매핑하는 것입니다. 기본적으로 MyBatis는 열거형의 이름(String)이나 순서(Ordinal)를 저장하지만, 실제 비즈니스 환경에서는 특정 코드값(예: 1, 10, 20)을 저장해야 하는 경우가 많습니다. MyBatis-Plus는 MybatisEnumTypeHandler를 ...
7월 20일 04:00에 게시됨
Spring Boot 기반 Elasticsearch 과거 인덱스 정리 자동화 프로그램 개발
배경 및 목적
Elasticsearch는 대량의 로그나 이벤트 데이터를 실시간으로 검색할 수 있는 강력한 도구이지만, 시간이 지남에 따라 저장 용량이 급격히 증가하는 문제가 발생합니다. 특히 일자별로 인덱스를 생성하는 경우, 오래된 인덱스가 누적되어 클러스터 성능 저하 및 디스크 부족 현상이 나타날 수 있습니다. 기존에는 cron 기반 스크립트로 특정 날짜의 인덱스를 ...
7월 17일 01:03에 게시됨
스pringboot 파일 업로드
스pringboot 파일 업로드
데이터베이스 테이블 생성
DROP TABLE IF EXISTS `file`;
CREATE TABLE `file` (
`id` int(0) NOT NULL,
`filename` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '파일명',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '파일 경로',
...
7월 15일 22:37에 게시됨