스프링의 이해와 원리5 토비의 스프링 3.1 Vol.1 750p ~ 850p 정리 (완료) 8.5 정리- 스프링은 그 개발철학과 목표를 분명히 이해하고 사용해야 한다.- 스프링은 오픈소스 소프트웨어이며, 애플리케이션 개발의 모든 기술과 영역을 종합적으로 다루는 애플리케이션 프레임워크다.- 엔터프라이즈 애플리케이션 개발의 복잡함은 비즈니스 로직과 엔터프라이즈 시스템의 기술적인 요구에 의해 발생한다. 기존의 접근 방법은 이 복잡도를 낮추지 못하며 자바의 객체지향적인 장점을 포기해야 한다는 문제점이 있다.- 자바의 근본인 객체지향적인 원리에 충실하게 개발할 수 있으며, 환경과 규약에 의존적이지않은 POJO를 이용한 애플리케이션 개발은 시스템 개발의 복잡함이 주는 많은 문제를 해결할 수 있다.- 스프링의 목적은 이런 POJO를 이용해 엔터프라이즈 애플리케이션을 쉽고 효과적으로 개발할 수 있도록 지원해.. 2024. 1. 5. 토비의 스프링 3.1 Vol.1 650p ~ 750p 정리 7.6 스프링 3.1의 DI- 정책과 관례를 이용한 프로그래밍7.6.1 자바 코드를 이용한 빈 설정- 테스트 컨텍스트의 변경@ContextConfiguration - 스프링 테스트가 테스트용 DI 정보를 어디서 가져와야 하는지 지정할 때 사용하는 애노테이션이다. - 제거XML의 내용을 TestApplicationContext 내부로 옮기는 작업을 본격적으로 진행해 보자. - 의 전환- 전용 태그 전환7.6.2 빈 스캐닝과 자동와이어링- @Autowired를 이용한 자동와이어링- @Component를 이용한 자동 빈 등록7.6.3 컨텍스트 분리와 @Import- @import7.6.4 프로파일- @Profile과 @ActiveProfiles- 컨테이너의 빈 등록 정보 확인- 중첩 클래스를 이용한 프로파일.. 2024. 1. 4. 토비의 스프링 3.1 Vol.1 550p ~ 650p 정리 6.8.3 테스트를 위한 트랜잭션 애노테이션- @Rollback테스트용 트랜잭션은 테스트가 끝나면 자동으로 롤백된다. 롤백을 하지 않고 DB에 커밋하고 싶다면 @Rollback 애너테이션을 사용하자.@Test@Transactional@Rollback(false)public void transactionSync() { ...} - @TransactionConfiguration@Transaction은 테스트 클래스에 넣어서 모든 테스트 메소드에 일괄 적용할 수 있지만 @Rollback 애너테이션은 메서드 레벨에만 적용할 수 있다.클래스 레벨에 @Rollback(false)를 적용하고싶다면? -> @TransactionConfiguration(defaultRollback=false)를 적용하자. - NotTr.. 2024. 1. 2. 토비의 스프링 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 145p ~ 250p 정리 2장. 테스트스프링이 개발자에게 제공하는 가장 중요한 가치 = 객체지향과 테스트2.1 UserDaoTest 다시 보기2.1.1 테스트의 유용성테스트가 성공하면 모든 결함이 제거됐다는 확신을 얻을 수 있음2.1.2 UserDaoTest의 특징- 웹을 통한 DAO 테스트 방법의 문제점1. 모든 레이어의 기능을 다 만들고 나서야 테스트가 가능하다.2. 테스트를 하는 중에 에러가 나면 어디에서 문제가 발생했는지 찾아야 한다.3. 오류가 있을 때 빠르고 정확하게 대응하기가 힘들다. - 작은 단위의 테스트그 대상에만 집중해서 테스트하는 것이 바람직작은 단위의 테스트를 단위 테스트 - 단위 테스트 필요 이유개발자가 설계하고 만든 코드가 원래 의도한 대로 동작하는지를 개발자 스스로 빨리 확인받기 위해서다.2.1.3 U.. 2023. 12. 28. 이전 1 다음