과제
개별 사용자, 팀 또는 전체 조직에 특정 교육 모듈을 할당합니다. 완료를 추적하고, 마감일을 설정하고, 필수 교육을 시행합니다.
과제 생성
새 과제를 생성하려면 관리자 사이드바에서 과제로 이동하여 "새 과제"을 클릭합니다. 다음 단계를 따르세요:
1. 콘텐츠 영역
연습(코드 리뷰 챌린지), 학습(인터랙티브 공격 시나리오) 또는 맞춤형(구축한 맞춤형 과정)을 선택합니다. 맞춤형을 선택했지만 조직이 아직 맞춤형 과정을 구축하지 않은 경우, 양식은 인라인 경고를 표시하며 적어도 하나의 과정이 존재할 때까지 선택기가 비어 있는 상태로 유지됩니다.
2. 대상
할당할 것을 선택합니다. 대상 계층 구조는 콘텐츠 영역에 따라 다릅니다:
- 연습: 카테고리 → 모듈 → 주제 (예: "OWASP Web Top 10 > A03 Injection > SQL Injection"). 카테고리만 선택하면 그 아래의 모든 주제를 자동으로 다루는 카테고리 수준 과제가 생성됩니다.
- 학습: 과정 → 시나리오. 과정만 선택하면 그 아래의 모든 시나리오를 다룹니다.
- 맞춤형: 조직의 맞춤형 과정 중 하나를 선택합니다. 과정의 항목이 어떤 연습 주제와 학습 시나리오가 완료에 대해 추적되는지를 결정합니다. 맞춤형 과정를 참조하세요.
3. 수신자
과제를 받을 사람을 선택합니다: 개별 사용자, 팀 또는 전체 조직입니다. 선택기 아래에서 양식은 라이브 미리보기("{Assignee}에게 N개의 챌린지를 할당합니다")를 표시하므로 제출하기 전에 범위를 확인할 수 있습니다.
4. 마감일
마감일을 설정합니다. 사용자는 대시보드에서 기한이 지난 과제가 강조 표시되는 것을 봅니다.
5. 필수
과제를 필수 또는 선택으로 플래그합니다. 플래그는 기본적으로 켜져 있습니다 — 필수 과제는 사용자의 교육 대기열에 두드러지게 나타나고 컴플라이언스 보고서에 기여합니다. 선택 과제는 추적되지만 컴플라이언스 메트릭을 차단하지 않습니다.
6. 메모
과제에 대한 선택적 설명 또는 컨텍스트를 추가합니다(예: "Q2 보안 감사 전에 완료"). 메모는 과제 상세 페이지의 제목 아래와 수신자의 "내 과제" 보기에 이탤릭으로 표시됩니다.
과제 생성 양식
과제 생성 양식은 다음과 같습니다:
과제 대상
다양한 세분성 수준에서 교육을 할당할 수 있습니다:
| 콘텐츠 영역 | 대상 수준 | 예시 |
|---|---|---|
| 연습 | 카테고리 | 모든 OWASP Web Top 10 챌린지 |
| 연습 | 모듈 | 모든 A03 Injection 챌린지 |
| 연습 | 주제 | SQL Injection 챌린지만 |
| 학습 | 과정 | 모든 웹 보안 시나리오 |
| 학습 | 시나리오 | IDOR 시나리오만 |
| 맞춤형 | 맞춤형 과정 | 맞춤형 과정에서 구축한 "Q2 Onboarding" 과정 |
진행 상황 추적
다음을 표시하는 상세 페이지를 보려면 어떤 과제든 클릭하세요:
- 전체 완료율 — 완료한 할당된 사용자의 비율
- 사용자별 진행 상황 표시줄 — 각 수신자의 개별 진행 상황
- 기한 초과 상태 — 마감일이 지났을 때 강조 표시됨
- 개별 점수 — 사용자별 챌린지 점수
과제 상세
과제 상세 페이지는 다음과 같습니다:
편집 및 비활성화
언제든지 과제의 마감일, 메모, 필수 플래그 및 활성 상태를 편집할 수 있습니다. 변경 사항은 모든 수신자에게 즉시 적용됩니다.
삭제 작업은 isActive=false를 설정합니다 — 행을 지우지 않습니다. 과제는 수신자의 "내 과제" 보기에 나타나지 않고 컴플라이언스 메트릭에 기여하지 않게 됩니다. 하지만 사용자별 진행 상황은 유지되므로 과거 보고서가 계속 해결됩니다. 비활성화된 과제 재활성화는 오늘날 관리자 UI에 노출되지 않습니다. PATCH /api/public/v1/assignments/{id}에 대해 {"isActive": true}를 보내어 공개 API를 통해 가능합니다.
과제 목록 페이지에는 또한 모든 과제를 대상, 수신자, 마감일, 필수 플래그 및 집계 진행 상황과 함께 다운로드하는 CSV 내보내기 버튼이 노출됩니다 — 감사 패키지에 유용합니다.
과제에 적합한 범위 선택
동일한 교육 콘텐츠는 단일 주제, 관련 주제의 모듈 또는 전체 카테고리로 할당할 수 있습니다. 적절한 세분성 수준을 선택하는 것이 팀이 일주일 만에 완료하는 과제와 모든 사람이 절반만 참여하는 동안 분기 내내 끄는 과제 사이의 차이입니다. 경험 법칙으로, 특정 사고 또는 펜 테스트 발견에 반응할 때는 주제별로, 신입을 온보딩할 때는 모듈별로, 그리고 측정된 몇 주의 시간과 명확한 컴플라이언스 이유가 있을 때만 전체 카테고리별로 할당하세요.
주제 대 전체 트랙 과제
단일 주제 과제는 최근 펜 테스트가 코드베이스에서 SQL injection을 표면화했을 때, 의존하는 라이브러리의 CVE가 팀이 본 적 없는 취약점 클래스를 사용할 때, 또는 엔지니어에게 타깃 재교육이 필요할 때 적절한 도구입니다. 범위는 작고, 실제 리스크와의 연결은 직접적이며, 엔지니어는 한두 번의 세션으로 완료합니다. 주제 수준 과제의 완료율은 일반적으로 카테고리 수준보다 훨씬 높습니다. 목표가 구체적이기 때문입니다.
전체 트랙 과제 — 예를 들어, 전체 OWASP Web Top 10 카테고리 — 는 온보딩 코호트와 연간 필수 교육 주기에 작동하지만 현실적인 마감일이 필요합니다. 주당 2~3시간의 교육 시간의 지속 가능한 페이스로 카테고리 수준 트랙에 대해 6~10주를 계획하세요. 더 짧은 마감일은 엔지니어를 흡수하지 않고 콘텐츠를 클릭하게 만듭니다. 이는 목적을 무효화하고 약한 유지율과 함께 깔끔한 대시보드를 생성합니다.
시간 제한 및 컴플라이언스 증거
선택적 과제도 포함하여 모든 과제에 마감일을 설정하세요. 마감일은 과제를 백로그 항목이 아니라 약속으로 재구성하며, 사용자 대시보드의 기한 초과 표시기는 일대일 회의 중 라인 매니저에게 유용한 자극이 됩니다. 필수 교육의 경우, 컴플라이언스 증거 마감일 30일 전에 마감일을 설정하여 늦은 사람들을 추적할 버퍼를 두세요.
PCI DSS 6.2.2 — 개발자가 적어도 매년 자신의 직무 역할과 관련된 안전 코딩 교육을 받아야 함을 요구함 — 의 적용을 받는 조직의 경우, 과제는 주요 증거 아티팩트 역할을 합니다. 수신자 목록은 범위를 보여주고, 완료 타임스탬프는 교육이 언제 발생했는지 보여주며, 개별 점수는 학습자가 자료에 참여했는지 보여줍니다. 동일한 아티팩트가 안전 개발 교육에 대한 ISO 27001 Annex A.14 요구사항을 충족합니다. 두 표준 모두의 감사 기간이 이전 연도로 확장되므로 비활성화된 과제를 삭제하지 말고 시스템에 유지하세요.