> ## 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.

# 문서

> Alforse의 회사 파일 라이브러리로, 업로드, 다섯 가지 목록 보기, 그룹 기반 공개 범위, 개인 고정과 라벨, 레코드 첨부, PDF에서 송장과 RFQ 양식을 미리 채우는 AI 추출을 다룹니다.

문서 탐색기는 회사 모든 사람이 업로드된 파일을 찾는 곳입니다. 파일이 단독으로 있든 작업, 발주서, RFQ 같은 레코드에 속해 있든 마찬가지입니다. 구매 담당자와 영업 담당자는 AI 추출을 통해서도 이를 접하게 되는데, AI 추출은 공급업체 송장이나 고객 RFQ PDF를 읽어 양식을 채워 줍니다.

## 개요

사이드바에서 **문서**를 선택하면 탐색기가 열리며 **모든 문서**에서 시작합니다. 라이브러리는 폴더가 없는 평면 구조입니다. 대신 보기, 검색, 필터, 그리고 개인 고정과 라벨로 범위를 좁힙니다.

레코드에 첨부된 파일은 해당 레코드와 탐색기, 두 곳에 나타납니다. 따라서 어느 쪽에서 시작하든 파일에 접근할 수 있습니다.

## 파일 찾기

### 보기

왼쪽의 탭 모음으로 다섯 가지 보기를 전환합니다.

FieldType

<details>
  <summary>**모든 문서**</summary>

  읽을 권한이 있는, 회사의 모든 활성 파일입니다.
</details>

<details>
  <summary>**내 문서**</summary>

  직접 업로드한 파일입니다(`createdBy` = 본인).
</details>

<details>
  <summary>**최근**</summary>

  최근 활동순으로 정렬되므로, 가장 최근에 보거나 다운로드하거나 라벨을 붙이거나 편집한 파일이 맨 위에 옵니다.
</details>

<details>
  <summary>**고정됨**</summary>

  고정한 파일만 표시합니다.
</details>

<details>
  <summary>**휴지통**</summary>

  휴지통으로 옮긴 파일로, 누군가 복원하거나 영구 삭제할 때까지 유지됩니다.
</details>

### 열

고정한 파일이 먼저 나열됩니다. 표에는 모든 파일에 대해 다음이 표시됩니다.

| 열 | 출처 |
| - | - |
| 이름 | 파일 이름이며 문서의 속성에서 편집할 수 있습니다. |
| 원본 문서 | 파일이 첨부된 레코드(있는 경우). 선택하면 해당 레코드가 열립니다. |
| 라벨 | 개인 라벨입니다. |
| 사이즈 | 저장된 파일 크기입니다. |
| 유형 | 확장자에서 파생되는 열한 가지 범주 중 하나입니다(아래 참조). |
| 파일 확장자 | 파일 이름의 마지막 점 뒤 텍스트이므로 항상 실제 파일과 일치합니다. |
| 생성됨 / 업데이트됨 | 파일을 생성했거나 마지막으로 변경한 사람과 시점입니다. |

**유형**은 업로드할 때 Alforse가 설정하며 직접 선택하지 않습니다. 확장자에 따라 열한 가지 유형 중 하나가 적용됩니다. `Archive`, `Document`, `Presentation`, `PDF`, `Spreadsheet`, `Text`, `Image`, `Video`, `Audio`, `Model`(지원되는 3D 형식), `Other`입니다.

### 검색과 필터

검색창은 파일의 **이름**이나 **설명** 어디에서든 대소문자를 구분하지 않고 텍스트를 찾습니다. 파일 내용은 검색하지 않습니다. 보기 탭, 그리고 원본 문서, 라벨, 유형, 확장자, 생성자 필터와 함께 사용할 수 있습니다.

목록을 다른 곳으로 가져가려면 **CSV 다운로드**를 선택합니다. 내보내기에는 현재 결과가 포함되며 각 항목에 서명된 다운로드 링크가 있습니다.

## 파일 업로드

**업로드**를 선택하고 파일을 고릅니다. 모든 파일 형식이 허용됩니다. 브라우저가 파일을 `{companyId}/{random}.{ext}` 경로의 비공개 스토리지에 저장하면, Alforse가 경로, 이름, 크기를 기록하는 문서 행을 생성합니다.

모든 업로드, 다운로드, 편집, 고정, 라벨 변경은 활동 트랜잭션으로 기록됩니다. 이 트랜잭션이 **최근** 보기의 순서를 결정합니다.

## 고정과 라벨로 정리

고정과 라벨은 **개인용**입니다. 고정하거나 라벨을 붙인 내용은 공유 라이브러리에 대한 본인의 보기에만 영향을 주며, 동료에게는 보이지 않습니다.

| 정리 도구 | 사용 방법 | 저장 방식 |
| - | - | - |
| **고정**(압정 아이콘, 행 메뉴에서는 "즐겨찾기") | 행에서 전환합니다. 파일이 목록 맨 위로 이동하고 **고정됨**에 나타납니다. | 본인에게 연결된 `documentFavorite` 행 |
| **라벨** | 행의 라벨 팝오버에 입력하여 기존 라벨을 재사용하거나 새로 만듭니다. 라벨을 선택하면 목록이 해당 라벨로 필터링됩니다. | 사용자별 라벨이므로 본인의 "Q3-audit" 라벨이 동료의 보기를 어지럽히지 않습니다 |

## 파일을 볼 수 있는 사람

접근은 그룹 멤버십과 권한의 조합으로 제어됩니다.

| 작업 | 필요한 조건 |
| - | - |
| 파일 보기 | 파일의 `readGroups` 중 하나의 멤버십 **그리고** `documents` 보기 권한 |
| 파일 편집 또는 삭제 | 파일의 `writeGroups` 중 하나의 멤버십 **그리고** 해당하는 `documents` 권한 |

비공개 스토리지도 같은 읽기 그룹 규칙을 적용하므로, 읽을 수 없는 파일의 링크는 열리지 않습니다.

NOTE

**그룹은 Alforse의 회사 그룹입니다**

읽기 및 쓰기 그룹은 Alforse 다른 곳에서도 접근 범위를 정하는 것과 동일한 회사 그룹 멤버십에서 가져옵니다. 문서의 속성을 편집할 때 설정합니다. 파일의 읽기 그룹 중 어느 것에도 사용자가 속해 있지 않으면 그 파일은 해당 사용자에게 보이지 않습니다.

## 삭제와 복원

| 작업 | 효과 | 되돌릴 수 있는가 |
| - | - | - |
| **휴지통으로 이동** | 파일의 `active` 플래그를 `false`로 설정합니다. 행과 저장된 파일은 모두 남아 있으며, 파일은 **휴지통**에 나타납니다. | 예, **휴지통에서 복원**으로 |
| **영구 삭제**(행 메뉴) | 파일을 완전히 제거합니다. | 아니요 |

NOTE

**휴지통은 소프트 삭제이며 완전 삭제가 아닙니다**

파일을 휴지통으로 옮기면 숨겨지지만 모든 것이 유지됩니다. **영구 삭제**만이 실제로 제거하며 되돌릴 수 없습니다.

## 레코드에 문서 첨부

문서는 자신이 속한 레코드를 가리키는 링크를 가질 수 있습니다. **원본 문서** 열에 링크가 표시되고 상위 레코드가 열립니다. Alforse는 이 링크를 파일에 `sourceDocument`(레코드 유형)와 `sourceDocumentId`(레코드의 ID)로 저장합니다.

다음 레코드 유형만 문서를 소유할 수 있습니다.

FieldType

<details>
  <summary>**판매 측**</summary>

  견적, 견적 요청(RFQ), 수주, 매출 송장, 매출 반품 주문, 출하.
</details>

<details>
  <summary>**구매 측**</summary>

  발주서, 매입 송장, 매입 반품 주문, 구매 견적 요청(RFQ), 공급업체 견적.
</details>

<details>
  <summary>**생산 및 품질**</summary>

  작업, 게이지 교정 기록, 이슈.
</details>

<details>
  <summary>**서비스 및 보증**</summary>

  수리 오더, 보증 등록.
</details>

<details>
  <summary>**품목**</summary>

  품목, 자재, 공구, 소모품, 서비스.
</details>

<details>
  <summary>**거래 상대방**</summary>

  공급업체, 고객. 거래가 아닌 마스터 레코드이므로, 상대방 자체에 속한 파일에 사용합니다.
</details>

각 레코드가 파일을 표시하는 위치는 [수주](https://docs.alforse.com/ko/docs/reference/sales-orders.md), [발주서](https://docs.alforse.com/ko/docs/reference/purchase-orders.md), [작업](https://docs.alforse.com/ko/docs/reference/jobs.md)을 참조하십시오. 상대방 단위의 문서 탭은 [공급업체 및 고객](https://docs.alforse.com/ko/docs/reference/suppliers-and-customers.md)에서 설명합니다.

## AI 추출

AI 추출은 PDF를 읽고 양식을 미리 채워 다시 입력하지 않도록 합니다. 두 가지 흐름에서만 작동합니다.

| PDF | 흐름 |
| - | - |
| **견적 요청(RFQ)** | 판매 측 |
| **매입 송장** | 구매 측 |

### 추출이 실행되는 방식

두 흐름 중 어느 쪽에든 PDF를 놓으면 상태가 `pending`인 `documentExtraction` 행이 생성되고 백그라운드 작업이 대기열에 들어갑니다. 이후 작업은 다음을 수행합니다.

1. 행을 `processing`으로 설정합니다.
2. 비공개 스토리지에서 PDF를 다운로드하고 PDF 파서로 **텍스트**를 추출합니다. 이미지 OCR이 아닌 텍스트 추출이므로, 이미지로만 된 스캔 PDF에서는 텍스트를 얻을 수 없습니다.
3. 모델이 이름을 실제 ID에 대응시킬 수 있도록 회사의 후보 레코드를 불러옵니다. 송장에는 공급업체와 지급 조건, RFQ에는 고객입니다.
4. 텍스트와 후보 목록을 AI 모델에 보내며, 모델은 모든 필드에 대해 `{ value, confidence }` 쌍으로 응답합니다.
5. **신뢰도 임계값을 적용합니다.** 임계값(기본 `0.85`) 미만의 점수를 받은 필드는 `null`로 설정되어, 불확실한 추측이 양식에 도달하지 않습니다.
6. 날짜를 `YYYY-MM-DD`로 변환하고, 원본 출력과 필터링된 결과를 모두 행에 저장한 다음 상태를 `completed`로 설정합니다.

이후 양식은 필터링된 값으로 스스로 채워집니다. 가능한 경우 추출된 담당자와 주소를 고객 또는 공급업체의 기존 레코드에 대응시킵니다.

NOTE

**ID를 만들어 내지 않고 찾아 줍니다**

모델은 실제 공급업체, 지급 조건 또는 고객 목록을 받아 가장 잘 일치하는 하나의 ID를 반환하거나 `null`을 반환해야 하며, 절대 지어내지 않도록 지시받습니다. 그 결과 `supplierId`, `customerId`, `paymentTermId`는 기존 레코드이거나 비어 있으며, 빈 부분은 양식 자체의 대응 기능이 채웁니다.

### 추출되는 필드

| 필드 그룹 | 매입 송장 | 견적 요청(RFQ) |
| - | - | - |
| 상대방 | 공급업체 이름, 담당자, 주소, 확인된 `supplierId` | 고객 이름, 확인된 `customerId`, 구매 담당자와 엔지니어링 담당자(별도), 고객 주소 |
| 헤더 | 송장 번호, 송장 및 마감일, 확인된 `paymentTermId`가 있는 지급 조건, 참조 발주 번호, 통화 | RFQ 번호, RFQ 날짜, 마감일, 요청 납기일 |
| 금액 | 소계, 세금, 배송비, 합계 | 없음 |
| 라인 항목 | 부품 번호, 설명, 수량, 단가, 라인 합계 | 부품 번호, 설명, 수량 |

HEADS UP

**추출은 초안이며 확정이 아닙니다**

`documentExtraction` 행은 임시 보관일 뿐이며 스스로 송장이나 RFQ를 생성하지 않습니다. 값은 일반 양식을 미리 채우고, 실제 레코드는 저장할 때 일반적인 권한 검사를 거치는 경로 액션으로 생성됩니다. 백그라운드 작업을 대기열에 넣지 못하거나 구문 분석에 실패하면 행이 오류와 함께 `failed`로 표시되며, 양식은 직접 채웁니다.

좋은 결과를 얻으려면 텍스트 기반 PDF가 필요합니다. 추출을 사용할 수 없거나 실패해도 두 흐름은 계속 작동하며 필드를 직접 입력하면 됩니다.

NOTE

**문서 템플릿 커스터마이저가 아닙니다**

이 페이지는 파일 라이브러리를 다룹니다. Alforse가 *생성하는* PDF(견적, 주문 확인서, 송장)를 위한 드래그 앤 드롭 커스터마이저인 **문서 템플릿** 기능은 별도의 하위 시스템이며 여기서는 설명하지 않습니다.

## 스토리지 할당량

모든 회사에는 Alforse에 보관하는 파일을 위한 스토리지 할당량이 있습니다. 기본값은 **32 GB**입니다. 더 큰 할당량은 플랜에 포함되거나 Alforse와 협의할 수 있으며, 직접 변경할 수는 없습니다.

* **집계 대상:** 여기에 나열된 파일뿐 아니라 레코드의 첨부 파일을 포함한 회사의 모든 저장된 파일입니다. 아직 진행 중인 업로드도 포함됩니다.
* **휴지통은 공간을 비우지 않습니다.** **휴지통으로 이동**은 저장된 파일을 유지하므로 계속 집계됩니다.

할당량을 초과하게 되는 업로드는 저장되기 전에 HTTP `413`과 다음 메시지로 거부됩니다.

> The company's storage quota is used up: *X* of *Y* are in use and this file needs *Z*. Delete files you no longer need or ask for a larger quota.
> (회사의 스토리지 할당량이 모두 사용되었습니다. *Y* 중 *X*를 사용 중이며 이 파일에는 *Z*가 필요합니다. 필요 없는 파일을 삭제하거나 더 큰 할당량을 요청하세요.)

*X*는 회사가 이미 사용한 양, *Y*는 할당량, *Z*는 거부된 파일의 크기입니다. 계속하려면 필요 없는 파일을 삭제하거나 Alforse 지원팀에 더 큰 할당량을 문의하십시오.

## 문제 해결

| 증상 | 원인 | 해결 방법 |
| - | - | - |
| 삭제한 파일이 계속 나열되거나 되돌아옴 | **휴지통으로 이동**은 소프트 삭제이며 **휴지통에서 복원**으로 되돌립니다. | 행 메뉴의 **영구 삭제**를 사용하여 파일을 완전히 제거하십시오. |
| 사용자가 파일을 볼 수 없거나 링크가 열리지 않음 | 사용자가 파일의 `readGroups` 어디에도 속하지 않거나 `documents` 보기 권한이 없습니다. | 사용자의 회사 그룹 중 하나를 읽기 그룹에 추가하거나 보기 권한을 부여하십시오. |
| 파일 안의 텍스트가 검색되지 않음 | 검색은 **이름**과 **설명**만 대상으로 합니다. | 파일 이름을 바꾸거나 설명을 추가하거나, 열 필터로 목록을 좁히십시오. |
| 스캔한 PDF에서 추출 결과가 없음 | 추출은 이미지가 아닌 텍스트를 읽습니다. | 텍스트 기반 PDF를 사용하거나 양식을 직접 채우십시오. |
| 예상한 필드가 미리 채워지지 않음 | 신뢰도가 임계값(기본 `0.85`) 미만이었거나, `supplierId`, `customerId`, `paymentTermId`와 일치하는 기존 레코드가 없었습니다. | 양식에서 해당 필드를 직접 입력하십시오. |
| 추출 행이 `failed`로 표시됨 | 작업을 대기열에 넣지 못했거나 구문 분석에 실패했습니다. | 양식을 직접 채우십시오. 행은 스스로 레코드를 생성하지 않습니다. |
| 업로드가 "The company's storage quota is used up"로 실패 | 파일이 회사를 스토리지 할당량 초과 상태로 만듭니다. | 필요 없는 파일을 삭제하거나(휴지통으로 옮기는 것만으로는 부족), Alforse 지원팀에 더 큰 할당량을 요청하십시오. |


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