이미 소장하고 있다면 판매해 보세요.
|
1장 오브젝트와 의존관계
___1.1 초난감 DAO ______1.1.1 User ______1.1.2 UserDao ______1.1.3 main()을 이용한 DAO 테스트 코드 ___1.2 DAO의 분리 ______1.2.1 관심사의 분리 ______1.2.2 커넥션 만들기의 추출 _________UserDao의 관심사항 _________중복 코드의 메소드 추출 _________변경사항에 대한 검증: 리팩토링과 테스트 ______1.2.3 DB 커넥션 만들기의 독립 _________상속을 통한 확장 ___1.3 DAO의 확장 ______1.3.1 클래스의 분리 ______1.3.2 인터페이스의 도입 ______1.3.3 관계설정 책임의 분리 ______1.3.4 원칙과 패턴 _________개방 폐쇄 원칙 _________높은 응집도와 낮은 결합도 _________전략 패턴 ___1.4 제어의 역전(IoC) ______1.4.1 오브젝트 팩토리 _________팩토리 _________설계도로서의 팩토리 ______1.4.2 오브젝트 팩토리의 활용 ______1.4.3 제어권의 이전을 통한 제어관계 역전 ___1.5 스프링의 IoC ______1.5.1 오브젝트 팩토리를 이용한 스프링 IoC _________애플리케이션 컨텍스트와 설정정보 _________DaoFactory를 사용하는 애플리케이션 컨텍스트 ______1.5.2 애플리케이션 컨텍스트의 동작방식 ______1.5.3 스프링 IoC의 용어 정리 ___1.6 싱글톤 레지스트리와 오브젝트 스코프 ______1.6.1 싱글톤 레지스트리로서의 애플리케이션 컨텍스트 _________서버 애플리케이션과 싱글톤 _________싱글톤 패턴의 한계 _________싱글톤 레지스트리 ______1.6.2 싱글톤과 오브젝트의 상태 ______1.6.3 스프링 빈의 스코프 ___1.7 의존관계 주입(DI) ______1.7.1 제어의 역전(IoC)과 의존관계 주입 ______1.7.2 런타임 의존관계 설정 _________의존관계 _________UserDao의 의존관계 _________UserDao의 의존관계 주입 ______1.7.3 의존관계 검색과 주입 ______1.7.4 의존관계 주입의 응용 _________기능 구현의 교환 _________부가기능 추가 ______1.7.5 메소드를 이용한 의존관계 주입 ___1.8 XML을 이용한 설정 ______1.8.1 XML 설정 _________connectionMaker() 전환 _________userDao() 전환 _________XML의 의존관계 주입 정보 ______1.8.2 XML을 이용하는 애플리케이션 컨텍스트 ______1.8.3 DataSource 인터페이스로 변환 _________DataSource 인터페이스 적용 _________자바 코드 설정 방식 _________XML 설정 방식 ______1.8.4 프로퍼티 값의 주입 _________값 주입 _________value 값의 자동 변환 ___1.9 정리 2장 테스트 ___2.1 UserDaoTest 다시 보기 ______2.1.1 테스트의 유용성 ______2.1.2 UserDaoTest의 특징 _________웹을 통한 DAO 테스트 방법의 문제점 _________작은 단위의 테스트 _________자동수행 테스트 코드 _________지속적인 개선과 점진적인 개발을 위한 테스트 ______2.1.3 UserDaoTest의 문제점 ___2.2 UserDaoTest 개선 ______2.2.1 테스트 검증의 자동화 ______2.2.2 테스트의 효율적인 수행과 결과 관리 _________JUnit 테스트로 전환 _________테스트 메소드 전환 _________검증 코드 전환 _________JUnit 테스트 실행 ___2.3 개발자를 위한 테스팅 프레임워크 JUnit ______2.3.1 JUnit 테스트 실행 방법 _________IDE _________빌드 툴 ______2.3.2 테스트 결과의 일관성 _________deleteAll()의 getCount() 추가 _________deleteAll()과 getCount()의 테스트 _________동일한 결과를 보장하는 테스트 ______2.3.3 포괄적인 테스트 _________getCount() 테스트 _________addAndGet() 테스트 보완 _________get() 예외조건에 대한 테스트 _________테스트를 성공시키기 위한 코드의 수정 _________포괄적인 테스트 ______2.3.4 테스트가 이끄는 개발 _________기능설계를 위한 테스트 _________테스트 주도 개발 ______2.3.5 테스트 코드 개선 _________@Before _________픽스처 ___2.4 스프링 테스트 적용 ______2.4.1 테스트를 위한 애플리케이션 컨텍스트 관리 _________스프링 테스트 컨텍스트 프레임워크 적용 _________테스트 메소드의 컨텍스트 공유 _________테스트 클래스의 컨텍스트 공유 _________@Autowired ______2.4.2 DI와 테스트 _________테스트 코드에 의한 DI _________테스트를 위한 별도의 DI 설정 _________컨테이너 없는 DI 테스트 _________DI를 이용한 테스트 방법 선택 ___2.5 학습 테스트로 배우는 스프링 ______2.5.1 학습 테스트의 장점 ______2.5.2 학습 테스트 예제 _________JUnit 테스트 오브젝트 테스트 _________스프링 테스트 컨텍스트 테스트 ______2.5.3 버그 테스트 ___2.6 정리 3장 템플릿 ___3.1 다시 보는 초난감 DAO ______3.1.1 예외처리 기능을 갖춘 DAO _________JDBC 수정 기능의 예외처리 코드 _________JDBC 조회 기능의 예외처리 ___3.2 변하는 것과 변하지 않는 것 ______3.2.1 JDBC try/catch/finally 코드의 문제점 ______3.2.2 분리와 재사용을 위한 디자인 패턴 적용 _________메소드 추출 _________템플릿 메소드 패턴의 적용 _________전략 패턴의 적용 _________DI 적용을 위한 클라이언트/컨텍스트 분리 ___3.3 JDBC 전략 패턴의 최적화 ______3.3.1 전략 클래스의 추가 정보 ______3.3.2 전략과 클라이언트의 동거 _________로컬 클래스 _________익명 내부 클래스 ___3.4 컨텍스트와 DI ______3.4.1 JdbcContext의 분리 _________클래스 분리 _________빈 의존관계 변경 ______3.4.2 JdbcContext의 특별한 DI _________스프링 빈으로 DI _________코드를 이용하는 수동 DI ___3.5 템플릿과 콜백 ______3.5.1 템플릿/콜백의 동작원리 _________템플릿/콜백의 특징 _________JdbcContext에 적용된 템플릿/콜백 ______3.5.2 편리한 콜백의 재활용 _________콜백의 분리와 재활용 _________콜백과 템플릿의 결합 ______3.5.3 템플릿/콜백의 응용 _________테스트와 try/catch/finally _________중복의 제거와 템플릿/콜백 설계 _________템플릿/콜백의 재설계 _________제네릭스를 이용한 콜백 인터페이스 ___3.6 스프링의 JdbcTemplate ______3.6.1 update() ______3.6.2 queryForInt() ______3.6.3 queryForObject() ______3.6.4 query() _________기능 정의와 테스트 작성 _________query() 템플릿을 이용하는 getAll() 구현 _________테스트 보완 ______3.6.5 재사용 가능한 콜백의 분리 _________DI를 위한 코드 정리 _________중복 제거 _________템플릿/콜백 패턴과 UserDao ___3.7 정리 4장 예외 ___4.1 사라진 SQLException ______4.1.1 초난감 예외처리 _________예외 블랙홀 _________무의미하고 무책임한 throws ______4.1.2 예외의 종류와 특징 ______4.1.3 예외처리 방법 _________예외 복구 _________예외처리 회피 _________예외 전환 ______4.1.4 예외처리 전략 _________런타임 예외의 보편화 _________add() 메소드의 예외처리 _________애플리케이션 예외 ______4.1.5 SQLException은 어떻게 됐나? ___4.2 예외 전환 ______4.2.1 JDBC의 한계 _________비표준 SQL _________호환성 없는 SQLException의 DB 에러정보 ______4.2.2 DB 에러 코드 매핑을 통한 전환 ______4.2.3 DAO 인터페이스와 DataAccessException 계층구조 _________DAO 인터페이스와 구현의 분리 _________데이터 액세스 예외 추상화와 DataAccessException 계층구조 ______4.2.4 기술에 독립적인 UserDao 만들기 _________인터페이스 적용 _________테스트 보완 _________DataAccessException 활용 시 주의사항 ___4.3 정리 5장 서비스 추상화 ___5.1 사용자 레벨 관리 기능 추가 ______5.1.1 필드 추가 _________Level 이늄 _________User 필드 추가 _________UserDaoTest 테스트 수정 _________UserDaoJdbc 수정 ______5.1.2 사용자 수정 기능 추가 _________수정 기능 테스트 추가 _________UserDao와 UserDaoJdbc 수정 _________수정 테스트 보완 ______5.1.3 UserService.upgradeLevels() _________UserService 클래스와 빈 등록 _________UserServiceTest 테스트 클래스 _________upgradeLevels() 메소드 _________upgradeLevels() 테스트 ______5.1.4 UserService.add() ______5.1.5 코드 개선 _________upgradeLevels() 메소드 코드의 문제점 _________upgradeLevels() 리팩토링 _________User 테스트 _________UserServiceTest 개선 ___5.2 트랜잭션 서비스 추상화 ______5.2.1 모 아니면 도 _________테스트용 UserService 대역 _________강제 예외 발생을 통한 테스트 _________테스트 실패의 원인 ______5.2.2 트랜잭션 경계설정 _________JDBC 트랜잭션의 트랜잭션 경계설정 _________UserService와 UserDao의 트랜잭션 문제 _________비즈니스 로직 내의 트랜잭션 경계설정 _________UserService 트랜잭션 경계설정의 문제점 ______5.2.3 트랜잭션 동기화 _________Connection 파라미터 제거 _________트랜잭션 동기화 적용 _________트랜잭션 테스트 보완 _________JdbcTemplate과 트랜잭션 동기화 ______5.2.4 트랜잭션 서비스 추상화 _________기술과 환경에 종속되는 트랜잭션 경계설정 코드 _________트랜잭션 API의 의존관계 문제와 해결책 _________스프링의 트랜잭션 서비스 추상화 _________트랜잭션 기술 설정의 분리 _________수직, 수평 계층구조와 의존관계 ___5.3 서비스 추상화와 단일 책임 원칙 _________단일 책임 원칙 _________단일 책임 원칙의 장점 ___5.4 메일 서비스 추상화 ______5.4.1 JavaMail을 이용한 메일 발송 기능 _________JavaMail 메일 발송 ______5.4.2 JavaMail이 포함된 코드의 테스트 ______5.4.3 테스트를 위한 서비스 추상화 _________JavaMail을 이용한 테스트의 문제점 _________메일 발송 기능 추상화 _________테스트용 메일 발송 오브젝트 _________테스트와 서비스 추상화 ______5.4.4 테스트 대역 _________의존 오브젝트의 변경을 통한 테스트 방법 _________테스트 대역의 종류와 특징 _________목 오브젝트를 이용한 테스트 ___5.5 정리 6장 AOP ___6.1 트랜잭션 코드의 분리 ______6.1.1 메소드 분리 ______6.1.2 DI를 이용한 클래스의 분리 _________DI 적용을 이용한 트랜잭션 분리 _________UserService 인터페이스 도입 _________분리된 트랜잭션 기능 _________트랜잭션 적용을 위한 DI 설정 _________트랜잭션 분리에 따른 테스트 수정 _________트랜잭션 경계설정 코드 분리의 장점 ___6.2 고립된 단위 테스트 ______6.2.1 복잡한 의존관계 속의 테스트 ______6.2.2 테스트 대상 오브젝트 고립시키기 _________테스트를 위한 UserServiceImpl 고립 _________고립된 단위 테스트 활용 _________UserDao 목 오브젝트 _________테스트 수행 성능의 향상 ______6.2.3 단위 테스트와 통합 테스트 ______6.2.4 목 프레임워크 _________Mockito 프레임워크 ___6.3 다이내믹 프록시와 팩토리 빈 ______6.3.1 프록시와 프록시 패턴, 데코레이터 패턴 _________데코레이터 패턴 _________프록시 패턴 ______6.3.2 다이내믹 프록시 _________프록시의 구성과 프록시 작성의 문제점 _________리플렉션 _________프록시 클래스 _________다이내믹 프록시 적용 _________다이내믹 프록시의 확장 ______6.3.3 다이내믹 프록시를 이용한 트랜잭션 부가기능 _________트랜잭션 InvocationHandler _________TransactionHandler와 다이내믹 프록시를 이용하는 테스트 ______6.3.4 다이내믹 프록시를 위한 팩토리 빈 _________팩토리 빈 _________팩토리 빈의 설정 방법 _________다이내믹 프록시를 만들어주는 팩토리 빈 _________트랜잭션 프록시 팩토리 빈 _________트랜잭션 프록시 팩토리 빈 테스트 ______6.3.5 프록시 팩토리 빈 방식의 장점과 한계 _________프록시 팩토리 빈의 재사용 _________프록시 팩토리 빈 방식의 장점 _________프록시 팩토리 빈의 한계 ___6.4 스프링의 프록시 팩토리 빈 ______6.4.1 ProxyFactoryBean _________어드바이스: 타깃이 필요 없는 순수한 부가기능 _________포인트컷: 부가기능 적용 대상 메소드 선정 방법 ______6.4.2 ProxyFactoryBean 적용 _________TransactionAdvice _________스프링 XML 설정파일 _________테스트 _________어드바이스와 포인트컷의 재사용 ___6.5 스프링 AOP ______6.5.1 자동 프록시 생성 _________중복 문제의 접근 방법 _________빈 후처리기를 이용한 자동 프록시 생성기 _________확장된 포인트컷 _________포인트컷 테스트 ______6.5.2 DefaultAdvisorAutoProxyCreator의 적용 _________클래스 필터를 적용한 포인트컷 작성 _________어드바이저를 이용하는 자동 프록시 생성기 등록 _________포인트컷 등록 _________어드바이스와 어드바이저 _________ProxyFactoryBean 제거와 서비스 빈의 원상복구 _________자동 프록시 생성기를 사용하는 테스트 _________자동생성 프록시 확인 ______6.5.3 포인트컷 표현식을 이용한 포인트컷 _________포인트컷 표현식 _________포인트컷 표현식 문법 _________포인트컷 표현식 테스트 _________포인트컷 표현식을 이용하는 포인트컷 적용 _________타입 패턴과 클래스 이름 패턴 ______6.5.4 AOP란 무엇인가? _________트랜잭션 서비스 추상화 _________프록시와 데코레이터 패턴 _________다이내믹 프록시와 프록시 팩토리 빈 _________자동 프록시 생성 방법과 포인트컷 _________부가기능의 모듈화 _________AOP: 애스펙트 지향 프로그래밍 ______6.5.5 AOP 적용기술 _________프록시를 이용한 AOP _________바이트코드 생성과 조작을 통한 AOP ______6.5.6 AOP의 용어 ______6.5.7 AOP 네임스페이스 _________AOP 네임스페이스 _________어드바이저 내장 포인트컷 ___6.6 트랜잭션 속성 ______6.6.1 트랜잭션 정의 _________트랜잭션 전파 _________격리수준 _________제한시간 _________읽기전용 ______6.6.2 트랜잭션 인터셉터와 트랜잭션 속성 _________TransactionInterceptor _________메소드 이름 패턴을 이용한 트랜잭션 속성 지정 _________tx 네임스페이스를 이용한 설정 방법 ______6.6.3 포인트컷과 트랜잭션 속성의 적용 전략 _________트랜잭션 포인트컷 표현식은 타입 패턴이나 빈 이름을 이용한다 _________공통된 메소드 이름 규칙을 통해 최소한의 트랜잭션 어드바이스와 속성을 정의한다 _________프록시 방식 AOP는 같은 타깃 오브젝트 내의 메소드를 호출할 때는 적용되지 않는다 ______6.6.4 트랜잭션 속성 적용 _________트랜잭션 경계설정의 일원화 _________서비스 빈에 적용되는 포인트컷 표현식 등록 _________트랜잭션 속성을 가진 트랜잭션 어드바이스 등록 _________트랜잭션 속성 테스트 ___6.7 애노테이션 트랜잭션 속성과 포인트컷 ______6.7.1 트랜잭션 애노테이션 _________@Transactional _________트랜잭션 속성을 이용하는 포인트컷 _________대체 정책 _________트랜잭션 애노테이션 사용을 위한 설정 ______6.7.2 트랜잭션 애노테이션 적용 ___6.8 트랜잭션 지원 테스트 ______6.8.1 선언적 트랜잭션과 트랜잭션 전파 속성 ______6.8.2 트랜잭션 동기화와 테스트 _________트랜잭션 매니저와 트랜잭션 동기화 _________트랜잭션 매니저를 이용한 테스트용 트랜잭션 제어 _________트랜잭션 동기화 검증 _________롤백 테스트 ______6.8.3 테스트를 위한 트랜잭션 애노테이션 _________@Transactional _________@Rollback _________@TransactionConfiguration _________NotTransactional과 Propagation.NEVER _________효과적인 DB 테스트 ___6.9 정리 7장 스프링 핵심 기술의 응용 ___7.1 SQL과 DAO의 분리 ______7.1.1 XML 설정을 이용한 분리 _________개별 SQL 프로퍼티 방식 _________SQL 맵 프로퍼티 방식 ______7.1.2 SQL 제공 서비스 _________SQL 서비스 인터페이스 _________스프링 설정을 사용하는 단순 SQL 서비스 ___7.2 인터페이스의 분리와 자기 참조 빈 ______7.2.1 XML 파일 매핑 _________JAXB _________SQL 맵을 위한 스키마 작성과 컴파일 _________언마샬링 ______7.2.2 XML 파일을 이용하는 SQL 서비스 _________SQL 맵 XML 파일 _________XML SQL 서비스 ______7.2.3 빈의 초기화 작업 ______7.2.4 변화를 위한 준비: 인터페이스 분리 _________책임에 따른 인터페이스 정의 _________SqlRegistry 인터페이스 _________SqlReader 인터페이스 ______7.2.5 자기참조 빈으로 시작하기 _________다중 인터페이스 구현과 간접 참조 _________인터페이스를 이용한 분리 _________자기참조 빈 설정 ______7.2.6 디폴트 의존관계 _________확장 가능한 기반 클래스 _________디폴트 의존관계를 갖는 빈 만들기 ___7.3 서비스 추상화 적용 ______7.3.1 OXM 서비스 추상화 _________OXM 서비스 인터페이스 _________JAXB 구현 테스트 _________Castor 구현 테스트 ______7.3.2 OXM 서비스 추상화 적용 _________멤버 클래스를 참조하는 통합 클래스 _________위임을 이용한 BaseSqlService의 재사용 ______7.3.3 리소스 추상화 _________리소스 _________리소스 로더 _________Resource를 이용해 XML 파일 가져오기 ___7.4 인터페이스 상속을 통한 안전한 기능확장 ______7.4.1 DI와 기능의 확장 _________DI를 의식하는 설계 _________DI와 인터페이스 프로그래밍 ______7.4.2 인터페이스 상속 ___7.5 DI를 이용해 다양한 구현 방법 적용하기 ______7.5.1 ConcurrentHashMap을 이용한 수정 가능 SQL 레지스트리 _________수정 가능 SQL 레지스트리 테스트 _________수정 가능 SQL 레지스트리 구현 ______7.5.2 내장형 데이터베이스를 이용한 SQL 레지스트리 만들기 _________스프링의 내장형 DB 지원 기능 _________내장형 DB 빌더 학습 테스트 _________내장형 DB를 이용한 SqlRegistry 만들기 _________UpdatableSqlRegistry 테스트 코드의 재사용 _________XML 설정을 통한 내장형 DB의 생성과 적용 ______7.5.3 트랜잭션 적용 _________다중 SQL 수정에 대한 트랜잭션 테스트 _________코드를 이용한 트랜잭션 적용 ___7.6 스프링 3.1의 DI _________자바 언어의 변화와 스프링 ______7.6.1 자바 코드를 이용한 빈 설정 _________테스트 컨텍스트의 변경 _________context:annotation-config / 제거 _________bean의 전환 _________전용 태그 전환 ______7.6.2 빈 스캐닝과 자동와이어링 _________@Autowired를 이용한 자동와이어링 _________@Component를 이용한 자동 빈 등록 ______7.6.3 컨텍스트 분리와 @Import _________테스트용 컨텍스트 분리 _________@Import ______7.6.4 프로파일 _________@Profile과 @ActiveProfiles _________컨테이너의 빈 등록 정보 확인 _________중첩 클래스를 이용한 프로파일 적용 ______7.6.5 프로퍼티 소스 _________@PropertySource _________PropertySourcesPlaceholderConfigurer ______7.6.6 빈 설정의 재사용과 @Enable* _________빈 설정자 _________@Enable* 애노테이션 ___7.7 정리 8장 스프링이란 무엇인가? ___8.1 스프링의 정의 ___8.2 스프링의 목적 ______8.2.1 엔터프라이즈 개발의 복잡함 _________복잡함의 근본적인 이유 _________복잡함을 가중시키는 원인 ______8.2.2 복잡함을 해결하려는 도전 _________제거될 수 없는 근본적인 복잡함 _________실패한 해결책: EJB _________비침투적인 방식을 통한 효과적인 해결책: 스프링 ______8.2.3 복잡함을 상대하는 스프링의 전략 _________기술적 복잡함을 상대하는 전략 _________비즈니스와 애플리케이션 로직의 복잡함을 상대하는 전략 _________핵심 도구: 객체지향과 DI ___8.3 POJO 프로그래밍 ______8.3.1 스프링의 핵심: POJO ______8.3.2 POJO란 무엇인가? ______8.3.3 POJO의 조건 ______8.3.4 POJO의 장점 ______8.3.5 POJO 프레임워크 ___8.4 스프링의 기술 ______8.4.1 제어의 역전(IoC) / 의존관계 주입(DI) _________DI의 활용 방법 ______8.4.2 애스펙트 지향 프로그래밍(AOP) _________AOP의 적용 기법 _________AOP의 적용 단계 ______8.4.3 포터블 서비스 추상화(PSA) ___8.5 정리 9장 스프링 프로젝트 시작하기 ___9.1 자바 엔터프라이즈 플랫폼과 스프링 애플리케이션 ______9.1.1 클라이언트와 백엔드 시스템 ______9.1.2 애플리케이션 서버 _________스프링소스 tcServer ______9.1.3 스프링 애플리케이션의 배포 단위 ___9.2 개발도구와 환경 ______9.2.1 JavaSE와 JavaEE _________JavaSE/JDK _________JavaEE/J2EE ______9.2.2 IDE ______9.2.3 SpringSoruce Tool Suite _________SpringIDE 플러그인 _________STS 플러그인 _________기타 플러그인 ______9.2.4 라이브러리 관리와 빌드 툴 _________라이브러리 관리의 어려움 _________라이브러리 선정 _________빌드 툴과 라이브러리 관리 _________스프링 모듈의 두 가지 이름과 리포지토리 ___9.3 애플리케이션 아키텍처 ______9.3.1 계층형 아키텍처 _________아키텍처와 SoC _________3계층 아키텍처와 수직 계층 _________계층형 아키텍처 설계의 원칙 ______9.3.2 애플리케이션 정보 아키텍처 _________DB/SQL 중심의 로직 구현 방식 _________거대한 서비스 계층 방식 ______9.3.3 오브젝트 중심 아키텍처 _________데이터와 오브젝트 _________도메인 오브젝트를 사용하는 코드 _________도메인 오브젝트 사용의 문제점 _________빈약한 도메인 오브젝트 방식 _________풍성한 도메인 오브젝트 방식 _________도메인 계층 방식 _________DTO와 리포트 쿼리 ______9.3.4 스프링 애플리케이션을 위한 아키텍처 설계 _________계층형 아키텍처 _________정보 전송 아키텍처 _________상태 관리와 빈 스코프 _________서드파티 프레임워크, 라이브러리 적용 ___9.4 정리 부록 A 스프링 모듈 ___A.1 스프링 모듈의 종류와 특징 ______A.1.1 스프링 모듈 이름 ______A.1.2 스프링 모듈 추가 _________수동 추가 _________Maven/Ivy 자동 추가 ______A.1.3 스프링 모듈 목록 ___A.2 스프링 모듈의 의존관계 ______A.2.1 모듈별 의존관계 _________ASM 모듈 _________Core 모듈 _________Beans 모듈 _________AOP 모듈 _________Expression 모듈 _________Context 모듈 _________Context.Support 모듈 _________Transaction 모듈 _________JDBC 모듈 _________ORM 모듈 _________Web 모듈 _________Web.Servlet 모듈 _________Web.Portlet 모듈 _________Web.Struts 모듈 _________JMS 모듈 _________Aspects 모듈 _________Instrument 모듈 _________Instrument.Tomcat 모듈 _________Test 모듈 부록 B 스프링 의존 라이브러리 ___B.1 의존 라이브러리의 종류와 특징 ______B.1.1 의존 라이브러리 이름 ______B.1.2 의존 라이브러리 추가 _________수동 추가 _________자동 추가 ___B.2 모듈별 의존 라이브러리 의존관계 ______B.2.1 필수 라이브러리 ______B.2.2 모듈별 선택 라이브러리 _________ASM 모듈 _________Core 모듈 _________Beans 모듈 _________AOP 모듈 _________Expression 모듈 _________Context 모듈 _________Context.Support 모듈 _________Transaction 모듈 _________JDBC 모듈 _________ORM 모듈 _________Web 모듈 _________Web.Servlet 모듈 _________Web.Portlet 모듈 _________Web.Struts 모듈 _________JMS 모듈 _________Aspects 모듈 _________Instrument 모듈 _________Instrument.Tomcat 모듈 _________Test 모듈 |
이일민의 다른 상품
|
★ 이 책에서 다루는 내용 ★
★ 스프링의 3대 핵심 기술인 IoC/DI, PSA, AOP를 빠르고 효과적으로 배울 수 있는 실전 예제 중심의 설명 개발 현장에서 매일 만나는 평범한 자바코드를 스프링의 핵심 기술을 적용해서 깔끔하고 스프링다운 코드로 개선해나가는 과정을 상세하게 보여줌으로써 스프링의 핵심 원리와 적용 방법을 이해할 수 있게 해준다. ★ 자바언어와 JDBC만 알면 누구라도 따라할 수 있는 58단계의 상세한 스프링 애플리케이션 핵심 코드 개발과정 자바 초보 개발자도 부담없이 따라할 수 있도록 58단계로 세분화된 애플리케이션 핵심코드 개발과정과 58개의 예제 프로젝트를 제공해 복잡한 스프링의 기술을 차근차근 학습해 나갈 수 있게 해준다. ★ 스프링 3.0과 스프링 3.1의 최신 기술 활용 방법과 업그레이드 전략 제시 스프링 3.0과 스프링 3.1의 최신 기술을 이용해서 애플리케이션을 개발할 때 필요로 하는 친절한 가이드라인을 제공해준다. 스프링 3.0으로 개발된 예제를 스프링 3.1의 기술에 맞게 전환하는 과정을 상세하게 보여준다. ★ 스프링 애플리케이션 아키텍처 설계와 스프링 기반 프레임워크 제작을 위한 완벽 가이드 스프링을 이용한 엔터프라이즈 애플리케이션 아키텍처 작성을 위한 다양한 아키텍처 소개와 전략 분석, 스프링을 기반으로 한 사내 프레임워크 제작에 꼭 필요한 스프링 확장 기법과 원리를 소개한다. ★ 이 책의 구성 ★ 스프링이 공개된 지 이미 9년째이고 많은 개발자가 스프링을 사용해 애플리케이션을 개발해오고 있다. 그럼에도 적지 않은 수의 개발자들은 스프링의 핵심 가치와 혜택을 충분히 누리지 못하는 듯하다. 스프링의 가치를 제대로 누리며 사용하려면 스프링을 제대로 공부해야 한다. 스프링을 효과적으로 익히려면 다음의 세 가지 단계를 통해 스프링을 학습해야 한다. ▶ 스프링의 핵심 가치와 원리에 대한 이해 ▶ 스프링의 기술에 대한 지식과 선택 기준 정립 ▶ 스프링의 적용과 확장 이 책은 이 세 가지 단계를 따라서 스프링을 공부하려는 사람을 대상으로 쓰여진 책으로, Vol. 1에서는 첫 단계인 ‘핵심 가치와 원리에 대한 이해’를 중심으로 하고, Vol. 2에서는 두 번째 단계인 ‘스프링 기술에 대한 지식과 선택’을 집중해서 다룬다. 세 번째 단계인 확장에 대해서는 책의 여러 곳에서 다양한 전략과 예제, 힌트를 제공한다. 하지만 본격적으로 응용과 확장에 대한 지식을 쌓는 일은 독자들의 몫이다. 각자의 상황에 맞게 처음 두 단계에서 배운 지식을 응용해 스프링을 확장해보는 훈련을 해야 한다. [Vol. 1 스프링의 이해와 원리]의 구성과 예제 Vol. 1에서는 간단한 예제를 만들어가는 과정을 통해 스프링의 기본 원리와 핵심 기술을 설명한다. 스프링은 개발자가 만드는 코드가 얹혀서 동작하는 프레임워크다. 프레임워크의 가장 중요한 목적은 개발자가 일정한 틀을 따라 효과적으로 애플리케이션을 개발하도록 돕는 것이다. 따라서 프레임워크를 잘 이해하려면 프레임워크를 사용했을 때 애플리케이션 코드가 어떻게 만들어지는지 자세히 살펴봐야 한다. Vol. 1에서는 각 장마다 스프링 프레임워크를 사용하지 않고 개발한 단순한 코드를 먼저 작성해보고, 여러 단계를 거쳐 최종적으로 스프링 프레임워크를 활용한 코드로 발전시킨다. 프레임워크를 적용하지 않았을 때의 코드와 적용 후의 코드를 비교하면서 스프링 프레임워크를 사용하면 어떤 식으로 코드가 만들어져야 하는지를 설명한다. Vol. 1에서 다루는 내용은 Vol. 2에서 본격적으로 소개할 스프링의 다양한 기술을 이해하는 데 중요한 기반이 된다. 스프링에 적용된 기본 패턴과 기반이 되는 원리를 Vol. 1에서 설명하는 순서에 따라 학습해두면 이후에 스프링의 개별 기술과 API를 익힐 때 많은 도움이 될 것이다. 1장부터 7장까지는 사용자 관리 기능을 구현하는 하나의 예제를 만드는 과정을 단계적으로 설명한다. 예제는 처음부터 끝까지 모두 연결된다. 코드를 지속적으로 개선하면서 발전시키기 때문에 코드가 계속 바뀌고 새로운 클래스가 추가되거나 사라지기도 한다. 에이콘출판사 홈페이지에서 내려 받을 수 있는 소스코드의 예제들은 각 장에서 코드가 바뀌는 주요 절별로 제공된다. 가능하면 Vol. 1의 예제는 책의 내용을 참고해서 직접 따라 해보기를 권장한다. 코드가 만들어지고 개선되고 발전하는 과정을 직접 체험하는 것이 Vol. 1의 내용을 이해하는 데 가장 좋은 방법이다. 스프링 3.1의 새로운 기술을 다루는 7.6절을 제외한 나머지 모든 예제는 스프링 3.0을 기준으로 사용할 라이브러리를 소개한다. 모든 내용은 스프링 3.1에서도 동일하게 적용되므로 스프링 3.1을 이용해 예제를 작성해도 무방하다. 소스코드 파일에는 스프링 3.0과 3.1 버전으로 각각 작성된 Vol. 1의 예제 프로젝트가 담겨 있다. [별도 소스코드 제공] - 이 책에 들어 있는 모든 예제의 소스코드 - 스프링 3.0과 스프링 3.1의 기술 활용법을 보여주는 학습 테스트 코드 - 스프링 @MVC를 이용한 웹 애플리케이션 프로젝트 |