CS19 토비의 스프링 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 450p ~ 550p 정리 6.3.4 다이내믹 프록시를 위한 팩토리 빈- 팩토리 빈의 설정 방법'&'를 빈 앞에 붙여주면 팩토리 빈 자체를 돌려준다. - 다이내믹 프록시를 만들어주는 팩토리 빈- 트랜잭션 프록시 팩토리 빈- 트랜잭션 프록시 팩토리 빈 테스트6.3.5 프록시 팩토리 빈 방식의 장점과 한계- 프록시 팩토리 빈의 재사용- 프록시 팩토리 빈 방식의 장점1. 타깃 인터페이스를 구현하는 클래스를 일일이 만드는 번거로움을 제거할 수 있다.2. 팩토리 빈을 이용한 DI까지 더해주면 번거로운 다이내믹 프록시 생성 코드도 제거할 수 있다. - 프록시 팩토리 빈의 한계중복의 한계6.4 스프링의 프록시 팩토리 빈6.4.1 ProxyFactoryBean프록시를 생성해서 빈 오브젝트로 등록하게 해주는 팩토리 빈 - 어드바이스: 타깃이 필요.. 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 250p ~ 350p 정리 3.5.3 템플릿/콜백의 응용- 템플릿 / 콜백의 재설계- 제네릭스를 이용한 콜백 인터페이스제네릭스를 적용하여 다양한 오브젝트 타입을 지원하는 인터페이스나 메소드를 정의해 보자.//타입 파라미터를 적용한 LineCallbackpublic 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. 이전 1 2 3 4 다음