SQLASTVisitorAdapter 사용법 및 활용 사례
SQLASTVisitorAdapter 개념 정의
SQLASTVisitorAdapter는 SQL 문 구조를 탐색하는 데 사용되는 추상 클래스로, 모든 노드 탐색 메서드를 기본적으로 구현하고 있습니다.
핵심 기능:
SQLASTVisitor 인터페이스를 구현한 상위 클래스
모든 visit 메서드를 공백으로 구현한 어댑터 역할 수행
필요한 노드만 재정의하여 사용 가능
기초 사용 예제
목표: SQL 문에서 모든 ...
7월 14일 18:08에 게시됨
드루이드 연결 풀 메모리 관리: OOM 오류 방지를 위한 핵심 설정
드루이드 연결 풀 메모리 관리: OOM 오류 방지를 위한 핵심 설정
애플리케이션이 갑자기 중단되고 로그에 OutOfMemoryError가 가득 찬 경험을 해본 적이 있나요? 알리클라우드 DataWorks 팀이 개발한 데이터베이스 연결 풀인 드루이드는 강력한 메모리 관리 메커니즘을 제공하지만, 잘못된 설정은 여전히 메모리 누수와 OOM을 유발할 수 있습니다. 본문에서는 안정적인 연 ...
6월 30일 23:00에 게시됨
Spring Boot에서 Druid 데이터소스 설정 시 'spring.datasource' 바인딩 실패 문제 해결
문제 상황
Spring Boot 프로젝트에서 Druid를 사용하여 데이터소스를 구성할 때, application.yml 파일에 정의된 설정이 javax.sql.DataSource에 바인딩되지 않으며, 다음과 같은 오류가 발생한다:
Failed to bind properties under 'spring.datasource' to javax.sql.DataSource
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Priority
이는 spring.data ...
6월 23일 23:50에 게시됨
Druid SQLUtils API 사용 가이드
Druid SQLUtils API 활용 방법
SQLUtils는 Druid 내장 SQL 파서의 핵심 유틸리티 클래스로, SQL 포맷팅, 파싱, AST 변환, 테이블/필드 추출, SQL 검증 및 재작성 기능을 제공합니다. MySQL, Oracle, SQL Server 등 다양한 데이터베이스 방언을 지원하며, SQL 감사, 권한 제어, 동적 SQL 생성에 활용되는 필수 도구입니다.
의존성 추가
Maven 의존성
<dependency>
...
6월 20일 19:37에 게시됨
Druid SQLStatement 인터페이스 완벽 가이드: AST 기반 SQL 파싱과 활용
Druid SQL 파싱 엔진은 SQL 문자열을 구조화된 Java 객체(추상 구문 트리, AST)로 변환합니다. 이 과정에서 최상위 인터페이스가 바로 SQLStatement이며, 모든 SQL 유형(SELECT, INSERT, UPDATE, DELETE 등)은 이 인터페이스의 서브클래스 인스턴스로 표현됩니다. SQLStatement는 SQL AST의 모든 노드가 구현하는 SQLObject 인터페이스를 상속합니다.
1. SQLStatement 클 ...
6월 18일 21:02에 게시됨
Spring Boot 3에서 Druid 데이터베이스 풀 통합하기
Spring Boot 3 환경에서 Druid 커넥션 풀을 적용할 때 호환성 문제로 인해 접속 오류가 발생하는 경우가 있습니다. 본 문서는 이러한 문제를 해결하고 올바르게 설정하는 방법을 안내합니다.
Maven 의존성 추가
pom.xml 파일에 다음 의존성을 포함시켜야 합니다:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-sprin ...
6월 11일 23:49에 게시됨
Spring Boot와 MySQL을 이용한 간단한 데이터 조회 구현
프로젝트 아키텍처 구성
1. 컨트롤러 계층 (Controller)
package com.example.controller;
import com.example.model.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind. ...
6월 9일 19:05에 게시됨
MySQL 드라이버와 Druid 커넥션 풀 설정 불일치로 인한 Full GC 발생 원인 및 해결 방안
초기 대응 및 현황 파악
장애 발생 당시 3개의 인스턴스에서 Full GC가 발생했으며, 나머지 인스턴스들의 Old Generation 영역도 임계치에 도달해 있었습니다. 다수의 인스턴스가 동시에 Full GC에 진입하면 서비스 전체의 연쇄 장애(Snowball) 현상이 발생할 수 있으므로, 현장 조사를 위해 하나의 인스턴스를 격리한 후 나머지 인스턴스들을 순차적으로 재시작하는 롤링 ...
6월 6일 17:51에 게시됨