# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.soulver.app/ko/undefined-1/x.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
