728x90

2023/07/07 4

Spring - 스프링 트랜잭션 이해

- 스프링 트랜잭션 추상화 - JDBC 트랜잭션 코드 예시 public void accountTransfer(String fromId, String toId, int money) throws SQLException { Connection con = dataSource.getConnection(); try { con.setAutoCommit(false); //트랜잭션 시작 //비즈니스 로직 bizLogic(con, fromId, toId, money); con.commit(); //성공시 커밋 } catch (Exception e) { con.rollback(); //실패시 롤백 throw new IllegalStateException(e); } finally { release(con); } } - JPA..

Programming/Spring 2023.07.07

Spring - 데이터 접근 기술 - 활용 방안

- 스프링 데이터 JPA 예제와 트레이드 오프 - 중간에서 JpaItemRepositoryV2 가 어댑터 역할을 해준 덕분에 ItemService 가 사용하는 ItemRepository 인터페이스를 그대로 유지할 수 있고 클라이언트인 ItemService 의 코드를 변경하지 않아도 되는 장점이 있다. - 선택지 1 1. 구조를 맞추기 위해서, 중간에 어댑터가 들어가면서 전체 구조가 너무 복잡해지고 사용하는 클래스도 많아지는 단점이 생겼다. 2. 실제 이 코드를 구현해야하는 개발자 입장에서 보면 중간에 어댑터도 만들고, 실제 코드까지 만들어야 하는 불편함이 생긴다. 3. 유지보수 관점에서 ItemService 를 변경하지 않고, ItemRepository 의 구현체를 변경할 수 있는 장점이 있다. 그러니까..

Programming/Spring 2023.07.07

Spring - 데이터 접근 기술 - 스프링 데이터 JPA

- 스프링 데이터 JPA 주요 기능 - 스프링 데이터 JPA는 JPA를 편리하게 사용할 수 있도록 도와주는 라이브러리이다. 수많은 편리한 기능을 제공하지만 가장 대표적인 기능은 다음과 같다. 1. 공통 인터페이스 기능 2. 쿼리 메서드 기능 - 공통 인터페이스 기능 1. JpaRepository 인터페이스를 통해서 기본적인 CRUD 기능 제공한다. 2. 공통화 가능한 기능이 거의 모두 포함되어 있다. 3. CrudRepository 에서 fineOne() findById() 로 변경되었다. - JpaRepository 사용법 public interface ItemRepository extends JpaRepository { } 1. JpaRepository 인터페이스를 인터페이스 상속 받고, 제네릭에 관..

Programming/Spring 2023.07.07
728x90