프레임워크 관리

컴플라이언스 프레임워크는 GDPR, 개인정보보호법(PIPA), 금융 규제 등 데이터 거버넌스에 적용되는 규정 체계를 정의합니다. 각 프레임워크는 카테고리로 묶이고, 카테고리는 여러 개의 통제 항목(Control)으로 구성됩니다.
본 페이지의 관리 UI — Manager Sheet 및 API 엔드포인트 — CRUD 섹션은 Epic #1079 의 M1 (PR #1086) + M2 (PR #1089) 머지 후 사용 가능합니다. 두 PR 머지 전에는 본 페이지의 조회 API 만 동작합니다.
주요 기능
- 프레임워크 목록 조회: 등록된 모든 컴플라이언스 프레임워크를 조회합니다
- 프레임워크 상세 조회: 카테고리 + 통제 항목(Controls) 트리를 확인합니다
- 프레임워크 관리 (Epic #1079 — M1+M2 머지 후 활성화): 관리자가 UI 만으로 Framework / Category / CheckItem 을 추가·수정·삭제 가능 — 시드 스크립트 재배포 불필요
- 시드 데이터 제공: GDPR, PIPA, 신용정보법, 전자금융거래법, PCI DSS, ISO 27001, SOC 2 등이 시드 스크립트로 기본 제공됩니다
프레임워크 구조 (3계층)
Framework (프레임워크)
├── Category 1 (카테고리)
│ ├── CheckItem 1 (통제 항목)
│ │ ├── check_type: auto / manual
│ │ ├── auto_check_key: (auto 만) 자동 점검 함수 키
│ │ ├── severity: low / medium / high / critical
│ │ └── lifecycle_phase: collection / storage / usage / retention / disposal
│ └── CheckItem N
└── Category N
code 필드는 모든 레벨에서 immutable (참조 무결성 + 평가 이력 식별자). 한 번 등록한 코드는 변경할 수 없으며, 변경이 필요하면 비활성화 + 신규 등록이 권장됩니다.
관리 UI — Manager Sheet
⚙ 관리 콘솔 → 접근 제어 & 보안 → 컴플라이언스 페이지 우측 상단 관리 버튼 → 우측에서 슬라이드하는 Sheet 가 열립니다.
- 좌측 트리: Framework → Category → CheckItem 3계층, 클릭으로 선택
- 우측 폼: 선택한 노드의 Create / Update / Delete
- 상단 + 버튼: 신규 Framework 생성
- 노드별 + 버튼: 하위 노드 (Category 또는 CheckItem) 추가
auto_check_key 드롭다운
check_type=auto 일 때만 활성화되는 Combobox 가 표시됩니다. 서버에 등록된 자동 점검 키 목록 (GET /api/v1/compliance/check-engine/keys) 을 불러와 표시하며, 미등록 키는 입력할 수 없습니다 (422 차단).
현재 등록된 6 종은 평가 실행 가이드 — 자동 점검 항목 참조.
삭제 정책
| 대상 | 동작 |
|---|---|
| Framework | 기본은 soft delete (is_active=false). 트리에서 사라지지만 평가 이력은 보존됨. ConfirmDialog 에 force 토글이 있어 ON 후 삭제 시도하면 평가 이력이 있을 때 409 + 안내 toast, 이력이 0건일 때만 hard cascade |
| Category | 하위 CheckItem 이 있으면 409 + 안내. 빈 카테고리만 hard delete |
| CheckItem | 항상 삭제 금지 (서버 405). 감사 추적 보존 — UI 휴지통 클릭 시 안내 toast 만 표시, API 호출 없음 |
CheckItem 을 정리하려면 카테고리 / 프레임워크 단위로 비활성화하는 방식이 권장됩니다.
기본 제공 프레임워크
| Code | 프레임워크 | 자동 점검 비율 (예) |
|---|---|---|
| GDPR | EU 일반 데이터 보호 규정 | manual 다수 |
| PIPA | 한국 개인정보보호법 | auto 6 + manual 6 |
| CREDIT_INFO_ACT | 신용정보법 | auto 4 + manual 6 |
| EFT_ACT | 전자금융거래법 | auto 4 + manual 4 |
| PCI_DSS | 결제 카드 산업 데이터 보안 표준 | manual 다수 |
| ISO27001 | 정보보안 관리 표준 | manual 다수 |
| SOC2 | 서비스 조직 통제 보고 | manual 다수 |
자동 점검은 시스템 설정·DB 상태로 즉시 판정하지만, 수동 항목 (정책 검토, 동의 절차, 위변조 방지 등) 은 관리자가 직접 검토 결과를 입력해야 100% 달성 가능. 점수 산식과 상태 판정 규칙은 평가 실행 가이드 를 참조하세요.
통제 항목 유형
| 유형 | 설명 | UI 동작 |
|---|---|---|
auto | 시스템이 자동 점검 — PII 탐지, 보존 정책 존재 여부, Vault 활성화 등 | auto_check_key 드롭다운 활성화 + 필수 |
manual | 관리자가 수동으로 확인하고 결과 입력 | auto_check_key 입력 금지 (null 정규화) |
manual → auto 전환 시 auto_check_key 미입력이면 422, auto → manual 전환 시 기존 키가 자동으로 null 정규화됩니다.
신규 프레임워크 추가 워크플로
- ⚙ 관리 콘솔 → 접근 제어 & 보안 → 컴플라이언스 헤더의 관리 버튼 클릭
- Sheet 좌측 상단의 + Framework 클릭
code(예:HIPAA),name(예:미국 의료 정보 보호법),description?,version?입력 후 생성- 생성된 Framework 노드 클릭 → + Category 로 카테고리 추가 (sort_order 로 표시 순서 결정)
- Category 노드 클릭 → + CheckItem 으로 통제 항목 추가
check_type=auto선택 시 등록된 키 중 하나 선택check_type=manual선택 시 키 입력란 비활성화severity와lifecycle_phase선택
- Sheet 닫기 — 대시보드와 평가 화면에 자동 반영
API 엔드포인트
조회
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/compliance/frameworks | 활성 (is_active=true) 프레임워크 목록 |
| GET | /api/v1/compliance/frameworks/{framework_id} | 카테고리 + 통제 항목 트리 포함 상세 |
| GET | /api/v1/compliance/check-engine/keys | 등록된 auto_check_key 목록 (admin only) |
CRUD (관리자 전용, Epic #1079)
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/compliance/frameworks | Framework 생성 |
| PATCH | /api/v1/compliance/frameworks/{id} | name/description/version/is_active 변경 (code immutable) |
| DELETE | /api/v1/compliance/frameworks/{id} | 기본 soft, ?force=true 시 history=0 일 때만 hard cascade |
| POST | /api/v1/compliance/frameworks/{fid}/categories | Category 생성 |
| PATCH | /api/v1/compliance/categories/{id} | name/sort_order 변경 |
| DELETE | /api/v1/compliance/categories/{id} | 하위 항목 없을 때만 hard delete |
| POST | /api/v1/compliance/categories/{cid}/check-items | CheckItem 생성 |
| PATCH | /api/v1/compliance/check-items/{id} | name/check_type/auto_check_key/severity/remediation_guide/lifecycle_phase 변경 |
| DELETE | /api/v1/compliance/check-items/{id} | 항상 405 (감사 추적 보존) |
검증 규칙
check_type=auto이면auto_check_key는/check-engine/keys화이트리스트에 있어야 함 (없으면 422)severity ∈ {low, medium, high, critical}lifecycle_phase ∈ {collection, storage, usage, retention, disposal} ∪ nullcode는 (framework 전역) / (framework_id, code) / (category_id, code) 범위에서 unique. 중복 시 409
관련 문서
- 컴플라이언스 개요 — 대시보드 화면의 숫자·색상 의미
- 평가 실행 — 점수 산식 + 자동 점검 동작 원리
- 변경 이력 (ChangeLog)