본문 바로가기
728x90
반응형

분류 전체보기593

[Spring] 스프링 부트의 자동 리소스 등록 ※ 스프링 부트 등장 전개발자가 DataSource와 TxManager를 개발자가 직접 스프링 빈에 등록해서 사용해야했다.※ 스프링 부트 등장 후스프링부트에서 자동으로 등록해주는 방법이 생겼다. 데이터소스와 트랜잭션 매니저를 스프링 빈으로 직접 등록@BeanDataSource dataSource() { return new DriverManagerDataSource(URL, USERNAME, PASSWORD);}@BeanPlatformTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource());} 기존에는 이렇게 데이터소스와 트랜잭션 매니저를 직접 스프링 빈으로 등록해야 했다.그런데 스프링 부트가.. 2025. 4. 11.
[Spring] 트랜잭션 AOP 트랜잭션 AOP를 이해하려면 Spring AOP와 프록시(proxy) 개념을 정확히 이해하는 게 좋다.✅ 스프링 AOP란?🌟 AOP (Aspect-Oriented Programming): 관점 지향 프로그래밍핵심 비즈니스 로직 외에, 공통된 부가 기능을 관심사(Aspect) 로 분리해서 코드 중복을 줄이는 방식예를 들어:트랜잭션 처리로깅보안 검사성능 측정이런 기능들을 여러 클래스마다 직접 넣지 않고, 공통 모듈로 따로 분리해서 끼워넣는 방식이다. 🌀 스프링 AOP 특징항목설명구현 방식프록시 기반 AOP (자바 Proxy 또는 CGLIB 사용)적용 대상스프링 빈에만 적용실행 시점런타임에 적용 (컴파일 타임 아님)성능빠르고 가볍지만 제한적 (메소드 단위만 지원) ✅ 프록시(Proxy)란?📌 프록시는 대.. 2025. 4. 8.
[Spring] 트랜잭션 템플릿 (p.s 템플릿 콜백 패턴) 트랜잭션을 사용하는 코드를 보면 반복되는 패턴들이 있다. // 트랜잭션 시작TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());try { // 비즈니스 로직 bizLogic(fromId, toId, money); transactionManager.commit(status); // 성공시 커밋} catch (Exception e) { transactionManager.rollback(status); // 실패시 롤백 throw new IllegalStateException(e);} 트랜잭션 시작 → 비즈니스 로직 실행 → 성공 시 커밋 / 예외 발생, 실패 .. 2025. 4. 8.
[Spring] 트랜잭션 매니저 https://drcode-devblog.tistory.com/590 [Spring] 트랜잭션 추상화와 동기화 (스프링으로 트랜잭션 문제점 해결)애플리케이션은 다양한 구조로 구성될 수 있지만, 대표적으로 역할에 따라 3가지 계층으로 나눠볼 수 있다 1) 프레젠테이션 계층 ① UI와 관련된 처리를 담당 ② 웹 요청과 응답 ③ 사용자 요drcode-devblog.tistory.com 트랜잭션 추상화와 동기화를 적용하는 예제를 작성해보자.  MemberRepositoryV3 package hello.jdbc.repository;import hello.jdbc.domain.Member;import lombok.extern.slf4j.Slf4j;import org.springframework.jdbc.dataso.. 2025. 4. 1.
[Java] 향상된 switch문 (jdk 14버전 이상부터) 자바를 처음 배울 때, 내가 알던 자바의 switch 문은 아래와 같은 형식이었다.String str = "Mon";String day = "";switch(str) { case "Mon" : day = "월요일"; break; case "Tue" : day = "화요일"; break; case "Wed" : day = "수요일"; break; case "Thu" : day = "목요일"; break; case "Fri" : day = "금요일"; break; case "Sat" : day = "토요일"; break; default : day.. 2025. 3. 26.
[Spring] 트랜잭션 추상화와 동기화 (스프링으로 트랜잭션 문제점 해결) 애플리케이션은 다양한 구조로 구성될 수 있지만, 대표적으로 역할에 따라 3가지 계층으로 나눠볼 수 있다 1) 프레젠테이션 계층 ① UI와 관련된 처리를 담당 ② 웹 요청과 응답 ③ 사용자 요청을 검증함 ④ 주 사용 기술은 서블릿과 HTTP 같은 웹 기술, 스프릥 MVC 2) 서비스 계층 ① 비즈니스 로직을 담당 ② 주 사용 기술은 가급적 특정 기술에 의존하지 않고, 순수 자바 코드로 작성 3) 데이터 접근 계층 ① 실제 DB에 접근하는 코드 ② 주 사용 기술은 JDBC, JPA, FIle , Redis, Mongo...  등등  가장 중요한 계층은 서비스 계층왜 서비스 계층이 가장 중요할까? 핵심 비즈니스 로직이 들어있는 계층이기 때문이다.UI(웹)와 관련된 부분이 트랜드에 맞게 변하게 되기 마련이고, .. 2025. 1. 3.
728x90
반응형