본문 바로가기
반응형

도서기록/토비의 스프링4

5장 서비스 추상화 - 2 5.2 트랜잭션 서비스 추상화5.2.3 트랜잭션 동기화Connection 파라미터 제거스프링에서 제공해주는 트랜잭션 동기화(transaction synchronization) 은 트랜잭션을 시작하기 위해 만든 Connection 오브젝트를 특별한 저장소에 보관해두고, 이후에 호출되는 DAO 의 메소드에서는 저장된 Connection 을 가져다가 사용하게 한다. 이는 DAO가 사용하는 JdbcTemplate이 트랜잭션 동기화 방식을 이용하도록 하는 것이다.트랜잭션 동기화 저장소는 작업 스레드마다 독립적으로 Connection 오브젝트를 저장하고 관리하기 때문에 다중 사용자를 처리하는 서버의 멀티스레드 환경에서도 충돌날 염려가 없다.트랜잭션 동기화 적용스프링이 제공하는 트랜잭션 동기화 클래스는 Transac.. 2025. 4. 9.
5장 서비스 추상화 - 1 5.1 사용자 레벨 관리 기능 추가아래와 같은 비즈니스 로직을 추가한다고 가정한다.사용자의 레벨은 basic, silver, gold 세가지 중 하나이다.사용자가 처음 가입하면 basic, 이후 활동에 따라 한단계씩 업그레이드 된다.가입 후 50회 이상 로그인하면 basic 에서 silver 레벨이 된다.silver 레벨이면서 30번 이상 추천을 받으면 gold 레벨이 된다.사용자 레벨의 변경 작업은 일정한 주기를 가지고 일괄적으로 진행된다. 변경 작업 전에는 조건을 추엊ㄱ하더라도 레벨의 변경이 일어나지 않는다.5.1.1. 필드 추가사용자의 레벨을 저장할 필드가 필요하다. 만약 int 값으로 레벨을 관리한다고 예를 들었을 경우 코드 관리는 깔끔할 수 있으나, 다른 종류 예를 들어 basic(1), sil.. 2025. 4. 4.
3장 템플릿 3.1 다시보는 초난감 DAO3.1.1 예외처리 기능을 갖춘 DAOpublic void deleteAll() throws SQLException { Connection c = dataSource.getConnection(); PreparedStatement ps = c.prepareStatement("delete from users") ; ps.executeUpdate(); // 여기서 예외가 발생하면 바로 메소드 실행이 중단된다. ps.close(); c.close() ; }close() 메서드를 제대로 실행하지 못하고 에러가 발생하면 리소스를 반환하지 못한다.그래서 JDBC 코드에서는 어떤 상황에서도 가져온 리소스를 반환하도록 try/catch/finally 구문 사용을 권장하고 있다.pub.. 2025. 3. 22.
1장 오브젝트와 의존관계 1.1 초난감 DAODAO(Data Access Object)는 DB 를 사용해서 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다.1.1.1public class User { String id; String name; String password; (getter/setter method)User 오브젝트에 담긴 정보가 실제로 보관될 DB 테이블은 아래와 같다.create table users ( id varchar(10) primary key, name varchar(20) not null, password varchar(20) not null1.1.2 UserDaoJDBC를 이용하는 작업의 일반적인 순서는 다음과 같다.DB 연결을 위한 Conn.. 2025. 3. 8.
반응형