EX297

종료 - Red Hat Certified Specialist in Persistence Exam

개요

시험 설명

참고: 이 시험과 자격증은 더 이상 제공되지 않습니다.

Red Hat Certified Specialist in Persistence Exam은 응시자가 Java Persistence API(JPA)를 Jboss® Hibernate®와 함께 사용하는 Java™ 애플리케이션을 구축 및 유지관리하는 실제 업무를 수행할 준비가 되었는지 여부를 테스트합니다.

Red Hat Certified Specialist in Persistence Exam 자격증은 Java™ Persistence API(JPA)와 Jboss Hibernate를 함께 사용하여 실제 관련 태스크를 수행할 준비가 되었음을 입증합니다. JPA는 관련 데이터를 관리하기 위한 Java 프로그래밍 언어 프레임워크이며, Hibernate는 JPA를 구현하는 고성능 오브젝트 관계형 퍼시스턴스 및 쿼리 서비스입니다.

Red Hat Jboss Certified Developer Exam의 툴, 환경 및 요구 사항을 숙지하세요.

시험 응시 대상

Red Hat Certified Specialist in Persistence의 응시 대상자는 다음과 같습니다.

  • 숙련된 Java 애플리케이션 개발자 및 아키텍트
  • 비즈니스 구성 요소 및 데이터베이스 개발자

전제 조건

  • Red Hat Enterprise Linux 환경에서 작업하는 데 익숙함
  • Red Hat Certified Specialist in Persistence Exam(EX297) 목표 검토

Red Hat은 응시자가 이 시험에 응시하기 전에 RHCJD(Red Hat Certified JBoss Developer) 자격증을 취득할 것을 권장하지만, 필수 사항은 아닙니다.

목표

시험 대비를 위한 학습 포인트

시험 준비에 도움이 되도록 시험 목표에서는 시험에 나올 것으로 예상되는 태스크 영역을 강조합니다. Red Hat은 시험 목표를 추가, 수정 또는 제거할 권리가 있습니다. 변경 사항이 있을 경우 사전에 공지됩니다.

시험 태스크

Red Hat Certified Specialist in Persistence Exam 응시자는 JPA와 Hibernate를 사용하여 다음 태스크를 수행할 수 있어야 합니다. 공부에 도움이 되도록 이러한 활동에 대한 권장 참고 자료 출처 목록도 포함되어 있습니다.

단일 테이블 또는 오브젝트 매핑
  • 해당 값이 생성되는 방식 및 시기를 포함한 ID 생성기의 동작 이해
  • 다음을 포함한 주요 키를 매핑하는 방법 이해
    • 생성된 키 사용
    • 단순 비즈니스 키 매핑
    • 복합 키 매핑
  • 오브젝트 identity와 비즈니스 동등성(equivalence) 이해
  • 테이블 이름, 열 이름, 열 너비 및 열 속성(nullable, unique, type 등)과 같은 데이터베이스별
    정보 설정
  • 기존 Java 오브젝트를 JPA/Hibernate를 사용하여 퍼시스턴트 오브젝트로 변환
  • 기본 JPA 데이터 유형을 이에 상응하는 데이터베이스 유형에 매핑
  • 기존 데이터베이스 테이블로 새로운 퍼시스턴트 Java 오브젝트를 생성하여 해당 테이블에 매핑
  • 느린 로딩과 빠른 로딩을 사용하는 방법 및 시기 이해
  • 컬렉션과 값 유형에 대한 최적의 매핑 전략을 이해하고 이를 사용
  • 퍼시스턴트 오브젝트에서 Java/오브젝트 모델별 속성 및 동작 처리. 여기에는 다음 사항이 포함됩니다.
    • 직렬화
    • 임시 속성
    • 생성 및 계산된 속성
    • 변경할 수 없는 속성
    • 값 유형
    • 상호 의존적인 속성(즉, 속성의 유효한 값이 다른 속성의 값에 좌우되는 경우)
JPA/Hibernate와 오브젝트 관계 매핑
  • 관계(다음을 포함하나 이에 국한되지 않음) 매핑 방법 이해하기
    • 값 관계(예: details 오브젝트가 있음)
    • 상위/하위 관계
    • 일대일 관계(단방향 및 양방향)
    • 다대일 및 일대다 관계(단방향 및 양방향)
    • 다대다 관계(단방향 및 양방향)
  • 기본 매핑 동작(다음을 포함하나 이에 국한되지 않음) 이해하기
    • 외부 키 이름
    • 연관 테이블 이름
  • 관계 생성 시 외부 키와 조인 테이블의 용도 이해
  • 관계를 기준으로 복합 기본 키를 매핑하는 방법 이해
  • JPA/Hibernate 컬렉션(세트, 맵 목록 및 백)과 컬렉션이 오브젝트와 테이블 관계로
    매핑되는 방법 이해
  • 여러 컬렉션의 성능 영향 이해
  • 느린 로딩과 빠른 로딩의 성능과 코드가 어떤 영향을 주는지를 비롯해 각각의 방법 및 시기
    이해
  • 기존 테이블 및 관계 세트로 데이터베이스와 일치하는 퍼시스턴트 Java 오브젝트
    그래프 생성
  • 다양한 연관을 포함하여 기존 오브젝트 모델을 퍼시스턴스 스토어에 매핑
  • 특정 비즈니스 프로세스에 대한 최적의 로딩 전략 결정
JPA/Hibernate와 계층적 오브젝트 관계 매핑
  • JPA/Hibernate를 사용하여 여러 오브젝트 계층 구조를 표현하는 방법 이해
  • 기존 Java 오브젝트 계층 구조를 JPA/Hibernate를 사용하여 퍼시스턴트 오브젝트로 변환
  • 기존 테이블 관계 세트를 오브젝트 계층 구조(예: 저축 예금, 신용 카드 및 대출 계좌)로
    표현
  • 다형성 쿼리 및 연관 이해
  • 다양한 상속 전략의 이점과 제한 사항 이해
  • 여러 오브젝트 계층 구조에 대한 최적의 데이터베이스 표현 분석 및 결정
트랜잭션 동작(ACID) 이해
  • 다음에서 트랜잭션 컨텍스트 획득 및 사용
    • Java EE/CMT
    • Java EE/BMT
    • JPA API를 사용한 Java SE
  • 퍼시스턴스 컨텍스트가 Java EE의 트랜잭션에 구속되는 방식 이해
  • EJB3에서 트랜잭션 컨텍스트 전파 이해
  • 퍼시스턴스 컨텍스트 수준에서 트랜잭션 롤백의 결과 이해
  • 트랜잭션 동시성 위험 이해
  • 데이터 손실/손상과 성능 장단점을 비교 평가
퍼시스턴트 오브젝트 검색
  • 다음과 같은 JPA/Hibernate 로딩 전략 이해
    • 느린 로딩
    • 하위 선택 로딩
    • 배치 로딩
  • 다음과 같은 고급 쿼리 옵션 이해 및 사용
    • HQL/JPA QL
    • 기준 API
    • 기본 쿼리(SQL)
  • 런타임 신속하게 가져오기 기능 사용
  • 명명된 매개변수 사용
  • LazyInitializationException 예측 및 방지
  • JPA/Hibernate 성능 분석 및 개선
  • JPA 낙관적 잠금 및 Hibernate 비관적 잠금 확장 기능 이해 및 사용
퍼시스턴트 오브젝트 조작
  • 다음과 같은 엔터티 상태 이해
    • 임시
    • 지속
    • 연결됨
    • 분리됨
    • 제거됨
  • JPA API를 사용하여 엔터티/엔터티 그래프의 상태를 변경하는 방법 이해
  • 퍼시스턴스 컨텍스트의 라이프사이클과 이 라이프사이클이 관리되는 엔터티에 어떤 영향을 주는지 이해
  • 다음과 같은 JPA/Hibernate 일괄 처리 기능 적용
    • API 사용 패턴
    • DML 쿼리
  • 오브젝트 그래프를 조작하기 위한 최적의 구현과 캐스캐이드 설정 결정 및 적용
  • 일괄 처리 사용 시기 평가

유의 사항

설명서 및 교육

시험 중 이용 가능한 서적은 제품에 포함된 추가 문서 또는 샘플 파일과 함께 테스트할 버전용 공식 JBoss Enterprise Application Platform 문서로 제한됩니다. 보통 포함된 내용에서는 문제가 출제되지 않습니다.

jboss.org 또는 hibernate.org 등의 위키는 이용하실 수 없습니다. 이 위키는 유용한 리소스이긴 하지만 시험과 관련된 내용을 포함할 수 있으므로 위키 형식은 시험 중에 이용하기에는 부적절합니다. 위키를 읽고 업데이트하는 사람들이 아닌 응시자 본인의 실력을 테스트해야 합니다.

시험장에 인쇄물 또는 전자 서적은 가져올 수 없습니다. 반입 금지 항목에는 노트, 책 또는 기타 자료가 포함됩니다. 인터넷 사용은 엄격히 통제됩니다. 시험을 준비하면서 이러한 제한 사항에 유의하시기 바랍니다.

환경

시험 중에는 Red Hat® Enterprise Linux® 5.4 시스템에서 작업하므로 Linux나 UNIX 사용 방법을 미리 익혀두면 유용합니다. 단, 이 시험의 목적은 운영 체제별 기술을 테스트하는 것이 아니라 Hibernate에서 JPA를 사용하는 기술을 테스트하는 것이므로 폭넓은 Linux 경험이 요구되지는 않습니다. 작업을 수행하기 위한 전체 데스크톱 환경이 갖추어져 있으며, Red Hat Enterprise Linux에 제공되는 매뉴얼 페이지와 기타 설명서 외에 참조로 사용할 수 있는 기본 커맨드 목록이 제공됩니다.

Fedora는 Linux 기술을 실습할 수 있는 무료 대안을 제공해 줍니다. 컴퓨터에 설치하지 않고도 Fedora에서 작업하도록 지원하는 라이브 CD 버전을 이용할 수 있습니다. Red Hat Enterprise Linux 환경과 정확히 일치하지는 않지만, 요구되는 숙련도 수준에서는 확실히 근접한다고 할 수 있습니다.

시험 형식

Red Hat Certified Specialist in Persistence 시험은 100% 수행 기반으로, 응시자가 지식을 서술하기보다 태스크를 수행해 지식과 기술을 입증합니다. 대부분의 IT 자격증 시험은 A, B, C, D와 같은 4지선다형 또는 많은 이들이 기피하는 해당하는 모든 항목 선택과 같은 객관식 문항으로 구성됩니다. Red Hat Certified Specialist in Persistence 시험에는 이러한 문제가 나오지 않으며 실제로 전혀 출제되지 않습니다. 대신 실제 태스크를 수행하는 실제 환경이 주어집니다. 예를 들어, JPA 매핑 주석에 대한 일련의 질문을 하는 대신 지속적인 연관을 생성하고 유지관리하도록 요구할 수 있습니다. 따라서 온라인상의 기출 문제 등을 볼 때에는 의심하는 눈으로 살펴볼 것을 권장합니다 이 설명서에서는 시험에 어떤 내용이 나올지를 가장 잘 나와 있습니다.

Red Hat Certified Specialist in Persistence 시험은 4시간 동안 진행됩니다. 신분 확인 및 정보 수집을 위해 시험 시작 전에 미리 입실해야 합니다.

시험 환경

개발 툴

데스크톱 환경 외에도 설치 및 구성된 JBDS(JBoss Developer Studio) 3 사본을 제공합니다. 본 시험은 JBDS 시험이 아니며, 시험 태스크를 완료하기 위해 JBDS에 대한 지식이나 사용 방법을 요구하지는 않습니다. 그러나 JBDS는 JPA/Hibernate 애플리케이션 개발 및 유지관리를 위한 훌륭한 툴이며, 시험에서 일부 JBDS 경험과 기술은 시험에 틀림없이 도움이 될 것입니다. 지원되는 JBDS 사본을 이용할 수 없으면 무료 버전을 다운로드할 수 있습니다. 아직 Red Hat에 등록하지 않은 경우 무료 Red Hat 계정을 만들어야 합니다. 무료 다운로드를 위해 Red Hat에 등록하길 원하지 않는 경우, JBoss Tools 4 플러그인의 표준 Eclipse 배포판을 시험 준비에 활용할 수 있습니다.

시험의 프로젝트는 Maven을 사용하여 만들었습니다. JBDS 사용을 원치 않는 경우 표준 텍스트 편집기(예: gedit 또는 vi), 커맨드 라인 및 Maven을 사용할 수 있습니다. 시험은 폐쇄된 환경에서 치러지며 Maven은 오프라인 모드로 실행됩니다. 로컬 환경으로 아직 가져오지 않은 Maven 리포지토리 또는 플러그인은 사용할 수 없습니다.

작업 디렉터리

시험이 시작되면 기본 JBDS 작업 공간에는 시험에 사용해야 하는 하나 이상의 프로젝트 디렉터리가 있습니다. 개발에 JBDS를 사용할 필요는 없지만 모든 태스크에 기본 작업 공간 디렉터리와 제공된 프로젝트 디렉터리를 사용해야 합니다. 다시 말해, 제공된 디렉터리 구조 내에서 이와 일관되게 모든 코드와 리소스를 개발해야 합니다.

코딩 표준

이는 실용적인 실습 중심의 시험으로, 태스크를 완료하려면 코드를 작성해야 합니다. 회사가 다르면 다른 코딩 표준을 사용하므로, 실제 환경에서와 같이 현지 코딩 표준을 따라야 합니다. 아래에는 시험 준비에 도움이 될 수 있는 시험 코딩 표준에 대한 몇 가지 정보가 나와 있습니다. 이 정보는 시험 중에도 제공됩니다. 시험 목적을 이해하려면 본인이 프로젝트를 완료하기 위해 새로 고용된 JPA/Hibernate 개발자라고 가정하면 쉬울 겁니다. 안타깝게도 원래 개발자가 프로젝트를 중단하고 연락이 되지 않는 상황입니다. 이전 개발자가 완성하지 못한 코드 중간부터 시작하여 주어진 시간 안에 가능한 한 많이 완성해야 합니다.

코드는 상당히 잘 정리되어 있으며, 코드 전체에는 완료해야 하는 내용을 표시하는 많은 TODO가 있습니다. 그러나 Javadoc 및 TODO만으로는 충분하지 않습니다. TODO를 실행하기 전에 태스크 설명을 읽어보고 필요한 사항을 파악해야 합니다. 태스크 설명, UML/PDM 다이어그램 및 Javadoc/TODO 사이에 상충되는 내용이 있다고 생각되면, 항상 태스크 설명에 따릅니다.

작업할 때 주의해야 할 사항은 다음과 같습니다.

  • 코드 형식은 중요하지 않습니다. 탭이나 공백의 사용 여부와 중괄호를 배치하는 방식은 작업 평가 방식에 영향을 주지 않습니다.
  • XML 파일, 필드 주석 또는 속성 주석을 사용하여 클래스를 매핑할 수 있으며, 이 중 어떤 것을 사용하는지는 중요하지 않습니다. 기존 코드는 소수의 필드 수준 주석을 사용하지만 원하는 매핑 스타일에 맞춰 쉽게 변경할 수 있습니다.
  • 대다수의 클래스는 특이하게 구성되며, 필드 및 관련 메소드는 함께 그룹화됩니다. 이는 특이한 경우로, 권장되는 프랙티스는 아닙니다. 코드에서 필드와 관련 메소드를 찾기 위해 코드 전체를 검색하지 않고도 단일 항목에서 더 쉽게 작업하도록 하기 위한 것입니다. 보다 평범한 코드 구조를 사용하려는 경우 클래스 멤버를 정렬해도 좋습니다. 힌트: JBDS에서 파란색 TODO 표시는 편집기 창 오른쪽에 있으며 개요 보기의 속성 목록은 이러한 클래스를 빠르게 탐색하는 데 큰 도움이 됩니다.
  • 실제와 달리 주석과 예외 메시지는 중요하지 않습니다. 시험은 시스템에서 확인하므로, 주석과 메시지는 완전히 무시됩니다.
  • 코드 품질과 모범 사례가 중요합니다. 언제나 모범 사례를 사용하고 부족하거나 비효율적인 프랙티스는 점수가 낮다고 가정해야 합니다. 예를 들어, Java 모범 사례에서는 필드 멤버를 공개하지 않기 때문에 항상 오브젝트 속성에 대해 표준 JavaBeans getter 및 setter를 사용해야 합니다.
  • 시험 시나리오의 프로젝트는 다른 부서의 다른 애플리케이션과 함께 설계되었습니다. 코드에서 TODO나 태스크 설명에서 명시적으로 지시하지 않는 한, 기존 메서드의 서명을 변경하지 마십시오. 이 규칙의 유일한 예외는 해당되는 경우 서명을 보다 구체적으로 만들 수 있으며, 그와 같이 만들어야 할 때입니다(즉, 서브 클래스 및/또는 특정 일반 클래스 사용). 예를 들어 Collection{cke_protected}{C}%3C!%2D%2D%3F%2D%2D%3E을 List로 대체해야 올바른 경우입니다.
  • 필요에 따라 필드, 속성 또는 메서드를 추가할 수도 있습니다.
  • 프로젝트가 퍼시스턴트 엔터티에 초점을 맞추고 있고 컨트롤러/서비스 레이어에 아무런 입력이 없기 때문에 퍼시스턴트 엔터티를 수동으로 코딩해야 합니다. 즉, 엔터티 메서드를 통해 비즈니스 논리가 다른 오브젝트 일관성을 손상시키는 것을 방지해야 합니다. 예를 들어, null 값을 전달한 경우 not nullable 속성의 settler에서 NullPointerException이 발생해야 합니다.
  • 별도로 명시되지 않은 한 모든 엔터티는 퍼시스턴스 엔진에서 자동 생성된 데이터베이스 기본 키를 사용해야 합니다.
  • 일부 내부 문제 때문에 메서드에서 예외가 발생하면 항상 RuntimeException을 사용합니다. 비즈니스별 예외는 생성하지 마십시오. 예를 들어, 메서드에 대한 올바르지 않은 인수가 문제인 경우 IllegalArgumentException을 사용할 수 있습니다. 오브젝트 모델 또는 퍼시스턴트 스토어의 일관되지 않은 상태가 문제인 경우에는 IllegalStateException을 사용할 수 있습니다. 물론 해당되는 경우 언제나 NullPointerException을 사용할 수 있습니다. 명시적인 지시가 있는 경우가 아니면 오브젝트 그래프의 연결된 엔터티에 변경 사항을 자동으로 전파하는 JPA 전이적 지속성 기능을 사용하지 마십시오. 비즈니스 수준 개발자들은 이 기능을 혼동하는 경우가 많은 것으로 나타나며, 잘못 사용할 경우 심각한 성능 및 신뢰성 문제의 원인이 될 수 있습니다. 마지막으로 응시자의 코드가 컴파일되지 않거나 올바르게 실행되지 않으면 평가가 불가능합니다. 특히 손상된 지속 연관으로 인해 퍼시스턴스 작업이 실패할 수 있습니다. 어려운 연관이 있다면 작동하는 다른 연관에 방해가 되지 않도록 주석 처리하는 것이 좋습니다. 테스트 프로젝트에는 다양한 JUnit 테스트가 포함되며, 태스크를 완료한 후에 전체 테스트 제품군을 실행하는 것이 좋습니다. 그러나 포함된 JUnit 테스트는 시험이 아니며 코드가 테스트를 통과한다고 해서 만점을 받는 것은 아닙니다.

점수 및 발표

공식 시험 점수는 Red Hat Certification Central을 통해서만 공개됩니다. Red Hat은 감독관 또는 교육 파트너가 응시자에게 직접 점수 결과를 발표하는 것을 허용하지 않습니다. 시험 점수는 통상적으로 영업일 기준 3일(미국 시간 기준) 이내에 발표됩니다.

시험 결과는 섹션 점수로 발표됩니다. Red Hat은 개별 문항에 대한 점수를 공개하지 않으며 요청이 있더라도 추가 정보를 제공하지 않습니다.