728x90 분류 전체보기379 [Spring DB] 트랜잭션 적용 방식 트랜잭션 적용 방식 트랜잭션의 적용 방식을 알아보자. 어떻게 트랜잭션 코드가 개선되는지 확인해본다. AOP를 이용하여 트랜잭션 코드와 비즈니스 로직을 분류 해본다. 트랜잭션 의 적용 방식 종류 선언적 트랜잭션 관리 @Transaction - AOP 사용 - Proxy 구조 프로그래밍 방식의 트랜잭션 관리 JDBC 트랜잭션 - 코드 작성 필요 트랜잭션 템플릿 - 코드 작성 필요 트랜잭션 사용 준비 앞서 커넥션 풀에 대해 공부 했다. 트랜잭션을 사용하기 위해선 동일한 커넥션을 사용해야 된다. JDBC 트랜잭션 적용 동일한 커넥션을 사용하기 위해 커넥션을 파라미터로 넘겨주자. accountTransfer 메소드 시작 할때 dataSource 에서 커넥션을 가져온다. 커넥션의 오토 커밋을 false 로 하여 트.. 2022. 9. 11. [Design Pattern] Composite Pattern Composite pattern 컴포짓 패턴 이란? composite 패턴은 Composite(디렉토리)과 Leaf(파일)을 동일시해서 재귀적인 구조를 만들기 위한 설계 패턴이다. 어떻게 Composite(디렉토리)과 Leaf(파일)를 동일하게 여길까? component 객체를 상속받아 Composite 와 Leaf 를 상속받도록 한다. 그렇게 되면 다형성으로 Composite, Leaf 를 동일한 객체로 바라볼수 있다. 컴포짓 패턴 구조 Component : 최상의 객체 - 다형성을 위해 최상의 객체를 하나 둔다. Composite: 복합객체 - 폴더를 담당한다. - 그렇기 때문에 List 가 존재하고 add, remove, getChild 메서드가 존재한다. Leaf: 단일 객체 - 파일 객체를 담당.. 2022. 8. 15. [Spring DB] 트랜잭션 트랜잭션 트랜잭션에 대해서 알아보고 직접 써보자 트랜잭션 이란? 트랜잭션은 하나의 논리적 실행 단위다 영어로는 컴퓨터로 처리하는 작업의 단위 라고 사전에 정의 되어 있다. 왜 필요할까? 제일 쉬운 예제가 계좌 이체 이다. 계좌를 이체할때 다음과 같은 로직을 구현했다고 하자 금액을 차감했는데 오류가 발생해 상대방 계좌에 금액이 안들어 갔다면? 이러한 문제 때문에 트랜잭션이 필요하다 금액차감 이나 금액 증가가 실패하면 모두 실패 되거나 둘다 성공해야 된다. 트랜잭션의 ACID A (원자성): 트랜잭션 안에서 실행되는 로직은 모두다 실패 하거나 모두다 성공하거나를 보장해야된다. C (일관성): 모든 트랜잭션은 일관성 있어야 한다 즉 데이터 무경성 제약 조건을 만족해야 된다. I (격리성): 동시에 실행되는 트.. 2022. 7. 31. [Spring DB] 커넥션 풀과 데이터 소스 커넥션 데이터 베이스 커넥션을 획득 할 때는 복잡한 과정을 거치게 된다. 커넥션과정 문제점 과정이 복잡하고 시간이 소모되는 작업이다. 그렇기 때문에 응답속도에 영향을 줄수가 있다. 커넥션 풀의 등장 이러한 문제를 해결 하기 위해 미리 커넥션을 만들어 써두면 어떨까? 라는 점에서 나왔다. 커넥션을 여러개 만들어 (보통 10개) 필요할때마다 커넥션 풀에서 조회해서 사용하면 위의 속도 문제가 해결된다. DataSource 커넥션을 얻는 방법은 앞서 학습한 JDBC DriverManager를 직접 이용 또는 커넥션 풀을 사용하는 등 다양한 방법이 존재한다. 하지만 DriverManager의 커넥션 풀을 쓰다가 다른 커넥션 풀을 쓰고 싶다면 어떻게 해야 될까? 이러한 것을 해결해 주는 것이 DataSource 이.. 2022. 7. 27. 이전 1 ··· 22 23 24 25 26 27 28 ··· 95 다음 728x90 반응형