이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 강력추천
JUnit in Action
단위 테스트의 모든 것
베스트
IT 모바일 top100 3주
가격
33,000
10 29,700
YES포인트?
1,650원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

Programming Insight

Programming Insight (Javascript)

이 상품의 태그

책소개

목차

역자 서문
서문
초판의 서문
감사의 글
이 책에 대해
저자 소개
표지 일러스트 소개

1부 JUnit 기본

1장 JUnit 첫걸음
1.1 동작 증명하기
1.2 밑그림부터 시작하기
1.3 단위 테스트 프레임워크 이해하기
1.4 JUnit의 설계 목표
1.5 JUnit 셋업하기
1.6. JUnit으로 테스트 실행하기
1.7 정리

2장 JUnit 핵심 들여다보기
2.1. JUnit의 핵심
2.2 파라미터화 테스트 실행하기
2.3 JUnit 테스트 러너
2.3.1 테스트 러너 개요
2.3.2 JUnitCore 퍼사드
2.3.3 자신만의 테스트 러너 만들기
2.4 스위트를 이용한 테스트 조직하기
2.4.1. 테스트 클래스 집합 만들기
2.4.2 스위트의 스위트 만들기
2.4.3 스위트 vs. IDE, Ant, Maven
2.5 정리

3장 JUnit 마스터하기
3.1 컨트롤러 컴포넌트 소개
3.1.1 인터페이스 설계하기
3.1.2 기반 클래스 구현하기
3.2 자! 이제 테스트다!
3.2.1 DefaultController 테스트하기
3.2.2 핸들러 추가하기
3.2.3 요청 처리하기
3.2.4 testProcessRequest 개선하기
3.3 예외 처리 테스트하기
3.3.1 예외 상황 시뮬레이션하기
3.3.2 예외 테스트하기
3.4 타임아웃 테스트하기
3.5 Hamcrest 매처 소개
3.6 테스트 프로젝트 셋업하기
3.7 정리

4장 소프트웨어 테스트 원칙
4.1 단위 테스트가 필요한 이유
4.1.1 높은 테스트 커버리지 달성
4.1.2 팀 생산성 향상
4.1.3 회귀 테스트 수행 및 디버깅 감소
4.1.4 확신에 찬 리팩터링
4.1.5 구현 품질 향상
4.1.6 기대 행위 문서화
4.1.7 코드 커버리지 등 각종 측정이 가능
4.2. 테스트의 종류
4.2.1 소프트웨어 테스트의 네 가지 종류
4.2.2 단위 테스트의 종류 세 가지
4.3 블랙박스 테스트와 화이트박스 테스트
4.4 정리

2부 다채로운 테스트 전략

5장 테스트 커버리지와 개발
5.1 테스트 커버리지 측정하기
5.1.1 테스트 커버리지란?
5.1.2 Cobertura 소개
5.1.3 테스트 커버리지 보고서 생성하기
5.1.4 블랙박스 테스트와 화이트박스 테스트 혼용하기
5.2. 테스트 가능한 코드 작성하기
5.2.1 공개 API는 계약이다
5.2.2 종속성을 줄여라
5.2.3 생성자는 간단하게 만들어라
5.2.4 최소 지식의 원칙을 따르라
5.2.5 숨겨진 종속성과 전역 상태를 피하라
5.2.6 싱글톤의 장단점
5.2.7 제너릭 메서드를 애용하라
5.2.8 상속보다 컴포지션을 활용하라
5.2.9 조건 분기보다 다형성을 활용하라
5.3. 테스트 주도 개발
5.3.1 개발 주기 조정하기
5.3.2 TDD 실천으로 가는 두 단계
5.4 개발 주기에서의 테스트
5.5 정리

6장 스텁을 활용한 포괄적인 테스트
6.1. 스텁이란?
6.2 HTTP 커넥션을 스텁으로 대체하기
6.2.1 스텁 방식 선택하기
6.2.2 임베디드 서버로 Jetty 활용하기
6.3 웹 서버의 리소스를 스텁으로 대체하기
6.3.1 첫 번째 스텁 테스트 설정하기
6.3.2 실패 조건 테스트하기
6.3.3 첫 번째 스텁 테스트 되돌아보기
6.4 커넥션 스텁 작성하기
6.4.1 커스텀 URL 프로토콜 핸들러 제작하기
6.4.2 JDK HttpURLConnection 스텁 작성하기
6.4.3 테스트 실행하기
6.5 정리

7장 목 객체를 활용한 테스트
7.1 목 객체 소개하기
7.2 목 객체를 활용해 단위 테스트하기
7.3 목 객체와 함께 리팩터링하기
7.3.1 예제 리팩터링하기
7.4 HTTP 커넥션을 목으로 대체하기
7.4.1 목 객체 정의하기
7.4.2 예제 메서드 테스트하기
7.4.3 첫 번째 시도: 손쉬운 메서드 리팩터링 기법
7.4.4 두 번째 시도: 클래스 팩토리를 활용한 리팩터링
7.5 목 객체를 트로이 목마로 사용하기
7.6 목 프레임워크 만나보기
7.6.1 EasyMock 활용하기
7.6.2 JMock 활용하기
7.7 정리

8장 In-container 테스트
8.1 표준 단위 테스트의 한계
8.2 목 객체를 이용한 해법
8.3 In-container 테스트
8.3.1 전략 구현하기
8.3.2 In-container 테스트 프레임워크
8.4 스텁, 목 객체, In-container 테스트 비교하기
8.4.1 스텁의 장단점
8.4.2 목 객체의 장단점
8.4.3 In-container 테스트의 장단점
8.4.4 In-container 테스트 vs. Out-of-container 테스트
8.5 정리

3부 JUnit과 빌드 프로세스

9장 Ant로 JUnit 테스트 실행하기
9.1 개발자의 하루
9.2 Ant로 테스트 실행하기
9.3 Ant 소개 및 설치하기
9.4 Ant의 타깃, 프로젝트, 속성, 태스크 알아보기
9.4.1 javac 태스크
9.4.2 junit 태스크
9.5 Ant 실행하기
9.6 Ivy를 이용한 종속성 관리
9.7 HTML 보고서 생성하기
9.8 테스트 일괄 수행하기
9.9 정리

10장 Maven2로 JUnit 테스트 실행하기
10.1 Maven의 특성
10.1.1 규약이 설정에 우선한다
10.1.2 강력한 종속성 관리
10.1.3 Maven 빌드 생명주기
10.1.4 플러그인 기반 아키텍처
10.1.5 Maven 프로젝트 객체 모델(POM)
10.2 Maven 프로젝트 구성하기
10.3 Maven 플러그인 소개하기
10.3.1 Maven Compiler 플러그인
10.3.2 Maven Surefire 플러그인
10.3.3 Maven으로 HTML JUnit 보고서 생성하기
10.4 Maven의 부정적 측면
10.5 정리

11장 지속적 통합 툴
11.1 지속적 통합의 맛
11.1.1 지속적 통합 테스트
11.2 구원투수 CruiseControl
11.2.1 CruiseControl 시작하기
11.2.2 견본 프로젝트 설정하기
11.2.3 CruiseControl 설정 파일 살펴보기
11.3 또 하나의 멋진 구원자 Hudson
11.3.1 Hudson 소개하기
11.3.2 Hudson 설치하기
11.3.3 Hudson 설정하기
11.3.4 Hudson 안에 프로젝트 설정하기
11.4 지속적 통합으로 얻는 이점
11.5 정리

4부 JUnit 확장

12장 표현 계층 테스트하기
12.1 테스트 프레임워크 선택하기
12.2 HtmlUnit 소개하기
12.2.1 실생활에서 찾을 수 있는 예
12.3 HtmlUnit 테스트 작성하기
12.3.1 HTML 단언
12.3.2 특정 웹 브라우저를 위한 테스트
12.3.3 다수의 웹 브라우저 테스트
12.3.4 독립형 테스트 작성하기
12.3.5 객체 모델 내비게이션
12.3.6 원소 타입으로 원소 접근하기
12.3.7 이름 vs. 인덱스로 원소 접근하기
12.3.8 참고를 통해 원소 접근하기
12.3.9 XPath 사용하기
12.3.10 테스트 실패와 예외
12.3.11 애플리케이션과 인터넷 내비게이션
12.3.12 HtmlUnit으로 폼 테스트하기
12.3.13 프레임 테스트하기
12.3.14 자바스크립트를 이용해 테스트하기
12.3.15 CSS 테스트하기
12.3.16 SSL 에러
12.4 HtmlUnit과 Cactus 함께 사용하기
12.4.1 Cactus로 테스트 작성하기
12.5 Selenium 소개
12.6 Selenium 테스트 생성하기
12.6.1 실생활에서 찾을 수 있는 예
12.7 Selenium 테스트 실행하기
12.7.1 Selenium 서버 관리하기
12.7.2 JUnit 4로 Selenium 테스트 실행하기
12.8 Selenium 테스트 작성하기
12.8.1 특정 웹 브라우저를 겨냥한 테스트 수행하기
12.8.2 브라우저별 테스트 한 번에 수행하기
12.8.3 애플리케이션과 인터넷 내비게이션
12.8.4 참조를 이용해 원소 접근하기
12.8.5 예외를 발생시켜 테스트 실패시키기
12.8.6 Selenium으로 폼 테스트하기
12.8.7 자바스크립트 경고를 이용해 테스트하기
12.8.8 JUnit 3 테스트 실패 시 화면 캡처하기
12.8.9 JUnit 4 테스트 실패 시 화면 캡처하기
12.9 HtmlUnit vs. Selenium
12.10 정리

13장 Ajax 테스트하기
13.1 Ajax 애플리케이션 테스트는 왜 어려운가?
13.1.1 웹의 전통적 상호작용 방식
13.1.2 Ajax의 상호작용
13.1.3 용감한 신세계
13.1.4 테스트를 위해 극복해야 할 난제들
13.2 Ajax 테스트 패턴
13.2.1 기능 테스트
13.2.2 클라이언트단 스크립트 단위 테스트하기
13.2.3 서비스 테스트하기
13.3 기능 테스트
13.3.1 Selenium을 이용해 기능 테스트하기
13.3.2 HtmlUnit을 이용해 기능 테스트하기
13.4 자바스크립트 테스트하기
13.4.1 RhinoUnit으로 자바스크립트 테스트하기
13.4.2 JsUnit으로 자바스크립트 테스트하기
13.4.3 JsUnit 테스트 작성하기
13.4.4 JsUnit 테스트 스위트 작성하기
13.4.5 수동으로 JsUnit 테스트 수행하기
13.4.6 Ant로 JsUnit 테스트 실행하기
13.5 RhinoUnit vs. JsUnit
13.6 JSLint로 모범 사례 이행 여부 검사하기
13.7 HttpClient로 서비스 테스트하기
13.7.1 XML 서비스 호출하기
13.7.2 XML 응답 검증하기
13.7.3 JSON 응답 검증하기
13.8 Google Web Toolkit 애플리케이션 테스트하기
13.8.1 GWT 애플리케이션용 테스트 프레임워크 선택하기
13.8.2 수작업으로 GWTTestCase 작성하기
13.8.3 junitCreator로 GWTTestCase 생성하기
13.8.4 테스트 케이스 실행하기
13.8.5 setUp과 tearDown
13.8.6 테스트 스위트 만들기
13.8.7 테스트 스위트 실행하기
13.9 정리

14장 Cactus를 이용한 서버단 자바 테스트하기
14.1 Cactus란 무엇인가?
14.2 Cactus를 이용해 테스트하기
14.2.1 Cactus로 테스트할 수 있는 자바 컴포넌트
14.2.2 일반 원칙
14.2.3 Cactus 동작 메커니즘
14.3 서블릿과 필터 테스트하기
14.3.1 관리 애플리케이션 소개하기
14.3.2 Cactus를 이용한 서블릿 테스트 작성하기
14.4 JSP 테스트하기
14.4.1 관리 애플리케이션 재조명해보기
14.4.2 JSP 단위 테스트란?
14.4.3 Cactus를 이용해 격리된 환경에서 JSP 단위 테스트하기
14.4.4 SQL 결과 데이터로 JSP 실행하기
14.5 EJB 테스트하기
14.6 Cargo란 무엇인가?
14.7 Ant로 Cactus 테스트 실행하기
14.7.1 아카이브 준비를 위한 Cactus 태스크
14.8 Maven2x를 이용해 Cactus 테스트 실행하기
14.8.1 Maven2의 cactifywar MOJO
14.8.2 Maven2의 cactifyear MOJO
14.9 브라우저로부터 Cactus 테스트 실행하기
14.10 정리

15장 JSP 애플리케이션 테스트하기
15.1 JSF 소개하기
15.2 애플리케이션 예제 소개하기
15.3 JSF 애플리케이션 테스트 시의 전형적인 난관들
15.4 JSF 애플리케이션 테스트 전략
15.4.1 블랙박스 방식
15.4.2 구원 투수 목 객체 투입
15.5 JSFUnit으로 예제 애플리케이션 테스트하기
15.5.1 브라우저로 JSFUnit 테스트 실행하기
15.5.2 JSFUnit을 이용해 Ajax 테스트하기
15.6 JSFUnit과 HtmlUnit 함께 사용하기
15.7 JSF 애플리케이션 성능 테스트하기
15.8 정리

16장 OSGi 컴포넌트 테스트하기
16.1 OSGi 소개하기
16.2 첫 번째 OSGi 서비스
16.2.1 예제 애플리케이션
16.3 OSGi 서비스 테스트하기
16.3.1 목 객체
16.4 JUnit4OSGi 소개하기
16.5 정리

17장 데이터베이스 액세스 테스트하기
17.1 데이터베이스 단위 테스트 임피던스 미스매치
17.1.1 단위 테스트는 격리된 환경에서 수행해야 한다
17.1.2 단위 테스트는 쉽게 작성하고 쉽게 실행할 수 있어야 한다
17.1.3 단위 테스트는 빠르게 수행되어야 한다
17.2 DbUnit 소개하기
17.2.1 예제 애플리케이션
17.2.2 DbUnit 설정 및 예제 애플리케이션 실행하기
17.3 데이터셋을 이용해 데이터베이스 채우기
17.3.1 DatabaseOperation 해부
17.4 데이터셋으로 데이터베이스 상태 확인하기
17.4.1 데이터셋 필터링하기
17.4.2 열 무시하기
17.5 ReplacementDataSet를 이용해 데이터 변환하기
17.5.1 ReplacementDataSet을 이용해 다른 ID 문제를 처리하기
17.5.2 NULL 값 처리하기
17.6 데이터베이스 안의 데이터로부터 데이터셋 생성하기
17.7 고급 기법
17.7.1 DbUnit과 템플릿 디자인 패턴
17.7.2 커스텀 애노테이션으로 재활용성 높이기
17.7.3 데이터셋에 표현 언어 사용하기
17.8 데이터베이스 액세스 테스트 모범 사례
17.8.1 개발자마다 하나의 데이터베이스를 사용하라
17.8.2 대상 데이터베이스가 테스트되는지 확인하라
17.8.3 데이터를 읽고 저장하는 보조적인 테스트를 만들라
17.8.4 읽기 테스트 케이스에서 모든 기본 시나리오를 검증하라
17.8.5 데이터셋 용도를 계획하라
17.8.6 테스트 정리
17.9 정리

18장 JPA 기반 애플리케이션 테스트하기
18.1 계층형 애플리케이션 테스트하기
18.1.1 예제 애플리케이션
18.1.2 다양한 계층, 다양한 테스트 전략
18.2 JPA 테스트의 특징
18.3 인프라 갖추기
18.4 JPA 엔티티 매핑 테스트하기
18.4.1 테스트 케이스에 JPA ID 생성기 통합하기
18.5 JPA 기반 DAO 테스트하기
18.6 외래키 이름 테스트하기
18.7 정리

19장 JUnit에 부스터를...
19.1 툴 소개
19.1.1 툴 살펴보기
19.1.2 예제 실행하기
19.2 투명 목 활용
19.2.1 Unitils의 EasyMock 지원
19.2.2 FEST-Mocks
19.2.3 Mycila
19.3 DbUnit 통합
19.4 assert는 일을 쉽게 만든다
19.4.1 JUnit-addons의 단언 패키지
19.4.2 Unitils의 ReflectionAssert
19.4.3 FEST Fluent Assertions Module
19.4.4 Mycila 확장 assert 문
19.5 리플렉션을 이용해 캡슐화 회피하기
19.5.1 직접 만들어보기
19.5.2 JUnit-addons
19.5.3 FEST-Reflect
19.6 정리

부록A JUnit 3와 4의 차이점
A.1 전반적인 변화
A.1.1 JDK 요구사항
A.1.1 하위/상위 호환성
A.2 API의 변화
A.2.1 패키지 구조
A.2.2 생성자
A.2.3 테스트 케이스 확장하기
A.2.4 테스트 메서드 이름
A.3 애노테이션과 정적 임포트의 도입
A.3.1 @Before와 @After 애노테이션
A.3.2 @BeforeClass와 @AfterClass 애노테이션
A.3.3 일부 테스트를 제외하고 실행시키기
A.3.4 정적 임포트
A.3.5 예외 테스트하기
A.3.6 타임아웃 테스트하기
A.4 추가된 JUnit 러너
A.4.1 테스트 러너
A.4.2 테스트 스위트
A.4.3 파라미터화 테스트
A.5 새로운 assert 문과 가정
A.5.1 Hamcrest assert 문
A.5.2 가정
A.5.3 새로 추가된 assert 문
A.5.4 assert 에러

부록B 커스텀 러너와 매처로 JUnit API 확장하기
B.1 인터셉터 패턴 소개하기
B.2 커스텀 러너 제작하기
B.3 커스텀 매처 구현하기

부록C 책의 소스 코드
C.1 소스 코드 얻기
C.2 소스 코드 개요
C.3 외부 라이브러리
C.4 JAR 버전
C.5 디렉터리 구조 규약

부록D JUnit IDE 통합
D.1 이클립스에 통합된 JUnit
D.1.1 이클립스 설치하기
D.1.2 소스로부터 이클립스 프로젝트 설정하기
D.1.3 이클립스에서 JUnit 테스트 실행하기
D.1.4 이클립스에서 Ant 스크립트 실행하기
D.2 JUnitMAX 이클립스 플러그인 소개
D.2.1 개발 주기에 통합됨
D.2.2 실행 순서
D.2.3 마지막 안정 버전으로 되돌리기
D.3 NetBeans에 통합된 JUnit
D.3.1 NetBeans 설치하기
D.3.2 소스로부터 NetBeans 프로젝트 설정하기
D.3.3 NetBeans에서 JUnit 테스트 실행하기
D.3.4 NetBeans에서 Ant 스크립트 실행하기

부록E 소프트웨어 설치하기
E.1 HtmlUnit 설치하기
E.1.1 표준 설정
E.1.2 이클립스 설정
E.2 HtmlUnit을 사용할 수 있도록 Cactus 설정하기
E.3 Selenium 설치하기
E.4 RhinoUnit 설치하기
E.5 JsUnit 설치하기

찾아보기

저자 소개

저자 : 피터 타치브
Apache Software Foundation의 Jakarta PMC 멤버로 활동한 소프트웨어 엔지니어다. 수년 동안 Jakarta Cactus의 주요 개발자 및 Apache Maven 개발팀의 일원으로 활동했다. 소피아 대학의 수학과를 졸업 후 독일과 네덜란드에서 Unic나 휴렛 팩커드 등에서 수년간 일하였다. 지금은 소피아로 돌아와, 업무 개선을 위한 기술을 지원하고 컨설팅하는 Phamola사를 설립하여 일하고 있다.
저자 : 펠리페 레미
TDD(테스트 주도 개발)와 자바, 컴퓨터 전반에 걸쳐 굉장히 열정적인 소프트웨어 엔지니어다. 캄피나스(유니캠프) 주립 대학에서 컴퓨터 공학 학사 학위를 받은 후 DbUnit 등 오픈소스 프로젝트에 소스 코드를 제공하거나, JavaOne 같은 컨퍼런스에서는 발표자로, JCP에는 개인 멤버 또는 블로거로 게다가 java.net의 저자로도 활동하였다.
저자 : 빈센트 마솔
Jakarta Cactus와 Codehaus Cargo 개발에 수년 간 몸담아 왔고, 저녁 시간에는 Apache Maven 오픈소스 프로젝트에 참여하였다. 그리고 지금은 XWiki라는 최신의 기업용 오픈소스 위키 프로젝트에 전임 개발자로 일하고 있다. 빈센트는 XWiki 오픈소스 프로젝트 관련 서비스를 제공하는 XWiki SAS사의 CTO 이기도 하다. 그는 이 책의 초판의 핵심 저자였다. www.massol.net에서도 만나볼 수 있다.
저자 : 게리 그레고리
스몰토크(Smalltalk)와 자바 등에서 20년 이상의 경험을 갖고 있다. Ashton-Tate와 ParcPlace-Digitalk사 등에서 근무하였고, 지금은 Seagull Software사에서 레거시 통합용 애플리케이션 서버를 개발하고 있다. 또 Apache Software Foundation와 Apache Jakarta Project Management Committee의 회원으로 활동 중이다. L.A.의 캘리포니아 대학에서 언어학과 컴퓨터 과학 학사 학위를 취득했으며, http://www.garygregory.com에서도 만나볼 수 있다.
역자 : 이복연
고려대학교 컴퓨터학과를 졸업하고 삼성 소프트웨어 멤버십을 거쳐 삼성 소프트웨어 연구소에 입사했다. 그동안 미디어솔루션센터에서 바다 단말 플랫폼과 소셜허브 개발에 참여했으며, 현재는 클라우드 기반 서버/인프라 관련 업무를 진행 중이다. 소프트웨어 아키텍처 설계, 애플리케이션 라이프사이클 관리(ALM), 애자일 등의 분야에 관심이 많다.

품목정보

발행일
2011년 06월 30일
쪽수, 무게, 크기
644쪽 | 1230g | 188*240*35mm
ISBN13
9788966260065

출판사 리뷰

주요 내용

파라미터화 테스트
예외 처리 테스트
타임아웃 테스트
테스트 주도 개발
스텁을 활용한 포괄적인 테스트
목 객체를 활용한 테스트
In-container 테스트
Ant로 JUnit 테스트
Maven2로 JUnit 테스트
CruiseControl
Hudson
표현 계층 테스트
Selenium 테스트
Ajax 테스트
Google Web Toolkit 애플리케이션 테스트
Cactus를 이용한 서버단 자바 테스트
JSP 테스트
OSGi 컴포넌트 테스트
데이터베이스 액세스 테스트
JPA 기반 애플리케이션 테스트

추천평

제가 쓴 『자바 개발자도 쉽고 즐겁게 배우는 테스팅 이야기』가 테스트에 대해서 전반적으로 다룬 책이라면, 이 책은 자바 개발자 분들의 친구가 되어야 하는 JUnit의 바이블이라고 할 수 있습니다.
이상민 (NHN 『자바 개발자도 쉽고 즐겁게 배우는 테스팅 이야기』)
TDD와 단위 테스트에 대한 책을 쓴 사람이 비슷한 주제의 다른 저자 책에 추천사를 쓰는 아이러니는 우선 뒤로 남겨놓고 이야기 했을 때, 이 책은 충분히 읽어볼만한 가치가 있습니다. 단위 테스트 작성 시 기술적인 어려움에 처했을 때 도움을 줄 수 있는 여러 팁이 들어있는 좋은 책입니다. 행운을 빕니다! :D
채수원 (LG CNS 『테스트 주도 개발: 고품질 쾌속 개발을 위한 TDD 실천법과 도구』)
애자일 개발이 성공하려면 반드시 필요한게 테스트 자동화입니다. 이런 생각 하시나요. ‘JUnit 너무 오래됐잖아. 팬시한 도구 없나? 손쉽게 테스트를 자동화하는 상용도구는 없나?’ 은탄환은 없습니다만, 이 책(JUnit in Action)은 JUnit을 기반으로 테스트를 자동화하는 다양한 대안을 제시합니다.
황상철 수석 (NHN 생산성혁신랩)
JUnit은 물론, 단위 테스트 전반에 대한 최고의 안내서.
타이슨 맥스웰 (Tyson S. Maxwell), 레이시온(Raytheon)사
JUnit 사용을 진지하게 고려 중인 모든 이에게 이 책을 권한다.
로버트 핸슨(Robert Hanson), GWT in Action의 저자
단위 테스트를 위한 견실한 토대를 제공한다. 특히 Ant나 Maven 및 이클립스 사용자에게 더욱 유용하다.
더그 워렌 (Doug Warren), Java Web Services
이 책 안에서 테스트하는 방법 전부를 만나볼 수 있다!
존 그리핀 (John Griffin), Hibernate Search in Action의 저자

리뷰/한줄평4

리뷰

9.0 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.