Show Menu
화제×

사용자, 그룹 및 액세스 권한 관리

CRX 저장소에 대한 액세스 활성화에는 다음과 같은 몇 가지 항목이 포함됩니다.
  • 액세스 권한 - 정의 및 평가 방법에 대한 개념
  • 사용자 관리 - 액세스에 사용되는 개별 계정 관리
  • 그룹 관리 - 그룹을 구성하여 사용자 관리 간소화
  • 액세스 권한 관리 - 이러한 사용자와 그룹이 리소스에 액세스할 수 있는 방법을 제어하는 정책 정의
기본 요소는 다음과 같습니다.
사용자 계정 CRX는 사용자 계정에 저장된 세부 사항에 따라 사용자(해당 사용자 또는 다른 응용 프로그램)를 식별 및 확인하여 액세스 권한을 인증합니다.
CRX에서 모든 사용자 계정은 작업 영역의 노드입니다. CRX 사용자 계정에는 다음 속성이 있습니다.
  • CRX의 한 사용자를 나타냅니다.
  • 사용자 이름과 암호가 들어 있습니다.
  • 해당 작업 영역에 적용됩니다.
  • 하위 사용자는 포함할 수 없습니다. 계층적 액세스 권한의 경우 그룹을 사용해야 합니다.
  • 사용자 계정에 대한 액세스 권한을 지정할 수 있습니다.
    그러나 관리를 간소화하려면 대부분의 경우 그룹 계정에 액세스 권한을 할당하는 것이 좋습니다. 각 개별 사용자에 대한 액세스 권한을 할당하면 관리가 매우 어려워집니다(단, 한 개 또는 두 개의 인스턴스만 있을 경우 특정 시스템 사용자가 예외입니다).
그룹 계정 그룹 계정은 사용자 및/또는 기타 그룹의 컬렉션입니다. 그룹에 할당된 액세스 권한이 해당 그룹의 모든 사용자에게 자동으로 적용되므로 관리를 간소화하는 데 사용됩니다. 사용자는 그룹에 속할 필요는 없지만 여러 그룹에 속하기도 합니다.
CRX에서 그룹에는 다음 속성이 있습니다.
  • 이것은 일반적인 액세스 권한이 있는 사용자 그룹을 나타냅니다. 예를 들어 작성자 또는 개발자는
  • 해당 작업 영역에 적용됩니다.
  • 회원이 있을 수 있습니다.이러한 사용자는 개별 사용자 또는 다른 그룹이 될 수 있습니다.
  • 계층 그룹화는 멤버 관계로 수행할 수 있습니다. 저장소의 다른 그룹 바로 아래에 그룹을 배치할 수 없습니다.
  • 모든 그룹 구성원에 대한 액세스 권한을 정의할 수 있습니다.
액세스 권한 CRX는 액세스 권한을 사용하여 저장소의 특정 영역에 대한 액세스를 제어합니다.
이 작업은 저장소의 리소스(노드 또는 경로)에 대한 액세스를 허용하거나 거부하기 위해 권한을 지정하여 수행됩니다. 다양한 권한을 할당할 수 있으므로 현재 요청에 적용할 수 있는 조합을 결정하도록 평가되어야 합니다.
CRX에서는 사용자 및 그룹 계정 모두에 대한 액세스 권한을 구성할 수 있습니다. 그런 다음 두 가지 모두에 적용된다.

액세스 권한 평가 방법

CRX는 JSR-283에 의해 정의된 대로 액세스 제어를 구현합니다 .
CRX 저장소의 표준 설치는 리소스 기반 액세스 제어 목록을 사용하도록 구성됩니다. 이는 JSR-283 액세스 컨트롤의 구현일 수 있으며 Jackrabbit과 함께 제공되는 구현 중 하나입니다.

주제 및 주도자

CRX는 액세스 권한을 평가할 때 두 가지 주요 개념을 사용합니다.
  • 주체가 액세스 권한을 가진 엔터티입니다. 주도자는 다음과 같습니다.
    • 사용자 계정
    • 그룹 계정
      사용자 계정이 하나 이상에 속한 경우 그룹도 각 그룹 주체와 연결됩니다.
  • 제목은 요청의 소스를 나타내는 데 사용됩니다.
    해당 요청에 적용할 수 있는 액세스 권한을 통합하는 데 사용됩니다. 다음 제품에서 가져옵니다.
    • 사용자 주체
      사용자 계정에 직접 할당하는 권한.
    • 해당 사용자와 연결된 모든 그룹 주도자
      사용자가 속한 그룹에 할당된 모든 권한 그런 다음 요청된 리소스에 대한 액세스를 허용하거나 거부하는 데 결과가 사용됩니다.

제목에 대한 액세스 권한 목록 컴파일

CRX에서 제목은 다음과 같습니다.
  • 사용자 주체
  • 해당 사용자와 연결된 모든 그룹 주도자
제목에 적용할 수 있는 액세스 권한 목록은
  • 사용자 계정에 직접 할당하는 권한
  • 또한 사용자가 속한 그룹에 할당된 모든 권한
  • CRX는 목록을 컴파일할 때 사용자 계층을 고려하지 않습니다.
  • CRX는 그룹을 다른 그룹의 구성원으로 포함할 때만 그룹 계층을 사용합니다. 그룹 권한에 대한 자동 상속은 없습니다.
  • 그룹을 지정하는 순서는 액세스 권한에 영향을 주지 않습니다.

요청 및 액세스 권한 해결

CRX가 요청을 처리할 때 제목에 있는 액세스 요청을 저장소 노드의 액세스 제어 목록과 비교합니다.
따라서 Linda가 다음 저장소 구조의 /features 노드를 업데이트하도록 요청하는 경우:

우선 순위

CRX의 액세스 권한은 다음과 같이 평가됩니다.
  • 사용자 주체는 다음 사항에 관계없이 항상 그룹 주체에 우선합니다.
    • 액세스 제어 목록의 해당 순서
    • 노드 계층에서의 해당 위치
  • 주어진 주체에 대해 주어진 노드에 대해 거부(최대) 1과 허용(1)이 있습니다. 구현은 항상 중복된 항목을 지우고 동일한 권한이 허용 및 거부 항목 모두에 나열되지 않도록 합니다.
이 평가 프로세스는 표준 CRX 설치의 리소스 기반 액세스 제어에 적합합니다.
사용자가 그룹의 aUser 구성원인 두 가지 예 aGroup 보기:
   + parentNode
     + acl
       + ace: aUser - deny - write
     + childNode
       + acl
         + ace: aGroup - allow - write
       + grandChildNode

위의 경우:
  • aUser 에 대한 쓰기 권한이 부여되지 grandChildNode 않습니다.
   + parentNode
     + acl
       + ace: aUser - deny - write
     + childNode
       + acl
         + ace: aGroup - allow - write
         + ace: aUser - deny - write
       + grandChildNode

이 경우:
  • aUser 에 대한 쓰기 권한이 부여되지 grandChildNode 않습니다.
  • 두 번째 ACE는 중복됩니다. aUser
여러 그룹 주도자의 액세스 권한은 계층 내부 및 단일 액세스 제어 목록 내에서 순서에 따라 평가됩니다.

우수 사례

다음 표에는 몇 가지 권장 사항 및 우수 사례가 나와 있습니다.
추천... 이유...
그룹 사용
사용자별로 액세스 권한을 할당하지 마십시오. 다음과 같은 몇 가지 이유가 있습니다.
  • 그룹보다 사용자가 많으므로 그룹은 구조를 단순화합니다.
  • 그룹은 모든 계정에 대한 개요를 제공합니다.
  • 그룹은 상속이 간단합니다.
  • 사용자가 어디에서나 그룹은 장기적입니다.
Be Positive
항상 Allow 문을 사용하여 그룹 주체의 액세스 권한을 지정합니다(가능한 경우). Deny 문을 사용하지 마십시오.
그룹 주도자는 계층 내에서, 그리고 단일 액세스 제어 목록 내에서 순서대로 평가됩니다.
간편한 관리
새 설치를 구성할 때 시간과 비용을 투자하면 충분한 보상을 받을 수 있을 것입니다.
명확한 구조를 적용하면 지속적인 유지 관리 및 관리를 간소화할 수 있으므로 현 동료 및/또는 미래의 후계자가 구현 중인 내용을 쉽게 이해할 수 있습니다.
테스트 테스트 설치를 사용하여 여러 사용자와 그룹 간의 관계를 파악하고 이를 실행할 수 있습니다.
기본 사용자/그룹 보안 문제를 방지하기 위해 항상 설치 즉시 기본 사용자 및 그룹을 업데이트하십시오.

사용자 관리

사용자 관리에 표준 대화 상자가 사용됩니다 .
적절한 작업 영역에 로그인되어 있어야 합니다. 그런 다음 두 작업 모두에서 대화 상자에 액세스할 수 있습니다.
  • crx 기본 콘솔에 있는 사용자 관리 링크
  • crx 탐색기의 보안 메뉴
속성
  • 사용자 ID
    CRX에 액세스할 때 사용되는 계정의 짧은 이름입니다.
  • 주체 이름
    계정의 전체 텍스트 이름입니다.
  • 암호
    이 계정으로 CRX에 액세스할 때 필요합니다.
  • ntlmhash
    각 새 계정에 자동으로 할당되고 암호가 변경되면 업데이트됩니다.
  • 이름, 유형 및 값을 정의하여 새 속성을 추가할 수 있습니다. 각 새 속성에 대해 저장(녹색 눈금 기호)을 클릭합니다.
그룹 구성원
그러면 계정이 속하는 모든 그룹이 표시됩니다. 상속됨 열은 다른 그룹의 구성원 자격 결과로 상속된 구성원 자격을 나타냅니다.
GroupID(사용 가능한 경우)를 클릭하면 해당 그룹에 대한 그룹 관리가 열립니다.
가장한 사람
가장 기능을 사용하면 사용자가 다른 사용자를 대신하여 작업할 수 있습니다.
즉, 사용자 계정은 자신의 계정으로 작동할 수 있는 다른 계정(사용자 또는 그룹)을 지정할 수 있습니다. 즉, user-B가 user-A를 가장할 수 있는 경우 user-B는 사용자-A의 전체 계정 세부 사항(ID, 이름 및 액세스 권한 포함)을 사용하여 작업을 수행할 수 있습니다.
이렇게 하면 가장하는 계정을 사용하는 것처럼 가장자 계정이 작업을 완료할 수 있습니다.예를 들어, 부재 중 또는 과도한 로드 단기간 동안 공유하는 경우
한 계정이 다른 계정으로 가장하는 경우 보기가 매우 어렵습니다. 로그 파일에는 이벤트에서 가장이 발생했다는 사실에 대한 정보가 없습니다. 따라서 사용자-B가 사용자-A를 가장하는 경우 모든 이벤트는 사용자-A가 개인적으로 수행한 것처럼 보입니다.

사용자 계정 만들기

  1. #대화 상자를 엽니다.
  2. 사용자 만들기를 클릭합니다 .
  3. 그런 다음 속성을 입력할 수 있습니다.
    • 계정 이름으로 사용되는 UserID.
    • 로그인 시 암호가 필요합니다.
    • 주체 이름으로 전체 텍스트 이름을 제공합니다.
    • 트리 구조를 구성하는 데 사용할 수 있는 중간 경로입니다.
  4. 저장(녹색 눈금 기호)을 클릭합니다.
  5. 대화 상자가 확장되어 다음을 수행할 수 있습니다.
    1. Configure Properties .
    2. 그룹 멤버십을 참조하십시오 .
    3. 가장자를 정의합니다 .
설치 시 둘 다 높은 신규 사용자를 등록할 때 성능이 손실될 수 있습니다.
  • 사용자
  • 구성원이 많은 그룹

사용자 계정 업데이트

  1. # 대화 상자에서 모든 계정의 목록 보기를 엽니다.
  2. 트리 구조를 탐색합니다.
  3. 필요한 계정을 클릭하여 편집을 엽니다.
  4. 항목을 변경한 다음 해당 항목에 대한 저장(녹색 눈금 기호)을 클릭합니다.
  5. 닫기를 ​클릭하여​ 완료하거나 목록... ​을 클릭합니다.를 클릭하여 모든 사용자 계정 목록으로 돌아갑니다.

사용자 계정 제거

  1. # 대화 상자에서 모든 계정의 목록 보기를 엽니다.
  2. 트리 구조를 탐색합니다.
  3. 필요한 계정을 선택하고 사용자 제거를 클릭합니다 .계정이 즉시 삭제됩니다.
저장소에서 이 주체에 대한 노드를 제거합니다.
액세스 권한 항목은 제거되지 않습니다. 이렇게 하면 역사적 무결성을 보장할 수 있습니다.

속성 정의

새 계정 또는 기존 계정에 대한 속성을 정의할 수 있습니다.
  1. 해당 계정에 대한 사용자 관리 대화 상자를 엽니다.
  2. 속성 이름을 정의합니다.
  3. Select the Type from the drop-down list.
  4. 값을 정의합니다 .
  5. 새 속성에 대해 저장(녹색 클릭 기호)을 클릭합니다.
기존 속성은 휴지통 심볼로 삭제할 수 있습니다.
암호를 제외하고 속성을 편집할 수 없으므로 삭제하고 다시 만들어야 합니다.

암호 변경

암호는 암호 변경 링크를 클릭하여 변경할 수 있는 특수 속성입니다.
또한 CRX 탐색기의 보안 메뉴에서 암호를 사용자 계정으로 변경할 수 있습니다.

가장자 정의

새 계정 또는 기존 계정에 대해 가장자를 정의할 수 있습니다.
  1. 해당 계정에 대한 사용자 관리 대화 상자를 엽니다.
  2. 해당 계정을 가장할 수 있는 계정을 지정합니다.
    찾아보기...을 클릭하여 기존 계정을 선택합니다.
  3. 새 속성에 대해 저장(녹색 눈금 기호)을 클릭합니다.

그룹 관리

그룹 관리에는 표준 대화 상자가 사용됩니다 .
적절한 작업 영역에 로그인되어 있어야 합니다. 그런 다음 두 작업 모두에서 대화 상자에 액세스할 수 있습니다.
  • crx 기본 콘솔에 있는 그룹 관리 링크
  • crx 탐색기의 보안 메뉴
속성
  • GroupID
    그룹 계정의 짧은 이름입니다.
  • 주체 이름
    그룹 계정의 전체 텍스트 이름입니다.
  • 이름, 유형 및 값을 정의하여 새 속성을 추가할 수 있습니다. 각 새 속성에 대해 저장(녹색 눈금 기호)을 클릭합니다.
  • 구성원
    이 그룹의 구성원으로 사용자 또는 다른 그룹을 추가할 수 있습니다.
그룹 구성원
현재 그룹 계정이 속하는 모든 그룹이 표시됩니다. 상속됨 열은 다른 그룹의 구성원 자격 결과로 상속된 구성원 자격을 나타냅니다.
GroupID를 클릭하면 해당 그룹에 대한 대화 상자가 열립니다.
구성원
현재 그룹의 구성원인 모든 계정(사용자 및/또는 그룹)을 나열합니다.
상속됨 열은 다른 그룹의 멤버십으로 인해 상속된 멤버십을 나타냅니다.
소유자, 편집기 또는 뷰어 역할이 자산 폴더의 사용자에게 할당되면 새 그룹이 만들어집니다. 그룹 이름은 역할이 정의된 각 폴더의 mac-default-<foldername> 형식입니다.

그룹 계정 만들기

  1. 그룹 관리 대화 상자를 엽니다.
  2. 그룹 만들기를 클릭합니다 .
  3. 그런 다음 속성을 입력할 수 있습니다.
    • 주체 이름으로 전체 텍스트 이름을 제공합니다.
    • 트리 구조를 구성하는 데 사용할 수 있는 중간 경로입니다.
  4. 저장(녹색 눈금 기호)을 클릭합니다.
  5. 대화 상자가 확장되어 다음을 수행할 수 있습니다.
    1. Configure Properties .
    2. 그룹 멤버십을 참조하십시오 .
    3. 구성원 관리를 참조하십시오 .

그룹 계정 업데이트

  1. 그룹 관리 대화 상자를 사용하여 모든 계정의 목록 보기를 엽니다.
  2. 트리 구조를 탐색합니다.
  3. 필요한 계정을 클릭하여 편집을 엽니다.
  4. 항목을 변경한 다음 해당 항목에 대한 저장(녹색 눈금 기호)을 클릭합니다.
  5. 닫기를 ​클릭하여​ 완료하거나 목록... ​을 클릭합니다.를 클릭하여 모든 그룹 계정 목록으로 돌아갑니다.

그룹 계정 제거

  1. 그룹 관리 대화 상자를 사용하여 모든 계정의 목록 보기를 엽니다.
  2. 트리 구조를 탐색합니다.
  3. 필요한 계정을 선택하고 그룹 제거를 클릭합니다 .계정이 즉시 삭제됩니다.
저장소에서 이 주체에 대한 노드를 제거합니다.
액세스 권한 항목은 제거되지 않습니다. 이렇게 하면 역사적 무결성을 보장할 수 있습니다.

속성 정의

새 계정 또는 기존 계정에 대한 속성을 정의할 수 있습니다.
  1. 해당 계정에 대한 그룹 관리 대화 상자를 엽니다.
  2. 속성 이름을 정의합니다.
  3. Select the Type from the drop-down list.
  4. 값을 정의합니다 .
  5. 새 속성에 대해 저장(녹색 눈금 기호)을 클릭합니다.
기존 속성은 휴지통 심볼로 삭제할 수 있습니다.

구성원

현재 그룹에 구성원을 추가할 수 있습니다.
  1. 해당 계정에 대한 그룹 관리 대화 상자를 엽니다.
  2. 다음 중 하나를 선택합니다.
    • 필요한 구성원(사용자 또는 그룹 계정)의 이름을 입력합니다.
    • 또는 ​찾아보기...을 클릭하여 추가할 주체(사용자 또는 그룹 계정)를 검색하고 선택합니다.
  3. 새 속성에 대해 저장(녹색 눈금 기호)을 클릭합니다.
또는 휴지통 기호가 있는 기존 멤버를 삭제합니다.

액세스 권한 관리

CRXDE Lite의 액세스 제어 탭을 사용하여 액세스 제어 정책을 정의하고 관련 권한을 할당할 수 있습니다.
예를 들어, ** #의 경우 왼쪽 창에서 필요한 리소스를 선택하고 오른쪽 하단에 있는 # 탭을 선택합니다.
정책은 다음과 같이 분류됩니다.
  • 해당 액세스 제어 정책
    이러한 정책을 적용할 수 있습니다.
    로컬 정책을 만드는 데 사용할 수 있는 정책입니다. 적용 가능한 정책을 선택하고 추가하면 로컬 정책이 됩니다.
  • 로컬 액세스 제어 정책
    적용한 액세스 제어 정책입니다. 그런 다음 업데이트, 주문 또는 제거할 수 있습니다.
    로컬 정책은 상위 정책에서 상속된 모든 정책을 덮어씁니다.
  • 유효 액세스 제어 정책
    이러한 정책은 모든 액세스 요청에 대해 현재 유효한 액세스 제어 정책입니다. 여기에는 로컬 정책과 상위에서 상속된 정책 모두에서 파생된 집계 정책이 표시됩니다.

정책 선택

다음 항목에 대한 정책을 선택할 수 있습니다.
  • 현재 경로
    위의 예에서 저장소 내의 리소스를 선택합니다. 이 "현재 경로"에 대한 정책이 표시됩니다.
  • 보관소
    저장소 수준 액세스 제어를 선택합니다. 예를 들어, 저장소를 위해서만 관련된 권한을 설정할 때 노드가 아니라 해당 jcr:namespaceManagement 권한을 설정합니다.
  • 사용자
    저장소에 등록된 주도자입니다.
    주체 이름을 입력하거나 필드 오른쪽에 있는 아이콘을 클릭하여 주체 선택 대화 상자를 열 수 있습니다 .
    이렇게 하면 사용자 또는 그룹을 검색할 있습니다 . 결과 목록에서 필요한 주체를 선택한 다음 확인을 클릭하여 값을 이전 대화 상자로 다시 옮깁니다.
관리를 간소화하려면 개별 사용자 계정이 아닌 그룹 계정에 액세스 권한을 할당하는 것이 좋습니다.
여러 사용자 계정이 아닌 몇 개의 그룹을 관리하는 것이 더 쉽습니다.

권한

액세스 제어 항목을 추가할 때 다음 권한을 선택할 수 있습니다(자세한 내용은 보안 API 참조).
권한 이름 ...의 권한을 제어하는 것.
jcr:read 노드를 검색하고 해당 속성과 값을 읽습니다.
rep:write jcr:write 및 jcr:nodeTypeManagement의 Jackrabbit 전용 집계 권한입니다.
jcr:all 이 권한은 미리 정의된 모든 다른 권한을 포함하는 집계 권한입니다.
고급
crx:replicate 노드의 복제를 수행합니다.
jcr:addChildNodes 노드의 하위 노드를 만듭니다.
jcr:lifecycleManagement 노드에서 라이프사이클 작업을 수행합니다.
jcr:lockManagement 노드 잠금 및 잠금 해제;잠금을 새로 고칩니다.
jcr:modifyAccessControl 노드의 액세스 제어 정책을 수정합니다.
jcr:modifyProperties 노드의 속성을 생성, 수정 및 제거합니다.
jcr:namespaceManagement 네임스페이스 정의를 등록, 등록 취소 및 수정합니다.
jcr:nodeTypeDefinitionManagement 노드 유형 정의를 저장소로 가져옵니다.
jcr:nodeTypeManagement Add and remove mixin node types and change the primary node type of a node. 또한 Node.addNode 및 XML 가져오기 메서드를 호출할 때 새 노드의 mixin 또는 기본 유형이 명시적으로 지정됩니다.
jcr:readAccessControl 노드의 액세스 제어 정책을 읽습니다.
jcr:removeChildNodes 노드의 하위 노드를 제거합니다.
jcr:removeNode 노드를 제거합니다.
jcr:retentionManagement 노드에서 보존 관리 작업을 수행합니다.
jcr:versionManagement 노드에서 버전 관리 작업을 수행합니다.
jcr:workspaceManagement JCR API를 통한 작업 영역 생성 및 삭제
jcr:write 다음을 포함하는 집계 권한입니다.- jcr:modifyProperties - jcr:addChildNodes - jcr:removeNode - jcr:removeChildNodes
rep:privilegeManagement 새 권한을 등록합니다.

새 권한 등록

새 권한을 등록할 수도 있습니다.
  1. 도구 모음에서 도구를 선택한 다음 ​권한을 선택하여 현재 등록된 권한을 표시합니다.
  2. 권한 등록 아이콘 ( + )을 사용하여 대화 상자를 열고 새 권한을 정의합니다.
  3. 확인 ​을 클릭하여 저장합니다. 이제 권한을 선택할 수 있습니다.

액세스 제어 항목 추가

  1. 리소스를 선택하고 액세스 제어 탭을 엽니다 .
  2. 새 로컬 액세스 제어 정책을 ​추가하려면 # 목록 오른쪽에 있는 + 아이콘을 클릭합니다.
  3. 새 항목이 로컬 액세스 제어 정책 아래에 나타납니다.
  4. 아이콘을 + 클릭하여 새 항목을 추가합니다.
    현재 빈 문자열을 지정하려면 해결 방법이 필요합니다.
    이 경우 ""을(를) 사용해야 합니다.
  5. 액세스 제어 정책을 정의하고 확인을 클릭하여 저장합니다. 새 정책은 다음과 같습니다.
    • 로컬 액세스 제어 정책 아래에 나열됨
    • 변경 사항은 효과적인 액세스 제어 정책에 반영됩니다 .
CRX에서 선택 항목의 유효성을 검사합니다.주어진 주체에 대해 주어진 노드에 대해 (최대) 1개의 거부 및 1이 있습니다. 구현은 항상 중복된 항목을 지우고 동일한 권한이 허용 및 거부 항목 모두에 나열되지 않도록 합니다.

Ordering Local Access Control Policies

목록의 순서는 정책이 적용되는 순서를 나타냅니다.
  1. 로컬 액세스 제어 정책 표에서 필요한 항목을 선택하고 표의 새 위치로 드래그합니다.
  2. 변경 사항은 로컬 및 유효 액세스 제어 정책에 대한 표에 모두 표시됩니다 .

액세스 제어 정책 제거

  1. 로컬 액세스 제어 정책 표에서 항목 오른쪽에 있는 빨간색 아이콘(-)을 클릭합니다.
  2. 로컬 및 유효 액세스 제어 정책에 대한 표 모두에서 항목이 제거됩니다 .

액세스 제어 정책 테스트

  1. CRXDE Lite 도구 모음에서 ​도구​ , ​액세스 제어 테스트...를 선택합니다..
  2. 오른쪽 상단 창에 새 대화 상자가 열립니다. 테스트할 경로 및/또는 주도자를선택합니다.
  3. 테스트를 클릭하여 선택 결과를 확인합니다.