Spring-Boot/Spring Data

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ예외로 인한 의존성 문제트랜잭션 AOP까지 적용하면서 서비스 계층에서 트랜잭션 로직을 완전히 떼어낼 수 있었다. 그렇다면 이제 서비스 계층은 순수한 비즈니스 로직 코드만 남은걸까? 한번 코드를 살펴보자@Slf4jpublic class MemberServiceV3_3 { private final MemberRepositoryV3 memberRepository; public MemberServiceV3_3(MemberRepositoryV3 memberRepository) { this.memberRepository = memberRepository; } @Transactional public voi..
Spring TransactionJDBC만으로 트랜잭션을 사용하면 몇가지 문제가 발생한다. 1. 서비스 계층에서 트랜잭션 코드로 인해 JDBC 코드가 작성된다.JDBC 코드에 의존하다보니 이후 JPA 등과 같이 다른 데이터 접근 기술을 사용한다면 코드 유지보수 하기가 힘들어진다. 또한 서비스 계층에는 다른 특정 구현 기술에 의존하면 안된다. 오직 순수한 자바 로직이 들어가야 한다.2. 트랜잭션 동기화 문제트랜잭션에 대한 커넥션을 유지하기 위해 리포지토리에 파라미터로 커넥션을 넘겨줬었다.이렇게 되면 리포지토리 코드에 트랜잭션용 기능 코드와 일반 기능 코드를 나누어서 작성해줘야 한다.3. 트랜잭션 적용 반복 문제트랜잭션으로 인해 상당히 많은 반복 코드가 발생하게 된다.try, catch, finally, c..
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ트랜잭션이란정의트랜잭션(Transaction)이란 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 말한다.하나의 트랜잭션에는 하나 이상의 SQL문을 포함한다. 하나 이상이라는 말은 여러 개도 가능하다는 말이다. 예를 들어, 계좌 이체 기능을 수행한다고 하면1. A유저의 계좌 DB의 돈을 빼고 2. B유저의 계좌 DB의 돈을 증가시켜야한다.이는 하나의 트랜잭션으로 정의될 수 있다.모든 작업이 성공해서 데이터베이스에 영구적으로 반영시키는 것을 커밋(Commit), 작업 중 일부가 실패해서 작업 실행 이전으로 되돌리는 것을 롤백(Rollback)이라고 한다. ACID 특성트랜잭션은 4가지의 특성을 가진다. 이 4가지의 앞글자를 따 흔히 ACID라고 한다.Atomi..
커넥션 풀과 데이터 소스의 등장배경Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD);다음과 같이 커넥션을 받아온다면 데이터베이스에 sql을 하나 보낼 때마다 커넥션을 새로 생성해서 받아와야 한다. 커넥션을 받아오는 과정은 매우 오래걸리는 과정이다. 클라이언트가 특정요청을 할 때마다 위의 과정을 매번 거쳐야 하는데 이렇게 되면 서비스의 사용성이 떨어질 것이다.이러한 문제를 해결하는 것이 커넥션 풀과 데이터 소스이다. 커넥션 풀(Connection Pool)커넥션 풀이란 이름에서도 알 수 있듯, 여러 개의 커넥션을 담고 있는 풀(Pool)이다.클라이언트의 요청마다 매번 커넥션을 새로 만들어서 받아오는 것이 너무 비효율적이니 미리 커넥..
jaehee1113
'Spring-Boot/Spring Data' 카테고리의 글 목록 (3 Page)