본문 바로가기

토비의 스프링3

토비의 스프링 3.1 Vol.1 350p ~ 450p 정리 5.2 트랜잭션 서비스 추상화 - 테스트 실패의 원인 트랜젝션의 문제, upgradeLevels() 메서드가 하나의 트랜잭션 안에서 동작하지 않았기 때문이다. 5.2.2 트랜잭션 경계설정 트랜잭션 롤백 - 두 개의 SQL 작업 중 하나가 실패하면 앞에서 처리한 SQL 작업도 취소 시키는 것 - JDBC 트랜잭션의 트랜잭션 경계설정 트랜잭션의 경계 - 애플리케이션 내에서 트랜잭션이 시작되고 끝나는 위치를 트랜잭션의 경계라고 부른다. 로컬 트랜잭션 - 하나의 DB 커넥션 안에서 만들어지는 트랜잭션을 로컬 트랜잭션이라고 한다. - UserService와 UserDao의 트랜잭션 문제 왜 UserService의 upgradeLevels()에는 트랜잭션이 적용되지 않았을까? JdbcTemplate에서는 메소드 호.. 2023. 12. 31.
토비의 스프링 3.1 Vol.1 250p ~ 350p 정리 3.5.3 템플릿/콜백의 응용 - 템플릿 / 콜백의 재설계 - 제네릭스를 이용한 콜백 인터페이스 제네릭스를 적용하여 다양한 오브젝트 타입을 지원하는 인터페이스나 메소드를 정의해 보자. //타입 파라미터를 적용한 LineCallback public inteface LineCallback { T doSomethingWithLine(String line, T value); } //타입 파라미터를 추가해서 제네릭 메소드로 만든 lineReadTemplate() public T lineReadTemplate(String filepath, LineCallback callback, T initVal) throws IOException { ... } 3.7 정리 - JDBC와 같은 예외가 발생할 가능성이 있으며 공유 .. 2023. 12. 30.
토비의 스프링 3.1 Vol.1 145p ~ 250p 정리 2장. 테스트 스프링이 개발자에게 제공하는 가장 중요한 가치 = 객체지향과 테스트 2.1 UserDaoTest 다시 보기 2.1.1 테스트의 유용성 테스트가 성공하면 모든 결함이 제거됐다는 확신을 얻을 수 있음 2.1.2 UserDaoTest의 특징 - 웹을 통한 DAO 테스트 방법의 문제점 1. 모든 레이어의 기능을 다 만들고 나서야 테스트가 가능하다. 2. 테스트를 하는 중에 에러가 나면 어디에서 문제가 발생했는지 찾아야 한다. 3. 오류가 있을 때 빠르고 정확하게 대응하기가 힘들다. - 작은 단위의 테스트 그 대상에만 집중해서 테스트하는 것이 바람직 작은 단위의 테스트를 단위 테스트 - 단위 테스트 필요 이유 개발자가 설계하고 만든 코드가 원래 의도한 대로 동작하는지를 개발자 스스로 빨리 확인받기 .. 2023. 12. 28.