반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

자동 구성 클래스와 빈 설계 본문

토비의 스프링 부트 - 이해와 원리/섹션10 - Spring JDBC 자동 구성 개발

자동 구성 클래스와 빈 설계

DOGvelopers 2025. 1. 3. 15:54
반응형

요약 및 핵심 개념

스프링 JDBC 기술을 활용하여 자동 구성 클래스를 설계하고 데이터 소스, JDBC 템플릿, 트랜잭션 매니저 등을 효과적으로 구성하는 방법을 다뤘습니다. 이 과정에서 JDBC 템플릿의 동작 원리, 조건부 애노테이션을 활용한 유연한 구성, 인메모리 데이터베이스(H2)를 이용한 간단한 테스트 환경 설정 방법을 포함합니다.


핵심 내용

1. 자동 구성 클래스 설계

  • JDBC 기술 기반의 자동 구성을 위해 DataSourceConfig 클래스를 설계.
  • 특정 조건에서만 빈을 생성하기 위해 조건부 애노테이션(@Conditional)을 사용.
  • 스프링의 JdbcOperations 인터페이스를 기반으로 구성 확인 후 관련 빈 등록.

2. DataSource 빈 구성

  • SimpleDriverDataSource:
    • 기본 JDBC 연결을 제공하는 간단한 데이터 소스.
    • 주의: 실전에서는 비효율적이므로 테스트 목적에만 사용.
  • HikariCP:
    • 커넥션 풀을 지원하는 고성능 데이터 소스.
    • 스프링 부트의 기본 데이터 소스 라이브러리로 설정.
  • 프로퍼티 활용:
    • 데이터 소스 연결 정보를 코드에 고정하지 않고 Properties로 외부 설정.
    • @ConfigurationProperties를 통해 프로퍼티 클래스와 바인딩.

3. JDBC 템플릿 활용

  • 데이터 소스 빈을 기반으로 JdbcTemplate 자동 구성.
  • JDBC 템플릿은 SQL 실행을 단순화하고 템플릿-콜백 패턴을 적용.
  • 주요 사용 방법:
    • 데이터 조회: queryForObject.
    • 데이터 변경: update.

4. 트랜잭션 관리

  • JdbcTransactionManager:
    • 트랜잭션 경계를 설정하여 데이터 작업의 무결성을 보장.
    • @Transactional 애노테이션으로 선언적 트랜잭션 관리 지원.
  • 조건부 애노테이션:
    • @ConditionalOnSingleCandidate: 데이터 소스 빈이 하나일 때만 트랜잭션 매니저와 JDBC 템플릿을 자동 등록.

5. 인메모리 데이터베이스 설정

  • H2 데이터베이스:
    • 테스트 목적으로 임베디드 모드로 활용 가능.
    • 애플리케이션과 함께 시작 및 종료.
    • 기본 프로퍼티를 제공하여 간단한 설정으로 작동.
  • 장점:
    • DB 설치 없이도 빠르게 테스트 환경 구성.
    • URL, 유저 이름, 비밀번호 등 추가 설정 필요 없음.

결론

스프링 부트에서 JDBC 기술과 자동 구성 기능을 활용하면 데이터 소스와 관련된 빈을 효과적으로 관리할 수 있습니다.

  • 실제 운영 환경: HikariCP를 사용하여 성능 최적화.
  • 테스트 환경: H2 데이터베이스로 간단하게 설정.
  • JDBC 템플릿 및 트랜잭션 관리: 선언적 트랜잭션과 템플릿-콜백 패턴을 활용하여 간편한 데이터 작업 구현.

이러한 방법을 통해 실전과 테스트 환경 모두에서 효율적인 데이터베이스 작업 환경을 구축할 수 있습니다.

반응형
Comments