Skip to content

이름의 문법

API를 알파벳순으로 훑기 전에 규칙 하나만 알면 된다 — attach가 붙었는가.

attach 없는 이름 — 계산만 한다

rsi(), macd(), bollingerBands() 같은 함수는 DOM도 캔버스도 모른다. 데이터를 받아 값을 계산해 반환할 뿐이다. 반환값(Rsi, Macd, …)은 화면에 아무것도 그리지 않는다 — 숫자, 혹은 다른 계산의 입력으로 쓰라고 만든 계산 노드다. headless로 테스트할 수 있는 건 이 절반 덕분이다.

ts
import { rsi } from "@finchart/indicators";

const node = rsi(source, { period: 14 }); // 화면 없이도 값이 나온다

attach 있는 이름 — pane에 얹는다

attachRsi(), attachMacd(), attachBollingerBands()처럼 attach가 붙은 함수는 Plot을 받아 pane에 시리즈를 얹고, 축·기준선까지 배선한 다음 dispose()를 돌려준다. 내부적으로 같은 이름의 bare 함수를 그대로 호출한다 — attachRsirsi()를 불러 쓰고 위에 pane 배선을 얹은 것뿐이다. 계산과 렌더링이 같은 함수에 안 섞여 있는 이유가 이거다.

ts
import { attachRsi } from "@finchart/indicators";

const rsiPlugin = plot.use(attachRsi({ source, period: 14 })); // 화면에 나온다

여담이지만 이 규칙 때문에 API Reference를 알파벳순으로 보면 attach* 11개가 전부 A 근처에 뭉쳐 있다 — 이름 규칙이 만든 구조적 사실이지, 목록이 잘못된 게 아니다.

두 개의 core 진입점

@finchart/core는 진입점이 둘이다.

  • @finchart/core — 계산·모델 전부. DOM을 몰라도 된다(headless 테스트가 이 경계 덕분에 가능하다).
  • @finchart/core/domtooltip()·legend()처럼 DOM 요소를 직접 만들고 붙이는 것들. 브라우저가 있어야 쓴다.

패키지가 이렇게 갈린 이유는 ADR-0024에 있다.