Red Hat에 오신 것을 환영합니다

각국 홈페이지

전세계 Red Hat 고객에게 일어나는 일들을 확인해 보십시오.

EX297

Red Hat Certificate of Expertise in Persistence exam

다음 관련 정보 보기:

Red Hat Certificate of Expertise in Persistence 시험에서는 시험 응시자가 JBoss® Hibernate®와 함께 JPA(Java Persistence API)를 사용하는 Java™ 애플리케이션을 생성 및 유지 관리하는 실제 책임을 맡을 준비가 되었는지를 평가합니다.

Red Hat® Certificate of Expertise in Persistence Exam 자격증은 개인 사용자가 JPA(Java™ Persistence API)를 JBoss Hibernate와 함께 사용하여 서로 관련된 실제 상황의 작업을 준비하는 능력을 증명합니다. JPA는 관계형 데이터를 관리하는 Java 프로그래밍 언어 프레임워크이며, Hibernate는 JPA를 구현하는 고성능 오브젝트/관계 지속성 및 쿼리 서비스입니다.

Red Hat JBoss Certified Developer 시험의 도구, 환경 및 요구 사항을 숙지합니다.

준비

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

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

준비를 돕기 위해 시험 목표에서는 시험에 나오는 내용으로 예상할 수 있는 과제 영역을 다룹니다. Red Hat은 시험 목표를 추가, 수정 또는 제거할 권리가 있습니다. 그러한 변경이 있을 경우 미리 통보해 드릴 것입니다.

시험 과제

Red Hat Certificate of Expertise in Persistence 시험 응시자는 Hibernate에서 JPA를 사용하여 다음 과제를 수행할 수 있어야 합니다. 학습에 도움이 될 수 있도록 이러한 활동에 권장되는 참조 소스 목록도 포함되어 있습니다.

JPA/Hibernate 구성
  • 다음을 포함하는 PersistenceUnit 속성을 구성합니다.
    • 구성 파일의 위치
    • Java EE 특정 구성 상세 정보
    • Java SE 특정 구성 상세 정보
    • Hibernate 특정 구성 상세 정보
  • Java SE 애플리케이션에서 PersistenceUnit에 연결합니다.
  • Java EE 애플리케이션에서 PersistenceUnit에 연결합니다.
  • PersistenceUnit 기본 속성 값을 재정의합니다.
단일 테이블 또는 오브젝트
  • 값이 생성되는 방법과 시기를 포함하여 ID 생성기의 동작을 이해합니다.
  • 다음을 포함하여 기본 키를 매핑하는 방법을 이해합니다.
    • 생성된 키 사용
    • 단순 비즈니스 키 매핑
    • 복합 키 매핑
  • 오브젝트 identity와 비즈니스 동등화를 이해합니다.
  • 테이블 이름, 열 이름, 열 너비 및 열 특성(nullable, unique, type 등)
    데이터베이스 특정 정보를 구성합니다.
  • JPA/Hibernate를 사용하여 지속 오브젝트로 기존 Java 오브젝트를 변환합니다.
  • 기본 JPA 데이터 유형을 해당 데이터베이스 유형으로 매핑합니다.
  • 기존 데이터베이스 테이블로 새로운 지속 Java 오브젝트를 생성해 해당 테이블을 매핑합니다.
  • 느린 로드와 빠른 로드를 사용하는 각기 다른 방법과 시기를 이해합니다.
  • 컬렉션과 값 유형에 대한 최적의 매핑 전략을 이해하고 사용합니다.
  • 지속 오브젝트에서 Java/오브젝트 모델 특정 속성과 동작을 처리합니다. 다음 기능을 포함합니다.
    • 직렬화
    • 임시 속성
    • 생성된 속성과 계산된 속성
    • 변경할 수 없는 속성
    • 값 유형
    • 상호 의존 속성(예: 속성의 유효한 값이 또 다른 속성의 값에 의존하는
      위치)
JPA/Hibernate와 오브젝트 관계 매핑
  • 다음을 비롯해 관계를 매핑하는 방법을 이해합니다.
    • 값 관계(예: details 오브젝트가 있음)
    • 상위/하위 관계
    • 일대일 관계(단방향 및 양방향)
    • 다대일 및 일대다 관계(단방향 및 양방향)
    • 다대다 관계(단방향 및 양방향)
  • 다음을 비롯해 기본 매핑 동작을 이해합니다.
    • 외부 키 이름
    • 연관 테이블 이름
  • 관계를 생성할 때 외부 키와 조인 테이블의 용도를 이해합니다.
  • 관계를 기준으로 복합 기본 키를 매핑하는 방법을 이해합니다.
  • JPA/Hibernate 컬렉션(세트, 맵 목록 및 백)과 컬렉션이 오브젝트와 테이블 관계로 매핑되는
    방법을 이해합니다.
  • 여러 컬렉션의 성능 영향을 이해합니다.
  • 느린 로드와 빠른 로드의 성능과 코드가 어떤 영향을 주는지를 비롯해 각각의 방법과
    시기를 이해합니다.
  • 기존 테이블 및 관계 세트로 데이터베이스와 일치하는 지속 Java 오브젝트
    그래프를 만듭니다.
  • 다양한 연관을 포함하여 기존 오브젝트 모델을 지속성 스토어에 매핑합니다.
  • 주어진 비즈니스 프로세스에 대한 최적의 로드 전략을 알아봅니다.
JPA/Hibernate와 계층적 오브젝트 관계 매핑
  • JPA/Hibernate를 사용하여 여러 오브젝트 계층 구조를 표현하는 방법을 이해합니다.
  • JPA/Hibernate를 사용하여 지속 오브젝트로 기존 Java 오브젝트 계층 구조를 변환합니다.
  • 기존 테이블 관계 세트를 오브젝트 계층 구조(예: 저축 예금, 신용 카드 및 대출 계좌)로
    표현합니다.
  • 다형성 쿼리 및 연관을 이해합니다.
  • 다양한 상속 전략의 이점과 제한 사항을 이해합니다.
  • 여러 오브젝트 계층 구조에 대한 최적의 데이터베이스 표현을 분석하고 결정합니다.
트랜잭션 동작(ACID) 이해
  • 다음에서 트랜잭션 컨텍스트를 획득하고 사용합니다.
    • Java EE/CMT
    • Java EE/BMT
    • JPA API를 사용하는 Java SE
  • 지속성 컨텍스트가 어떤 방식으로 Java EE의 트랜잭션에 구속되는지 이해합니다.
  • EJB3에서 트랜잭션 컨텍스트 전파를 이해합니다.
  • 지속성 컨텍스트 수준에서 트랜잭션 롤백의 결과를 이해합니다.
  • 트랜잭션 동시성 위험을 이해합니다.
  • 데이터 손실/손상과 성능 장단점을 비교 평가합니다.
지속 오브젝트 검색
  • 다음과 같은 JPA/Hiibernate 로드 전략을 이해합니다.
    • 느린 로드
    • 하위 선택 로드
    • 배치 로드
  • 다음과 같은 고급 쿼리 옵션을 이해하고 사용합니다.
    • 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에서 제공하는 Man pages와 기타 문서 외에도 참조용으로 기본 명령어 목록이 제공됩니다.

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

모의고사 다운로드

Red Hat JBoss Certified Developer 시험의 도구, 환경 및 요구 사항을 숙지합니다.

개요 문서 다운로드
모의고사 다운로드

시험 형식

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

Red Hat Certificate of Expertise 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을 사용할 수 있습니다.오브젝트 모델 또는 지속성 스토어의 일관되지 않은 상태가 문제이면 IllegalStateException을 사용할 수 있습니다. 물론 해당되는 경우 NullPointerException을 사용할 수 있습니다. 명시적인 지시가 있는 경우가 아니면 오브젝트 그래프의 연결된 엔터티에 변경 사항을 자동으로 전파하기 위해 JPA 전이적 지속성 기능을 사용하지 마십시오. 경험에 의하면 수많은 비즈니스 수준 개발자들이 이 기능 때문에 혼동을 느끼며, 잘못 사용할 경우 심각한 성능 및 신뢰성 문제의 원인이 될 수 있습니다. 마지막 경고: 응시자의 코드가 컴파일하지 않거나 올바르게 실행되지 않으면 평가가 불가능합니다. 특히 손상된 지속 연관으로 인해 지속성 작업이 실패할 수 있습니다. 어려운 연관이 있다면 작동하는 다른 연관에 방해가 되는 위험을 감수하는 것보다 주석 처리하는 것이 좋습니다. 테스트 프로젝트에는 적절하게 선정된 JUnit 테스트가 포함되며, 과제를 완료한 후에 전체 테스트 제품군을 실행하는 것이 좋습니다. 그러나 포함된 JUnit 테스트는 시험이 아니며 코드가 테스트를 통과한다고 해서 만점을 받는 것은 아닙니다.

점수 및 발표

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

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

대상자 및 선수 조건

Red Hat Certificate of Expertise in Persistence는 다음을 대상으로 만들어졌습니다.

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

이 시험에 대한 선수 조건

  • Red Hat Enterprise Linux 환경에서의 작업이 익숙한 자Red Hat Enterprise Linux 환경에서 업무를 수행하는 방법을 숙지
  • Red Hat Certificate of Expertise in Persistence Exam(EX297) 목표 검토