스프링 프레임워크 2.5에 대해 상세하게 설명하고 있는 책으로, 새로 추가된 기능에 대한 내용뿐 아니라 기본 원리 및 여러 가지 사용 방법, 그리고 그 장·단점을 다루고 있다. 최근 프레임워크의 경향이 가벼운 프로그램으로 전환되고 있는 추세이다. CMP 같은 복잡하고 컨테이너에 의존적인 서비스와 트랜잭션 관리 시스템은 더욱 간결한 하이버네이트나 관점 지향 프로그래밍(AOP) 같은 대안들로 대체된 것이다.

스프링은 제어 역전(IoC)의 원칙에 기반하여 포괄적인 가벼운 컨테이너를 제공하여 그 위에서 애플리케이션을 만들 수 있게 되었다. 스프링 프레임워크의 품질은 전통적인 자바 EE 아키텍처를 다양한 측면에서 대체할 만큼 훌륭하며, 그 결과 매우 많은 개발자들이 포괄적인 스프링 스킬을 필요로 하게 되었다. 이 책은 스프링을 사용하는 방법과 어떻게 효과적으로 사용할지 이해하는 데 어려움을 겪고 있는 사람들을 대상으로 하여 실무에서도 쉽게 적용할 수 있도록 다양하고 유용한 많은 예제 코드를 제공하고 있다.

최근 자바 세계는 EJB 같은 소위 '중량' 아키텍처에서 스프링과 같은 경량 프레임워크로의 급격한 이전을 목격하였다. CMP 같은 복잡하고 컨테이너에 의존적인 서비스와 트랜잭션 관리 시스템은 더욱 간결한 하이버네이트나 관점 지향 프로그래밍(AOP) 같은 대안들로 대체되었다. 그 핵심에서 스프링은 제어 역전(IoC)의 원칙에 기반하여 포괄적인 가벼운 컨테이너를 제공하여 그 위에서 애플리케이션을 만들 수 있게 되었다. 스프링은 이 컨테이너 위에서 매우 다양한 범위의 고품질 오픈소스 프로젝트들을 하나의 응집성 있는 프레임워크로 묶으며 무수히 많은 유용한 서비스들을 제공해 준다.

스프링 프레임워크의 품질은 전통적인 자바 EE 아키텍처를 다양한 측면에서 대체할 만큼 훌륭하며, 그 결과 매우 많은 개발자들이 포괄적인 스프링 스킬을 필요로 하게 되었다. 스프링이 꽤 폭넓은 문서와 예제를 보유하고 있음에도, 많은 개발자들이 여전히 스프링을 사용하는 방법과 어떻게 효과적으로 사용할지 이해하는 데 어려움을 겪고 있다고 생각한다. 『프로 스프링 2.5』는 이러한 어려움을 돕기 위해 쓰여졌으며, 이 책을 통해 독자 여러분들은 스프링을 사용하여 더 나은 웹과 독립 애플리케이션을 구축하는 방법과 이 프레임워크의 다양한 선택 사항들 중에 어떤 것을 사용할지 가려내는 법을 배우게 될 것이다.

이 책의 목표는 여러분 자신의 애플리케이션에서 스프링을 효율적으로 사용할 때 필요한 모든 지식을 제공하고 스프링의 내부가 어떻게 돌아가는지에 대한 통찰력을 주고자 함이다. 이 책을 읽고 난 뒤에는 스프링과 이에 관련된 오픈소스 프로젝트들을 활용하여 효과적으로 애플리케이션을 구축하는 데 필요한 지식을 갖추게 될 것이다.

『프로 스프링 2.5』는 이미 국내 출간된 그 어떤 책보다도 스프링 프레임워크 2.5에 대해 상세하게 설명하고 있다. 새로 추가된 기능에 대한 내용뿐 아니라 기본 원리 및 여러 가지 사용 방법, 그리고 그 장·단점에 관해서도 자세히 설명한다. 뿐만 아니라 독자의 이해를 돕고 실무에서도 쉽게 적용할 수 있도록 다양하고 유용한 많은 예제 코드를 제공한다. 따라서 스프링을 처음 사용하는 사용자에게도 유용하지만 기존의 프로젝트에 적용한 스프링을 보다 더 스프링답게 사용하려는 사용자에게도 유용한 참고서가 될 것이다.

얀 마카첵 (Jan Machacek)

얀 마카첵은 케이스 솔루션의 수석 소프트웨어 아키텍트이며, 모든 프로젝트에서 아키텍처 관련 결정의 핵심에 있는 인물이다. 아키텍처는 차치하고도, 얀은 구현에 있어 가장 복잡하고 어려운 분야들에 대해 도움을 자주 요청받는 사람이기도 하다. 얀은 1-4, 6, 9, 11, 14, 16, 22장을 저술하였다.

알렉사 부코틱 (Aleksa Vukotic)

알렉사 부코틱은 케이크 솔루션의 소프트웨어 아키텍트이다. 대부분의 케이크 솔루션의 프로젝트들의 구현뿐만 아니라 아키텍처를 두루 살펴보고 있다. 그는 대부분의 Java EE 기술에 대해 폭넓은 경험을 보유하고 있으며, 특히 스프링 MVC와 시큐리티에 일가견이 있다. 알렉사는 5, 8, 10, 15, 17, 21장을 저술하였다.

아너반 차크라보티 (Anirvan Chakraborty)

아너반 차크라보티는 케이크 솔루션 선임 개발자이다. 스프링 프레임워크에 대한 폭넓은 경험과 디테일한 부분에 주의를 기울이는 성격 덕분에 그는 케이크 솔루션 프로젝트의 어려운 측면들을 구현하는 역할을 하였다. 아너반은 7, 13, 19, 20장을 저술하였다.

제시카 디트 (Jessica Ditt)

제시카 디트는 2008년 초부터 런던에 기반을 둔 Avenue A|Razorfish에서 개발자로 일하고 있다. 그 전에는 케이크 솔루션 팀에서 2년 반 동안 일했었다. 그는 매우 많은 엔터프라이즈급 프로젝트에서 일해왔으며, 그 모두는 스프링 프레임워크와 스프링 웹 플로우로 작성되었다. 제시카는 12, 18장을 저술하였다.

백기선

스프링과 하이버네이트에 관심이 많으며, 블로그(http://whiteship.me)에서 모든 걸 공유하고 있다. 5, 6, 11장을 번역했으며, 책 전반에 걸쳐 용어정리와 감수를 맡았다

손권남

『iBATIS 인 액션』을 번역했으며, 오픈 마루 웹 서비스팀에서 일하고 있다. 자신의 블로그(http://kwon37xi.egloos.com)에 가끔씩 부질 없는 글을 올리기도 하며, 공부하다 기억할 만한 내용들을 정리해 두기도 한다. 9, 10, 19, 20, 21, 22장을 번역했다.

박천구

자바, 오픈소스, 미디어 서비스 등에 관심을 가지고 있다. 『EJB&WebLogic』(2002, 가메출판사)을 집필했으며, 『Prototype & Scriptaculous 인 액션』(2008, 위키북스)과 『프로 웹 2.0 매시업』(2009, 위키북스)을 번역했다. 16, 17, 18장을 번역했다.

김홍회

현재 JCO 기술전략팀장 및 자바스터디 네트워크(www.javastudy.co.kr) 대표운영자로 활동하고 있으며, 동부 CNI에서 금융개발을 담당하고 있다. 주된 관심분야는 개발 방법론 및 웹서비스이다. 1, 2, 3, 4, 7장을 번역했다.

허혁

nhn 포토서비스팀에서 포토 서비스를 하고 있으며 자동화시스템과 장애 검출을 위해 그루비와 스프링 배치 적용을 확대 중이다. 8, 12, 13, 14, 15장을 번역했다.

  • 1부 스프링 시작하기
    • 01장 스프링 소개
      • 스프링이란?
        • 의존성 주입을 넘어서
        • 스프링과 Aspect-Oriented Programming
        • 스프링에서의 데이터 접근
        • Java EE의 단순화 및 연동
        • 잡(job) 스케줄링 지원
        • 메일 지원
        • 동적 언어
        • 원격 지원
        • 트랜잭션 관리
        • 스프링 MVC 프레임워크
        • 스프링 웹 플로
        • AJAX
        • 국제화
        • 예외 처리 단순화
      • 스프링 프로젝트
        • 스프링의 기원
        • 스프링 커뮤니티
        • 마이크로소프트 닷넷용 스프링
        • 스프링 IDE
        • 스프링 시큐리티(예전 Acegi)
        • 스프링 대안책
      • 예제 코드
      •  
    • 02장 시작하기
      • 스프링 프레임워크 가져오기
        • CVS에서 스프링 체크아웃 하기
        • 스프링 소스코드 빌드하기
        • 스프링 배포판 검증하기
        • 스프링 패키징
        • 스프링 의존 라이브러리
        • 스프링 예제 애플리케이션
        • 스프링과 IDE 설정
      • Hello, World
      • "Hello, World"에 스프링 적용하기
        • 의존성 주입
        • 스프링의 영향력
      •  
    • 03장 제어 역전 소개
      • IoC와 DI
      • IoC의 유형
        • 문맥에 따른 의존성 룩업
        • 생성자 DI
        • 세터 DI
        • 주입 vs. 룩업
        • 세터 주입 vs. 생성자 주입
      • 스프링의 IoC
      • 스프링을 사용하는 DI
        • 빈과 빈팩토리
        • BeanFactory 구현체
        • XML 빈 정의
        • 생성자 주입 사용하기
        • 주입 매개변수
        • 빈 작명 이해하기
        • 빈 인스턴스화 모드
        • 의존성 처리하기
        • 빈을 자동으로 연결하기
        • 의존성 확인하기
        • 빈 상속
      •  
    • 04장 기초를 넘어서
      • 스프링이 애플리케이션 이식성에 주는 영향
      • 빈 생명 주기 관리
        • 빈 생성에 끼어들기
        • 빈 소멸에 끼어들기
      • 빈이 스프링을 인식하도록 만들기
        • BeanNameAware 인터페이스 사용하기
        • BeanFactoryAware 인터페이스 사용하기
      • 매소드 주입 사용하기
      • 룩업 메서드 주입
      • 메서드 교체
      • FactoryBean 사용하기
        • MessageDigestFactoryBean
        • FactoryBean에 직접 접근하기
      • BeanFactoryPostProcessor
      • BeanFactoryPostProcessor 구현하기
      • 자바빈즈 PropertyEditor
        • 내장 프로퍼티에디터
        • 커스텀 프로퍼티에디터 만들기
      • BeanPostProcessor
        • BeanPostProcessor 구현하기
        • 빈포스트프로세서 사용 시기
      • 스프링 애플리케이션컨텍스트
        • 애플리케이션컨텍스트 구현체
        • ApplicationContextAware 사용하기
        • 빈 초기화 제어하기
        • 애노테이션-기반 설정 사용하기
        • MessageSource의 국제화
        • MessageSource를 독립 애플리케이션에서 사용하기
        • MessageSourceResolvable 인터페이스
        • 애플리케이션 이벤트 사용하기
        • 이벤트 사용에 대한 고려
        • 리소스 접근
      •  
    • 05장 스프링 AOP 소개
      • AOP 개념
      • AOP 종류
        • 정적인 AOP
        • 동적인 AOP
        • AOP 종류 선택하기
      • 스프링에서 AOP
        • AOP 진영
        • AOP로 "Hello, World"
        • 스프링 AOP 아키텍처
        • ProxyFactory 클래스
        • 스프링에서 어드바이스 만들기
      • 어드바이저와 포인트컷
        • Pointcut 인터페이스
        • ComposablePointcut 사용하기
        • 포인트컷팅 요약
      • 프록시에 관한 모든 것
        • 프록시 이해하기
        • JDK 동적 프록시 사용하기
        • CGLIB 프록시 사용하기
        • 프록시 성능 비교하기
        • 어떤 프록시를 사용해야 하는가?
      •  
    • 06장 AOP 심화 학습
      • @AspectJ
      • @AspectJ 애스팩트를 보다 자세히
        • 포인트컷
        • 포인트컷 표현식
        • 포인트컷 표현식 살펴보기
        • XML에서 @포인트컷 사용하기
        • 어드바이스 종류
        • 인자 바인딩
        • Introduction
        • 애스팩트 라이프 사이클
      • AOP를 지원하는 프레임워크 서비스
        • aop 네임스페이스를 사용하여 첫 번째 애스팩트 작성하기
        • aop 네임스페이스에서 포인트컷
        • aop 네임스페이스 사용하여 어드바이스 만들기
        • aop 네임스페이스에서 Introduction
      • 어떤 스타일을 사용해야 하는가?
      • 스프링 AOP 프록시 사용하기
        • 프록시의 영향
      • AspectJ 연동
        • 첫 번째 애스팩트 작성하기
        • 예제 애플리케이션 컴파일하기
        • AspectJ의 애스팩트 스코프
      • 로드-타임 위빙
        • 여러분의 첫 번째 로드-타임 위빙 예제
        • LoadTimeWeaver 룩업 전략
      • 실용적인 AOP 사용처
        • 성능과 건강도 모니터링
      •  
    • 07장 스프링 스키마와 네임스페이스
      • 왜 새로운 설정인가?
      • 스프링 2.5에 포함되어 있는 스키마
        • beans 스키마
        • context 스키마
        • util 스키마
        • tx 스키마
        • aop 스키마
        • jee 스키마
        • lang 스키마
      • 스키마 무대 뒤편에
      • 커스텀 스키마
      • IDE 설정
      •  
    • 08장 스프링 패턴
      • 디렉터리 구조
        • 단순한 애플리케이션
        • 복잡한 애플리케이션
        • 패키지 만들기와 이름짓기
      • 디자인 패턴 소개
        • 인터페이스 기반 프로그래밍
        • 생성 패턴
        • 구조 탆턴
        • 행위 패턴
        • 템플릿 메서드
      • 스프링 애플리케이션 패턴
        • 계층 구조 설계
        • 고성능 페이징
        • 다중 오류 보고
        • 사용자 인터페이스 트랜잭션
        • 백그라운드 프로세스
        • 이메일 통지
        • 에러 수집과 로깅
      •  
  • 2부 데이터 접근
    • 09장 JDBC 지원
      • JDBC 핵심 개념
        • DriverManager와 Connections 사용하기
        • PreparedStatement 사용하기
        • CallableStatement 사용하기
        • 다른 JDBC 개념들
      • 스프링 데이터 접근 지원에 대한 개념
      • JDBC 데이터 접근 지원
      • JdbcTemplate 사용하기
        • JdbcTemplate.execute
        • JdbcTemplate.query와 그 친구들
        • JdbcTemplate.update
        • JdbcTemplate.batchUpdate
      • RdbmsOperation 하위클래스
        • sqlUpdate
        • BatchSqlUpdate
        • SqlCall과 StoredProcedure
        • SqlQuery와 그 하위클래스들
        • JdbcTemplate이냐 RdbmsOperation이냐?
      • 대형 이진 객체
      • JdbcDaoSupport
      • 간단한 스프링 JDBC
        • 간단한 스프링 JDBC
        • SimpleJdbcCall
        • SimpleJdbcInsert
        • SimpleJdbcDaoSupport
      •  
    • 10장 iBATIS 통합하기
      • iBATIS는 무엇인가?
        • iBATIS 버전
        • 인프라스트럭처와 설정
      • 매핑 파일
        • sqlMap 파일
        • iBATIS와 스프링 설정하기
      • 데이터 질의
        • 간단한 질의
        • 일대일(1:1) 질의
        • 일대다(1:n) 질의
        • 다대다(m:n) 질의
      • 데이터 갱신
      • 데이터 삭제
      • 데이터 삽입
      • iBATIS의 부족한 점은 무엇인가?
      • 전반적인 성능
      •  
    • 11장 하이버네이트 지원
      • 하이버네이트 기초
      • 패키징
      • 하이버네이트 지원 소개
        • 하이버네이트 세션 사용하기
        • HibernateDaoSupport 사용하기
        • HibernateTemplate과 Session 중에 어떤 것을 사용할지 결정하기
      • 엔터프라이즈 애플리케이션에서 하이버네이트 사용하기
        • 변경된 데이터 수정 방지하기
        • 객체 동일성
        • 트랜잭션 처리
        • 로딩 지연
        • 대규모 데이터 집합 다루기
        • 큰 객체 다루기
        • 하이버네이트와 다른 DAO 코드 조합하기
      •  
  • 3부 엔터프라이즈 애플리케이션 컴포넌트
    • 12장 스프링과 잡 스케줄링
      • JDK 타이머를 이용한 잡 스케줄링
        • 타이머 트리거 타입
        • 간단한 잡 만들기
        • JDK 타이머 스케줄링에 대한 스프링 지원
      • OpenSymphony 쿼츠를 사용한 잡 스케줄링
      • 쿼츠 소개하기
      • 스프링의 쿼츠 지원
      • 잡 스케줄링 고려사항
        • 스케줄러 선택하기
        • Job 클래스에서 잡 로직을 분리해서 묶기
        • 작업 실행과 스레드 풀링
      •  
    • 13장 스프링의 메일 지원
      • 스프링 메일 API의 구조
        • 스프링을 사용하여 메일 설정하기
      • 간단한 이메일 보내기
        • 프로그램상에서 이메일 구성하고 전송하기
        • 선언적으로 이메일 구성하기
        • MIME 메시지의 작성과 전송
        • 엔터프라이즈 수준의 이메일 처리에 대해 자세히 알아보기
      •  
    • 14장 동적 언어
      • 지원되는 언어에 대한 기초적인 내용
        • 빈쉘
        • 그루비
        • 제이루비
      • 동적언어를 스프링 빈으로 사용하기
        • 동적 언어 지원기능의 내부 동작 방식
        • 동적 언어로 작성된 빈의 프록시 생성하기
        • 성능
      • 갱신이 가능한 빈
      • 빈쉘로 구현한 빈
      • 제이루비로 구현한 빈
      • 그루비로 구현한 빈
      • 스프링 애플리케이션에서 동적 언어의 일반적인 사용방법
      •  
  • 4부 자바 EE 5
    • 15장 스프링 리모팅 사용하기
      • 스프링 리모팅 아키텍처
      • RMI
        • 임의의 서비스 노출시키기
        • 프록시를 사용한 RMI 서비스 접근
        • CORBA 서비스 노출시키기
        • CORBA 서비스 접속하기
      • JAX-RPC를 통한 웹 서비스
        • 아파치 Axis 소개
        • ServletEndpointSupport로 웹 서비스 만들기
        • 프록시를 사용하여 RPC형식의 웹 서비스에 접근하기
        • Axis 서비스에서 자바빈 이용하기
      • JAX-WS 웹 서비스 사용하기
        • SimpleJaxWsServiceExporter를 사용하여 웹 서비스 노출하기
        • XFire를 이용하여 웹 서비스 노출하기
        • JAX-WS 웹 서비스에 접근하기
        • 다른 클라이언트에서 자바 웹 서비스에 접근하기
      • HTTP Invoker를 이용하여 웹 서비스 만들기
        • 간단한 서비스 노출시키기
        • 프록시를 이용하여 HTTP Invoker 서비스에 접근하기
        • HTTP Invoker 서비스에서 임의 객체 사용하기
        • HTTP 기본 인증 사용하기
      • 리모팅 아키텍처 선정하기
      •  
    • 16장 트랜잭션 관리
      • 스프링 트랜잭션의 추상화 레이어
      • 트랜잭션의 프로퍼티
        • TransactionDefinition 인터페이스
        • TransactionStatus 인터페이스 사용하기
        • PlatformTransactionManager의 구현
      • 트랜잭션 관리에 대한 예제 살펴보기
        • 트랜잭션이 적용되지 않은 코드
      • 프로그래밍을 통한 트랜잭션 관리
        • TransactionTemplate 클래스 사용하기
        • 프로그래밍을 통한 트랜잭션 관리에 대한 요약
      • 선언을 통한 트랜잭션 관리
        • TransactionProxyFactoryBean 사용하기
        • 트랜잭션 관리에 프록시를 사용하여 얻어지는 효과
      • AOP 트랜잭션 관꺸
        • 애노테이션 기반의 AOP 트랜잭션 관리
        • XML AOP 트랜잭션 관리 사용하기
      • 여러 개의 트랜잭션 리소스에 트랜잭션 적용하기
      • 트랜잭션 동기화를 직접 구현하기
      •  
    • 17장 스프링 MVC로 웹 애플리케이션 개발하기
      • MVC 아키텍처
      • 스프링 MVC
        • MVC 구현
      • 핸들러 맵핑하기
      • 스프링 컨트롤러
        • AbstractController
        • ParameterizableViewController
        • MultiActionController
      • 인터셉터
      • 뷰, 로케일, 그리고 테마
        • 프로그래밍을 통해서 뷰 사용하기
        • ViewResolver 사용하기
        • 현지화된 메세지를 사용하기
        • 로케일 사용하기
        • 테마 사용하기
        • 폼 컨트롤러 사용하기
        • AbstractWizardFormController에 대해 알아보기
        • 파일 업로드
      • 예외 처리하기
      • 스프링과 다른 웹 기술들
        • JSP 사용하기
        • 벨로시티 사용하기
        • 프리마커
        • XSLT 뷰
        • PDF 뷰 사용하기
        • 엑셀 뷰 사용하기
        • 타일즈와 스프링 통합하기
        • JasperReports
      • 설정을 대신하는 스프링 컨벤션
        • Controller 컨벤션
        • MultiActionController 컨벤션
        • Model 컨벤션
        • View 컨벤션
      • Controller 설정에 애노테이션 사용하기
        • @Controller 애노테이션
        • @RequestMapping 애노테이션
        • @RequestParam 애노테이션
        • @ModelAttribute 애노테이션
        • 애노테이션과 커맨드 컨트롤러 함께 사용하기
      •  
    • 18장 스프링 웹 플로
      • 스프링 웹 플로에 대한 소개
        • 핵심 개념
        • 스프링 웹 플로 다운로드하기
        • 스프링 웹 플로의 의존성
      • Hello, Web Flow!
      • 상태에 대해서 알아보기
        • 뷰 상태
        • 디시젼 상태
        • 종료 상태
      • 트랜지션 다루기
      • 고급 수준의 개념
        • 표현 언어와 스코프
        • 액션 구현하기
        • 모델 데이터 바인딩하기
        • 부분적으로 뷰를 렌더링하기
        • 플로의 입력/출력 파라미터를 매핑하기
        • 서브플로 사용하기
      • 스프링 웹 플로의 내부구조
        • 플로의 실행 구조
        • 플로 실행자
        • 플로 정의 레지스트리
        • 플로 실행 저장소
      • 스프링 MVC와 통합하기
        • 플로 처리
        • 뷰 결정하기
      • 스프링 보안모듈로 플로에 보안설정하기
        • 1단계: SecurityFlowExecutionListener 추가하기
        • 2단계: 기본적인 사용자 인증과 권한 인증의 처리
        • 3단계: 플로 정의에 보안 규칙 정의하기
      • 문제 해결 방법
        • 상태 정보가 제공되도록 내비게이션 제어하기
        • 브라우저의 내비게이션 메뉴에 대한 지원과 중복 폼 전송
      • 플로 정의 테스트하기
      •  
    • 19장 스프링과 AJAX
      • DWR
      • Installing DWR
      • 스프링에서 DWR 설정하기
      • 완전한 예제
      • DWR 설정 테스트하기
      • 완전한 예제 실행해보기
      • DWR 스크립트의 기본
        • 간단한 콜백 함수 사용하기
        • 메타 데이터 객체 호출하기
      • engine.js
        • 일괄 호출
        • 호출 순서
        • 오류와 경고 다루기
      • util.js
      • DWR과 보안
      • DWR의 장점과 단점
      •  
    • 20장 스프링과 JMX
      • JMX 다시보기
      • 빈 노출시키기
        • MBeanExporter
        • MBeanServerFactoryBean
        • 빈을 이미 존재하는 MBean 서버에 노출시키기
        • 빈 등록 시 동작
      • 객체 이름 제어하기
      • 관리 인터페이스 제어하기
        • MBeanInfoAssembler 인터페이스
        • MethodNameBasedMBeanInfoAssembler 인터페이스
        • 자바 인터페이스를 통해 관리 인터페이스 제어하기
        • 소스 레벨 메타 데이터 사용하기
      • 스프링 JMX 원격 제어하기
        • 원격 MBean 노출시키기
        • 원격 MBean에 접근하기
        • MBean 프록시하기
      • 스프링 JMX에서의 통지
        • 통지 감지기
        • 통지 발행하기
      •  
    • 21장 Spring에서 테스트하기
      • 단위 테스트란?
      • 단위 테스트
        • 웹 계층 단위 테스트
      • 통합 테스트
        • AbstractSpringContextTests 사용하기
        • AbstractDependencyInjectionSpringContextTests 사용하기
        • AbstractTransactionalSpringContextTests 사용하기
        • AbstractAnnotationAwareTransactionalTests 사용하기
        • JNDI
      • 스프링 TestContext 프레임워크
        • TestContext 프레임워크에서의 애플리케이션 컨텍스트와 의존성 주입
        • TestContext 프레임워크와 트랜잭션
        • 지원 클래스
      • 테스트 커버리지
      •  
    • 22장 스프링 성능 튜닝
      • 성능과 응답성
      • 엔터프라이즈 애플리케이션 성능 문제 살펴보기
      • 자바 EE 애플리케이션 성능 측정하기
        • 무엇을 측정할지 알아내기
        • 필요한 데이터 셋 결정하기
        • 데이터 접근 계층 개선하기
        • 트랜잭션 관리 개선하기
        • 원격 호출의 성능 제어
        • 뷰 계층의 성능에 대한 이해
      • 캐시 사용하기
      • 성능 테스트
      • 애플리케이션의 건강과 성능 측정
      • 성능 최적화에 관한 더 많은 자료

예제코드 관련 GitHub 페이지

관련 글


엮인 글

엮인 글 주소: http://wikibook.co.kr/pro-spring-2-5/trackback/