> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 감사 로그

> 회사의 주요 업무 레코드를 누가 생성, 변경, 삭제했는지 기록하고, 그 이력을 레코드별 또는 회사 전체로 검토하며, 30일이 지난 아카이브를 다운로드합니다.

감사 로그는 Alforse의 주요 업무 레코드에 대한 생성, 갱신, 삭제를 회사별로 기록한 이력으로, 각 변경을 한 사람과 변경된 필드가 함께 남습니다. 관리자가 켜면 설정을 볼 권한이 있는 누구나 주변에 묻지 않고도 "누가 언제 이것을 변경했는가?"에 답할 수 있습니다.

## 감사 로그의 작동 방식

로깅은 **기본적으로 꺼져 있으며** 회사별로 따로 유지됩니다. 켜면 Alforse는 이후 감사 대상 엔터티에 발생하는 모든 변경을 기록합니다. 켜기 전이나 꺼져 있는 동안의 변경은 절대 기록되지 않습니다.

항목은 변경된 데이터베이스 행이 아니라 사용자가 다루는 업무 엔터티별로 그룹화됩니다. 예를 들어 품목의 원가를 편집하면 내부 `itemCost` 행이 아니라 **품목** 항목이 생성됩니다.

### 항목의 구성

| 부분 | 담는 내용 |
| - | - |
| 작업 | `INSERT`, `UPDATE`, `DELETE`이며 앱에서는 생성됨, 갱신됨, 삭제됨으로 표시됩니다 |
| 행위자 | 변경한 사용자입니다. 시스템이나 서비스 역할이 변경한 경우에는 *시스템*으로 표시됩니다 |
| 변경 사항 | 이전 값과 새 값의 필드별 차이입니다 |
| 메타데이터 | 요청의 IP 주소, 사용자 에이전트, 출처입니다 |
| 타임스탬프 | 변경이 발생한 시각입니다 |

차이에서는 `updatedAt`, `updatedBy`, 내부 임베딩 같은 관리용 필드가 제외되므로, 항목에는 사람이 관심을 가질 변경만 표시됩니다.

## 감사 대상 엔터티

아래 엔터티만 감사됩니다. 그 외의 변경은 로깅이 켜져 있든 아니든 기록되지 않습니다.

| 영업 및 고객 | 구매 및 공급업체 | 생산 및 재고 | 회계 및 관리 |
| - | - | - | - |
| 고객 | 공급업체 | 품목 | 회계 기간 |
| 견적 | 공급업체 견적 | 품목 보존 기간 | 전표 항목 |
| 수주 | 발주서 | 작업 | 지불 |
| 매출 송장 | 매입 송장 | 작업장 | 메모 |
| 출하 | 입고 | 재고 실사 | 상환 |
| 가격 규칙 | | 피킹 목록 | 고정 자산 |
| 가격 재정의 | | 창고 이동 | 감가상각 실행 |
| 가격 재정의 구간 | | 재고 이동 | 매출 인식 실행 |
| 임대 계약 | | 유지보수 일정 | 직원 |
| | | 유지보수 배차 | 초대 |
| | | 부적합 | ITAR 인증 |
| | | 변경 통지 | |
| | | 계측기 | |

## 로깅 켜기와 끄기

**설정 → 감사 로그**의 **감사 로깅** 카드에는 토글이 하나 있습니다.

### 설정 페이지 열기

**설정 → 감사 로그**로 이동합니다.

### 토글 켜기

**감사 로깅** 카드에서 토글을 켭니다. Alforse가 회사의 로그 저장소를 만들고 `auditLogEnabled`를 설정하며 감사 대상 테이블을 변경 파이프라인에 구독시킵니다.

### 상태 확인

카드에 *"Audit logging is enabled — All changes to auditable entities are being recorded."*(감사 로깅이 활성화되었습니다 — 감사 가능한 엔터티의 모든 변경이 기록되고 있습니다.)라고 표시됩니다. 로깅이 꺼져 있으면 *"Audit logging is disabled — Enable to start tracking changes to your data."*(감사 로깅이 비활성화되었습니다 — 데이터 변경 추적을 시작하려면 활성화하십시오.)라고 표시됩니다.

토글을 끄면 새 항목은 중단되지만 기존 이력은 유지됩니다. 다시 켜면 그 시점부터 기록이 재개되며, 꺼져 있던 동안의 공백은 비어 있는 채로 남습니다.

## 변경 검토

같은 데이터를 두 가지 범위로 볼 수 있습니다.

### 레코드 하나의 이력

고객, 수주, 작업, 출하 같은 대부분의 상세 페이지에서 **이력** 작업을 선택하면 해당 레코드의 타임라인이 서랍으로 열립니다. 각 변경에는 작업, 행위자, 시간, 변경된 필드의 펼칠 수 있는 목록이 표시됩니다.

로깅이 꺼져 있으면 서랍에 *"Audit logging is not enabled"*(감사 로깅이 활성화되지 않았습니다)라고 표시됩니다. 설정을 갱신할 수 있는 사용자에게는 활성화 바로가기가 제공되며, 그 외 사용자에게는 관리자에게 문의하라는 안내가 표시됩니다.

### 회사 전체 로그

**설정 → 감사 로그**에서 **모두 보기**를 선택하면 전체 화면의 **모든 감사 로그** 표가 열립니다. 검색과 페이지 매김이 가능하며 **엔터티**, **작업**, **변경자**, **변경 사항**, **시점** 열이 있습니다.

| 필터 | 표를 좁히는 기준 |
| - | - |
| **엔터티** | 수주나 품목 같은 엔터티 유형 하나 |
| **작업** | 생성됨, 갱신됨, 삭제됨 |
| **변경자** | 사용자 한 명(행위자) |

작업은 색이 있는 배지로 표시됩니다. 생성됨은 녹색, 갱신됨은 파란색, 삭제됨은 빨간색입니다. 행을 펼치면 필드 단위 차이를 볼 수 있고, **엔터티** 값을 선택하면 해당 레코드가 열립니다.

## 보존과 아카이브

실시간 로그에는 **30일** 분량의 항목이 유지됩니다. 매일 밤 작업이 오래된 항목을 압축 아카이브로 옮기고, 아카이브의 날짜 범위, 행 수, 크기를 기록한 뒤 실시간 테이블에서 해당 항목을 삭제합니다.

아카이브는 설정 페이지의 **아카이브된 로그**에 나열됩니다. **다운로드**는 압축된 내보내기 파일에 대한 단기 서명 링크를 만들므로, 링크를 저장하지 말고 필요할 때마다 새 링크를 요청하십시오. 첫 아카이브가 생기기 전에는 30일이 지난 로그가 이곳에 보관될 것이라고 카드에 안내됩니다.

## 권한과 플랜

| 작업 | 요구 사항 |
| - | - |
| 로깅 켜기 또는 끄기 | **설정 갱신** 권한 |
| 로그와 레코드 이력 보기 | **설정 보기** 권한 |
| 기능 사용 자체 | Business 플랜 |

설정 모듈이 직원 유형에 매핑되는 방식은 [권한 및 액세스](https://docs.alforse.com/ko/docs/reference/permissions.md)를 참조하십시오.

## 문제 해결

### "Upgrade to Business to enable audit logging"(감사 로깅을 활성화하려면 Business로 업그레이드하십시오)

**원인:** 회사가 Business 플랜이 아니므로 **설정 → 감사 로그**의 토글이 차단되었습니다.
**해결 방법:** 플랜을 업그레이드한 다음 로깅을 켜십시오.

### "Upgrade to unlock audit history"(감사 이력을 사용하려면 업그레이드하십시오)

**원인:** 같은 플랜 제한이 레코드의 **이력** 서랍에 표시된 것입니다.
**해결 방법:** Business 플랜으로 업그레이드하십시오. 이 제한은 설정 토글과 서랍 모두에 적용됩니다.

### "Audit logging is not enabled"(감사 로깅이 활성화되지 않았습니다)

**원인:** **이력** 서랍이 열렸지만 회사의 로깅이 꺼져 있습니다.
**해결 방법:** 설정 갱신 권한이 있는 사용자가 **설정 → 감사 로그**에서 켭니다. 해당 권한이 없으면 관리자에게 요청하십시오.

### "Failed to enable audit logging" 또는 "Failed to disable audit logging"(감사 로깅을 활성화하지 못했습니다 / 비활성화하지 못했습니다)

**원인:** 회사의 로그 저장소와 변경 구독을 만들거나 제거하는 동안 서버 오류가 발생했습니다.
**해결 방법:** 다시 시도하십시오. 계속 실패하면 로그 테이블이나 구독이 어긋났을 수 있으며, 토글을 한 번 더 전환하면 다시 동기화됩니다.

### "Failed to generate download URL"(다운로드 URL을 생성하지 못했습니다)

**원인:** 아카이브의 저장된 파일이 없거나 서명 요청이 실패하여 Alforse가 서명 링크를 만들지 못했습니다.
**해결 방법:** 다시 시도하십시오. 링크는 금방 만료되므로 오래된 링크는 작동하지 않습니다.

### 레코드에 이력이 표시되지 않습니다

세 가지를 확인하십시오. 변경이 발생했을 때 로깅이 켜져 있어야 합니다. Alforse는 소급해서 채우지 않기 때문입니다. 레코드의 엔터티가 [감사 대상 엔터티](#audited-entities)에 나타나야 합니다. 그리고 관리용 필드(`updatedAt`, `updatedBy`, 임베딩)만 건드린 변경은 필드 단위 차이를 표시하지 않습니다.

### 표에 오래된 변경이 없습니다

실시간 로그에는 최근 30일만 있습니다. 오래된 변경은 **아카이브된 로그**의 다운로드 가능한 내보내기 파일에서 찾으십시오.

## 관련 문서

**회사 설정**

감사 로깅을 포함한 회사 레코드와 기능 토글입니다.

[Open](https://docs.alforse.com/ko/docs/reference/company-settings.md)

**권한 및 액세스**

설정 권한이 로그를 보고 관리할 수 있는 사람을 결정하는 방식입니다.

[Open](https://docs.alforse.com/ko/docs/reference/permissions.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.