> For the complete documentation index, see [llms.txt](https://documentation.soulver.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.soulver.app/ko/undefined-1/x.md).

# Soulver X 시리즈

## Soulver X Series란 무엇인가요?

2024년, 저희는 다음 목표를 가진 다년간의 R\&D 프로젝트를 시작했습니다:

* Soulver를 위한 멋진 새로운 아이디어 탐색
* 새로운 형태 및 새로운 워크플로우 모색
* 어떤 메모장 계산기도 가보지 못한 영역에 과감하게 진출 🖖

저희는 매년 주요 새로운 X 시리즈 버전을 출시할 계획입니다.

### Soulver X Series 후원

오랫동안 사용해 오신 분(또는 Soulver 열혈 팬)이시고, 이 작업에 흥미를 느끼신다면, [GitHub에서 저희의 사명에 후원](https://soulver.app/sponsor)하는 것을 고려해 보실 수 있습니다.

또한, 후원자로서 메모장 계산기 분야에서 이전에 볼 수 없었던 더 많은 기능을 갖춘 최신 X 시리즈 프로토타입(X3, X4 등)에 접근할 수 있습니다.

저희(매우) 작은 팀은 여러분의 지원에 감사드리며, 이를 통해 이러한 고급 메모장 계산기 R\&D에 더 많은 자원을 투입할 수 있게 될 것입니다.

## Soulver X2 (2025)

### 서브시트 (Subsheets)

* 서브시트는 단일 토큰 내에 존재하는 별도의 시트입니다.
  * 탭 표시줄의 + 버튼에서 서브시트를 생성합니다.
  * 보라색 토큰을 더블클릭하여 서브시트 편집기를 엽니다.
* 서브시트는 모시트의 변수를 참조할 수 있습니다 (변수가 서브시트 줄 위에 선언된 경우).

### 범위가 있는 슬라이더 토큰 (Slider Tokens with Ranges)

* 슬라이더 토큰을 사용하면 스크러빙 가능한 슬라이더의 범위를 지정할 수 있습니다.
  * 탭 표시줄의 + 버튼에서 슬라이더를 생성합니다.
  * 녹색 토큰을 더블클릭하여 슬라이더 팝업을 엽니다.

### 구분선 (Divider Lines)

* 대시(-)를 세 번 입력하여 구분선을 삽입합니다.
* 구분선을 사용하여 시트의 다른 부분 사이에 시각적 구분을 더할 수 있습니다.

## Soulver X1 (2024)

X1에는 다음을 포함하여 Soulver의 주요 기능 요청 사항들이 구현되었습니다:

* [사용자 지정 함수 지원](https://soulver.app/feedback) (*자연어 함수 포함*)
* [시트 간 변수 공유](https://soulver.app/feedback) (*새로운 "헤더" 시트를 통해*)
* [Web API 연결](https://soulver.app/feedback) (*붙여넣기 및 몇 번의 클릭만으로*)

### 탭 (Tabs)

<figure><img src="/files/HWS4mJtrbLpAlOgigr0z" alt=""><figcaption><p>Soulver X1의 여러 탭</p></figcaption></figure>

Soulver X1의 문서는 단일 탭으로 시작하며, 탭 표시줄 오른쪽의 + 버튼을 클릭하여 더 많은 탭을 추가할 수 있습니다.

**탭 이름 변경**

탭의 제목을 더블클릭하여 다른 이름으로 지정할 수 있습니다. 또는, 탭을 제어 클릭하고 "이름 변경"을 선택합니다.

**탭 삭제**

탭 위에 마우스를 올린 후 x 버튼을 클릭하여 삭제합니다. 또는, 탭을 제어 클릭하고 "삭제"를 선택합니다.

{% hint style="warning" %}
탭은 작업 중인 기능입니다.

탭 순서를 재배열할 수 없으며(아직), 단일 문서에 너무 많은 탭을 추가하면 올바르게 작동하지 않습니다.
{% endhint %}

### 헤더 시트 (The header sheet)

헤더는 문서의 모든 탭에서 사용될 수 있는 변수, 단위, 함수 및 웹 값을 정의하는 전용 시트입니다.

<figure><img src="/files/fFUJN3b8ecrgccYA3wJE" alt="" width="375"><figcaption></figcaption></figure>

### **탭 간 변수 (Cross-tab variables)**

문서의 변수는 헤더에서 로컬 변수를 선언하는 방식과 동일하게 선언합니다.

예를 들어:

```
my variable = 123
```

`my variable`은 모든 시트에서 사용 가능합니다.

{% hint style="info" %}
탭은 변수를 참조할 수만 있고, 문서의 다른 시트에 적용될 수 있도록 그 정의를 수정할 수는 없습니다.
{% endhint %}

### **등가 단위 (Equivalence units)**

등가 단위는 기존 단위를 기준으로 정의됩니다.

헤더에서 다음을 사용하여 새로운 등가 단위를 정의합니다 (예시):

```
1 watermelon = 10 lb
```

<figure><img src="/files/ieTTAcWbvxf3sudc4T4b" alt=""><figcaption><p>Soulver X1에서 새로운 질량 단위 선언하기</p></figcaption></figure>

이제 `watermelon`을 탭 전반에 걸쳐 질량 단위로 사용할 수 있습니다.

<figure><img src="/files/3f2OcwkiUJM117zUXCgC" alt=""><figcaption><p>Soulver X1에서 사용자 지정 등가 단위 사용하기</p></figcaption></figure>

{% hint style="info" %}
Soulver X1은 새로운 단위를 자동으로 복수형으로 만들어 줍니다 (영어 기준).

따라서 이 예시에서 정의가 "watermelon"이었더라도 "watermelons" 둘 다 유효한 단위 이름으로 인식됩니다.
{% endhint %}

### **일반 단위 (Generic units)**

등가 단위는 기존 단위에 기반하여 정의되지 않은 완전히 새로운 단위 유형입니다.

헤더에서 다음을 사용하여 새로운 일반 단위를 정의합니다 (예시):

```
operation = new unit
```

<figure><img src="/files/i51GVqAhhBVOoXdP7yfY" alt=""><figcaption><p>Soulver X1에서 일반 단위 유형 선언하기</p></figcaption></figure>

이제 `operation` 단위를 탭 전반(비율 계산 포함)에 걸쳐 사용할 수 있습니다:

<figure><img src="/files/RhNdgwyqcHTMvNy7Qs1v" alt=""><figcaption><p>Soulver X1에서 일반 단위 사용하기</p></figcaption></figure>

### **사용자 지정 함수 (Custom functions)**

**소개**

함수는 입력을 받아 출력을 반환하는 유용한 구문입니다. Soulver X1에서는 다음을 포함하여 거의 모든 구문을 함수에 사용할 수 있습니다:

C 스타일: `doSomething(123)`

Swift 스타일: `doSomething(with: 123)`

자연어: `do something with 123`

**새 사용자 지정 함수 생성하기 (헤더에서)**

* `새로 정의` > `함수`를 클릭합니다.

**함수 이름 선택:**

<figure><img src="/files/8PsUnHa0ezXpL9s1mGth" alt=""><figcaption><p>Soulver X1에서 새 함수 선언하기</p></figcaption></figure>

* 함수를 실제로 사용할 수 있는 예시를 사용하여 함수를 정의합니다.
* 원하는 매개변수(돈, 시간, 일반 소수점 숫자 등과 같이 구현에 예상되는 매개변수의 "유형"과 일치하는 한)를 선택합니다.

**함수 구현하기:**

<figure><img src="/files/fNCJpZQ1p7Y1RQuvkv2L" alt=""><figcaption><p>특정 금액에 대한 판매세액을 계산하는 함수 작성하기</p></figcaption></figure>

* 전용 Soulver 시트에 함수를 구현합니다. 모든 매개변수는 노란색 토큰으로 주입됩니다.
* 매개변수 토큰 위에 마우스를 올리면 선언에서 해당 매개변수가 무엇을 참조하는지 확인할 수 있습니다.
* 구현 시트의 마지막 줄이 함수의 최종 값으로 반환됩니다.

**함수 사용하기**

<figure><img src="/files/8zkES9l799A7vu7Fv1Sy" alt=""><figcaption></figcaption></figure>

다른 입력 값과 함께 모든 시트에서 함수를 사용합니다.

### **웹 값 (JSON API 연결)**

#### **새 웹 값 생성하기 (헤더에서)**

* `새로 정의` > `웹 값`을 클릭합니다.

#### **JSON 데이터 피드 내 특정 데이터 포인트 연결하기**

<figure><img src="/files/QZMzaIExypQ27zRpzbIK" alt=""><figcaption><p>Soulver X1에서 원격 데이터 피드에 연결하기</p></figcaption></figure>

* JSON 데이터 피드의 URL을 붙여넣은 다음, 연결하려는 데이터 포인트를 클릭하기만 하면 됩니다.

#### **웹 값 사용하기**

* 웹 값에는 변수 이름이 할당됩니다 (기본적으로 JSON 피드의 설명과 일치).
* 변수 이름을 다른 것으로 변경해도 됩니다.

#### **웹 값 업데이트하기**

* 웹 값은 설정 시 지정한 빈도로 백그라운드에서 자동으로 업데이트됩니다.

#### **웹 값 편집하기**

* 헤더의 노란색 웹 값 토큰을 더블클릭하여 다른 데이터 포인트를 지정하거나 업데이트 빈도를 변경할 수 있습니다.

## Soulver X Series 파일 형식

{% hint style="warning" %}
Soulver X 시리즈 앱은 Soulver와 다른 문서 유형(.slvrx)을 사용합니다.

이는 저희가 구축하고 실험하고 있는 새로운 기능을 지원하기 위함입니다.

Soulver X (.slvrx) 파일은 Mac, iOS 및 iPad용 Soulver 3에서 편집할 수 없습니다.
{% endhint %}
