🕓 작성일: 2026-04-14, 최종 수정: 2026-05-09. TS / Python / PHP SDK는 이제 공개 레지스트리에서 관리됩니다 —
@astroway/sdk(npm),astroway(PyPI),astroway/sdk(Packagist). 자세한 내용은 changelog를 참고하세요.
휴먼 디자인은 1990년대 니치한 영적 시스템에서 개인 개발 프레임워크로 성장했습니다. 수백만 사용자를 보유한 앱들이 이를 표준화하면서 개발자들은 프로그래밍 방식으로 Human Design 차트를 계산하는 방법을 묻기 시작했습니다.
이 글에서는 기술적인 측면을 다룹니다: HD 계산이란 무엇이며, 어떤 API가 이를 지원하는지, 그리고 어떻게 앱에 HD 기능을 통합할 수 있는지 알아보겠습니다.
기술적으로 본 Human Design
섹션 제목: “기술적으로 본 Human Design”Human Design는 세 가지 고전 시스템을 기반으로 합니다:
- 서양 점성술 — 출생 당시 행성의 위치
- 易經(I Ching) — 64 hexagram(육십사괘)이 64개의 ‘게이트’로 매핑됨
- 차크라 시스템 — 아홉 개의 ‘센터’(에너지 노드)
계산은 출생 데이터를 기반으로 bodygraph라는 시각적 차트를 생성합니다. 여기에는 다음이 포함됩니다:
- Type (Manifestor, Generator, Manifesting Generator, Projector, Reflector) — 에너지 서명
- Strategy — 의사결정을 내리는 방법
- Authority — 의사결정 시 신뢰할 센터 (Sacral, Emotional, Splenic 등)
- Profile — 선의 조합 (1/3, 4/6 등)
- Channels — 센터 간의 연결로 개인의 성격 형성
- Incarnation Cross — 네 가지 핵심 위치에서 파생된 생의 목적
내부적으로 64개의 게이트 각각은 황도 경도의 범위에 해당합니다. 출생 당시 행성의 경도는 특정 게이트(및 해당 게이트 내 행)로 매핑됩니다. ‘Design’ 계산은 출생 88° 이전의 태양 위치를 기준으로 하며, 이는 약 3개월 전을 의미합니다.
두 개의 차트: Personality와 Design
섹션 제목: “두 개의 차트: Personality와 Design”Human Design는 두 개의 출생 시점을 사용합니다:
- Personality — 실제 출생 시간. 이는 ‘의식적인’ 측면을 나타냅니다.
- Design — 출생 위치에서 태양이 88° 이전 위치에 있었을 때의 시간. 이는 ‘무의식적인’ 측면을 나타냅니다.
각 게이트의 활성화는 이 중 하나에 속합니다. 전체 차트는 13 + 13 = 26개의 활성화로 구성됩니다.
이 때문에 HD 계산은 표준 점성술 차트보다 복잡합니다. 사실상 두 개의 차트를 계산해야 하기 때문입니다.
Human Design를 지원하는 API
섹션 제목: “Human Design를 지원하는 API”대부분의 점성술 API는 HD를 전혀 지원하지 않거나, 표면적인 지원(타입 + 전략만)만 제공합니다. 완전한 HD 구현을 위해서는 다음이 필요합니다:
- 64개 게이트의 매핑(lookup table)
- 각 게이트당 6개 행(총 384개 셀)
- 정의됨/열림 로직이 있는 9개 센터
- 두 센터를 연결하는 36개 채널
- Incarnation Cross 계산
- Personality와 Design의 태양 게이트 및 지구 게이트 행을 기반으로 한 Profile 출력
이 모든 기능을 지원하는 API는 매우 드뭅니다. AstroWay API는 12개의 HD 엔드포인트를 제공하며, 이는 상업용 API 중 가장 포괄적인 구현입니다.
AstroWay의 12개 HD 엔드포인트
섹션 제목: “AstroWay의 12개 HD 엔드포인트”| 엔드포인트 | 크레딧 | 반환 내용 |
|---|---|---|
/v1/human-design | 50 | 전체 HD 차트 |
/v1/human-design/transits | 50 | 특정 날짜의 HD 트랜짓 |
/v1/human-design/compatibility | 100 | 두 HD 차트의 호환성 |
/v1/hd/incarnation-cross | 50 | Incarnation Cross |
/v1/hd/dream-rave | 50 | Dream Rave 차트 |
/v1/hd/hologenetic | 50 | Hologenetic Profile |
/v1/hd/sensitivity | 50 | 시간 민감도 분석 |
/v1/hd/circuitry | 20 | 회로 분석 |
/v1/hd/penta | 100 | Penta — 3~5인 그룹 역학 |
/v1/hd/group-overlay | 100 | Group overlay |
/v1/hd/design-date | 10 | Design 날짜 계산 |
/v1/hd/rave-new-years | 10 | Rave New Year 날짜 |
HD 기능 추가하기
섹션 제목: “HD 기능 추가하기”기존 점성술 앱에 HD를 추가한다고 상상해 보세요. 가장 먼저 전체 엔드포인트를 사용하세요:
import { Astroway } from '@astroway/sdk';
const client = new Astroway({ apiKey: process.env.ASTROWAY_API_KEY! });
const hd = await client.humanDesign({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234,});
console.log(`Type: ${hd.type}`); // 예: "Generator"console.log(`Strategy: ${hd.strategy}`); // 예: "To Respond"console.log(`Authority: ${hd.authority}`); // 예: "Sacral"console.log(`Profile: ${hd.profile}`); // 예: "1/3"console.log(`Defined channels: ${hd.channels.length}`);응답 형식:
{ "type": "Generator", "strategy": "To Respond", "notSelfTheme": "Frustration", "authority": "Sacral", "profile": "1/3", "definition": "single", "cross": { "name": "Right Angle Cross of the Sphinx", "quarter": "Civilization", "gates": [1, 2, 7, 13] }, "centers": [ { "name": "Sacral", "defined": true }, ... ], "channels": [ { "gate1": 34, "gate2": 20, "name": "Channel of Charisma", "type": "Generated" } ], "personalityActivations": [...], "designActivations": [...]}Penta를 통한 그룹 역학
섹션 제목: “Penta를 통한 그룹 역학”Penta는 3~5명으로 구성된 팀의 역학을 이해하는 기술입니다. 대부분의 HD 계산기는 이를 제공하지 않지만, HR-tech, 코칭 플랫폼, 팀 빌딩 앱에게는 invaluable한 기능입니다.
const penta = await client.hdPenta({ members: [ { date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.45, longitude: 30.52 }, { date: '1988-03-10', time: '08:15:00', timezoneOffset: 2, latitude: 48.85, longitude: 2.35 }, { date: '1985-11-22', time: '18:00:00', timezoneOffset: -5, latitude: 40.71, longitude: -74.00 }, ],});
console.log(`Penta type: ${penta.type}`);console.log(`Defined channels in group: ${penta.definedChannels.length}`);민감도 분석 — 정확성을 위한 핵심
섹션 제목: “민감도 분석 — 정확성을 위한 핵심”HD 차트는 출생 시간에 매우 민감합니다. 10분의 오차로도 Profile이 바뀔 수 있습니다(예: 1/3 → 1/4). 정확한 출생 시간을 모르는 사용자에게 민감도 분석을 실행하세요:
const sensitivity = await client.hdSensitivity({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234,});
// sensitivity는 ±5/15/30분의 시간 변화에 어떤 필드가 바뀌는지 보여줌사용자에게 “이 정확도로는 당신의 profile이 바뀔 수 있습니다. rectification을 고려해 보세요.”라고 경고하세요.
HD 앱을 위한 요금제
섹션 제목: “HD 앱을 위한 요금제”HD에 집중하는 앱을 만들고 있다면:
- 기본 사용자: 등록 시 1회 HD 차트 캐시(영구) = 50크레딧
- 활발한 사용자: 주기적 트랜짓 + 호환성 = 월 약 200크레딧
- 100 DAU(보통 HD 사용량): 월 약 110,000크레딧 → **Starter ($19/월)**로 충분히 커버 가능
- 1,000 DAU: 월 약 150,000크레딧 → Pro ($59/월)
호환성 요청은 가장 비용이 많이 듭니다(100크레딧). 각 사용자 쌍의 결과를 영구 캐시하세요(변경되지 않음).
시각화
섹션 제목: “시각화”Bodygraph 렌더링은 전통적으로 SVG로 구현됩니다. API는 센터와 채널 데이터를 반환하며, 당신은 이 데이터를 기반으로 시각화를 구현합니다. 예시:
function Bodygraph({ hd }: { hd: HDChart }) { return ( <svg viewBox="0 0 400 600"> {hd.centers.map(c => ( <polygon key={c.name} points={CENTER_COORDS[c.name]} fill={c.defined ? CENTER_COLORS[c.name] : 'white'} stroke="black" /> ))} {hd.channels.map(ch => ( <line key={`${ch.gate1}-${ch.gate2}`} x1={GATE_COORDS[ch.gate1].x} y1={GATE_COORDS[ch.gate1].y} x2={GATE_COORDS[ch.gate2].x} y2={GATE_COORDS[ch.gate2].y} stroke="#d4a84c" strokeWidth="3" /> ))} </svg> );}좌표는 고정된 템플릿입니다(모든 bodygraph는 동일한 9개 센터와 동일한 위치의 64개 게이트를 가집니다).
HD 기능 구축 시작하기
섹션 제목: “HD 기능 구축 시작하기”- Human Design API — 모든 엔드포인트 목록이 있는 제품 페이지
- 예제: Human Design —
/v1/human-design상세 walkthrough - 빠른 시작 — 무료 API 키 받기(월 200 HD 차트까지 무료)
Solar Fire에 사용된 것과 동일한 Swiss Ephemeris — 단 4줄의 코드로.
카드 없이 무료 키. 첫 결제 전까지 월 5,000 API 호출.