Spring Boot 다중 데이터 소스 및 트랜잭션 관리
Spring Boot 애플리케이션에서 여러 데이터베이스를 사용하고 각각의 트랜잭션을 제어하는 방법을 설명합니다.
애플리케이션 시작 지점에 @EnableTransactionManagement 어노테이션을 추가하여 트랜잭션 관리를 활성화합니다.
package com.example.multidb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringB ...
6월 10일 00:34에 게시됨
데이터베이스 기본 키와 외래 키의 활용 차이점
기본 키와 외래 키의 정의기본 키(Primary Key)는 테이블에서 각 레코드를 고유하게 식별하는 후보 키입니다. 한 테이블에는 하나의 기본 키만 존재할 수 있습니다. 예를 들어, 사용자 정보를 저장하는 테이블에서 사용자 고유 번호(userNumber)는 해당 사용자를 유일하게 구분할 수 있는 식별자가 되므로 기본 키로 적합합니다.기본 키는 단일 필드로 구성되거나 여러 필 ...
6월 10일 00:12에 게시됨
MySQL 저장 프로시저를 활용한 테스트 리포트 자동 집계 시스템
테스트 실행 결과를 기반으로 동적 리포트 생성하기
자동화 테스트 환경에서 각 테스트 케이스의 실행 결과를 효과적으로 정리하고 리포트 형태로 저장하기 위해 MySQL 저장 프로시저를 사용하는 방법을 설명합니다. 아래는 주어진 테스트 데이터를 분석하여 요약 정보를 report 테이블에 삽입하거나 업데이트하는 전체 로직입니다.
주요 테이블 구조
report: 집계된 ...
6월 9일 22:53에 게시됨
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에 게시됨
네트워크 서비스 취약점 분석 및 권한 상승: NFS, SMTP, MySQL
네트워크 서비스 보안 감사 개요
네트워크 서비스는 시스템 간 통신과 데이터 공유를 가능하게 하는 핵심 요소이지만, 잘못된 구성은 심각한 보안 취약점으로 이어질 수 있습니다. 본 글에서는 NFS, SMTP, MySQL 서비스의 동작 원리를 살펴보고, 정보 열거(Enumeration) 및 취약점 활용(Exploitation)을 통한 권한 상승 기법을 다룹니다.
NFS(Network File System) 분석 ...
6월 8일 18:52에 게시됨
Spring Boot 3.x 환경에서 MyBatis 코드 자동 생성 도구 활용하기
mybatis-generator-maven-plugin 소개
MyBatis Generator는 데이터베이스 스키마를 분석하여 엔티티 클래스, 매퍼 인터페이스, XML 매핑 파일 등을 자동으로 만들어주는 Maven 플러그인입니다. 공식 문서에서 상세한 정보를 확인할 수 있습니다. 이 도구를 활용하면 반복적인 CRUD 코드 작성에서 벗어나 비즈니스 로직 개발에 집중할 수 있습니다.
주요 장점은 다음과 같습 ...
6월 8일 02:03에 게시됨
MySQL 데이터베이스 백업 도구 비교: mysqldump와 mysqlhotcopy
1. MySQL 백업 유형 분류
데이터베이스 백업은 여러 기준에 따라 분류할 수 있으며, 각각의 특성과 사용 사례가 다릅니다.
운영 영향도 기준
핫 백업 (Hot Backup): 데이터베이스가 실행 중인 상태에서 백업을 수행합니다. 서비스 중단 없이 진행되며, InnoDB와 같은 트랜잭션 지원 엔진에서 주로 사용됩니다.
콜드 백업 (Cold Backup): 데이터베이스를 완전히 중지한 후 ...
6월 7일 21:07에 게시됨
CentOS에서 MySQL 설치 및 구성 방법
CentOS 버전: CentOS 7
MySQL 설치 방법 세가지:
YUM을 통해 간단한 설치
RPM 패키지로 설치
GZ 아르카이브 패키지로 설치
1. YUM을 통해 설치
설치할 MySQL 버전: MySQL Community Server 8.4.3 LTS
설치 과정은 간단하지만, GPG 키와 YUM 저장소 URL가 변경될 수 있으므로 주의 요함
설치 전 체크사항
CentOS 버전 확인
cat /etc/redhat-release
MySQL 공식 YUM ...
6월 7일 20:36에 게시됨
MySQL 연결 풀 초과 문제 해결 방법
에러 메시지 확인
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruc ...
6월 6일 18:38에 게시됨
MySQL 드라이버와 Druid 커넥션 풀 설정 불일치로 인한 Full GC 발생 원인 및 해결 방안
초기 대응 및 현황 파악
장애 발생 당시 3개의 인스턴스에서 Full GC가 발생했으며, 나머지 인스턴스들의 Old Generation 영역도 임계치에 도달해 있었습니다. 다수의 인스턴스가 동시에 Full GC에 진입하면 서비스 전체의 연쇄 장애(Snowball) 현상이 발생할 수 있으므로, 현장 조사를 위해 하나의 인스턴스를 격리한 후 나머지 인스턴스들을 순차적으로 재시작하는 롤링 ...
6월 6일 17:51에 게시됨