ssaju
v0.2.0
Published
Tiny, blazing-fast saju/manselyeok engine with LLM-ready output. Zero deps, gzip 15KB, 0.04ms per calc.
Downloads
1,529
Maintainers
Readme
ssaju
🐶작고 ⚡빠른 사주/만세력 라이브러리.
gzip 15KB · 계산 0.04ms · 의존성 0개
npm install ssaju생년월일 하나 넣으면 원국, 십성, 12운성, 합충형파해, 신살, 격국, 용신, 대운, 세운, 월운, 공망까지 한 방에 다 나옵니다.
LLM한테 먹이기 좋은 toCompact()랑 사람 눈에 예쁜 toMarkdown() 두 가지 출력 탑재.
🤔 왜 ssaju?
| | | |:--|:--| | 🐶 작다 | gzip 15KB, 의존성 제로 | | ⚡ 빠르다 | 평균 0.04ms, 초당 24,000건 처리 | | 🎯 정확하다 | 한국천문연구원 음력 데이터와 천문학적 계산에 기반한 근사 공식 사용 및 절입시각(시/분) 기준 계산 | | 🤖 LLM-ready | 사주 해석에 필요한 거의 모든 정보를 LLM friendly하게 950토큰으로 압축 제공 |
🚀 3초 컷
import { calculateSaju } from "ssaju";
const result = calculateSaju({
year: 2001, month: 11, day: 3,
hour: 14, minute: 20,
gender: "남",
});
result.toCompact(); // 🤖 LLM한테 던지세요
result.toMarkdown(); // 👀 사람한테 보여주세요📦 API
| 함수 | 하는 일 |
|:--|:--|
| calculateSaju(input) | 사주 분석 풀 패키지 🎁 |
| result.toCompact() | LLM용 압축 텍스트 🤖 |
| result.toMarkdown() | 사람용 Markdown 테이블 👀 |
| lunarToSolar(y, m, d, leap) | 음력 → 양력 🌙→☀️ |
| solarToLunar(y, m, d) | 양력 → 음력 ☀️→🌙 |
calculateSaju({
// 필수
year: 2001,
month: 11,
day: 3,
// 선택 (다 안 넣어도 됨)
hour: 14, // 기본 12
minute: 20, // 기본 0
gender: "남", // "남" | "여"
calendar: "solar", // "solar" | "lunar"
leap: false, // 음력 윤달 여부
timezone: "Asia/Seoul",
longitude: 126.9784, // applyLocalMeanTime=true일 때
applyLocalMeanTime: false,
now: new Date(), // 테스트/재현용 기준 시각
});📊 출력 비교
| 포맷 | 토큰 수 | 언제 쓰나 |
|:--|--:|--:|
| toCompact() | ~950 | 🤖 LLM API 호출할 때 |
| toMarkdown() | ~2,170 | 👀 UI에 예쁘게 보여줄 때 |
🔍 출력 샘플
## 기본
2001.11.03 14:20 남 양력 Asia/Seoul 만 24세
일간 庚(경)금+ 강약: 강(78) 격: 인수격 용신: 己, 丙, 癸
## 원국
시 | 일 | 월 | 연
干 癸(계)수- | 庚(경)금+ | 戊(무)토+ | 辛(신)금-
支 未(미)토- | 午(오)화+ | 戌(술)토+ | 巳(사)화-
장간 丁,乙,己 | -,己,丁 | 辛,丁,戊 | 戊,庚,丙
干성 상관 | (일간) | 편인 | 겁재
支성 정인 | 정관 | 편인 | 편관
봉12 관대 | 목욕 | 쇠 | 장생
거12 장생 | 목욕 | 절 | 관대
12살 망신살 | 월살 | 역마살 | 년살
특살 천을귀인 | - | 화개살 | -
## 오행
干: 목0 화0 토1 금2 수1 | 支: 목0 화2 토2 금0 수0 | 계: 목0 화2 토3 금2 수1
공망 戌(술) 亥(해)
길신: 천을귀인, 화개 / 흉신: -
## 관계
干합: 癸戊 → 화 | 방합: 巳午未 남방화국 | 반합: 午戌 → 화국 | 육합: 未午 | 형: 未戌 | 파: 未戌 | 원진: 戌巳
## 대운 역행 시작 9세 현재 ★丙申(19~28 잔여 4년)
9(2010) 丁酉 정관/겁재 제왕 -
★19(2020) 丙申 편관/비견 건록 -
29(2030) 乙未 정재/정인 관대 천을귀인
39(2040) 甲午 편재/정관 목욕 -
49(2050) 癸巳 상관/편관 장생 -
59(2060) 壬辰 식신/편인 양 -
69(2070) 辛卯 겁재/정재 태 도화살
79(2080) 庚寅 비견/편재 절 -
89(2090) 己丑 정인/정인 묘 천을귀인
99(2100) 戊子 편인/상관 사 역마살
## 세운 2026 기준
2021 辛丑 겁재/정인 묘
2022 壬寅 식신/편재 절
2023 癸卯 상관/정재 태
2024 甲辰 편재/편인 양
2025 乙巳 정재/편관 장생
★2026 丙午 편관/정관 목욕
2027 丁未 정관/정인 관대
2028 戊申 편인/비견 건록
2029 己酉 정인/겁재 제왕
2030 庚戌 비견/편인 쇠
## 월운 2026
1월 庚寅 비견/편재 절
2월 辛卯 겁재/정재 태
3월 壬辰 식신/편인 양
4월 癸巳 상관/편관 장생
5월 甲午 편재/정관 목욕
6월 乙未 정재/정인 관대
7월 丙申 편관/비견 건록
8월 丁酉 정관/겁재 제왕
9월 戊戌 편인/편인 쇠
10월 己亥 정인/식신 병
11월 庚子 비견/상관 사
12월 辛丑 겁재/정인 묘
## 만세력
이달 庚寅 다음 辛卯 오늘 丁丑 내일 戊寅 (2026-03-04)## 기본 정보
- 생년월일: 2001년 11월 3일 14:20
- 성별: 남성
- 역법: 양력
- 시간대: Asia/Seoul
- 일간: 庚 (경금, 양)
## 사주 4주 (남성)
| | 시주 | 일주 | 월주 | 연주 |
|:---:|:---:|:---:|:---:|:---:|
| 천간 | 癸(계) | 庚(경) | 戊(무) | 辛(신) |
| 오행/음양 | 수/음 | 금/양 | 토/양 | 금/음 |
| 지지 | 未(미) | 午(오) | 戌(술) | 巳(사) |
| 오행/음양 | 토/음 | 화/양 | 토/양 | 화/음 |
## 지장간
| 구분 | 시주(未) | 일주(午) | 월주(戌) | 연주(巳) |
|:---:|:---:|:---:|:---:|:---:|
| 여기 | 丁 | - | 辛 | 戊 |
| 중기 | 乙 | 己 | 丁 | 庚 |
| 정기 | 己 | 丁 | 戊 | 丙 |
## 오행 분포
| 구분 | 목 | 화 | 토 | 금 | 수 |
|:---:|:---:|:---:|:---:|:---:|:---:|
| 천간 | 0 | 0 | 1 | 2 | 1 |
| 지지 | 0 | 2 | 2 | 0 | 0 |
| 합계 | 0 | 2 | 3 | 2 | 1 |
## 십성 & 12운성
| 구분 | 시주 | 일주 | 월주 | 연주 |
|:---:|:---:|:---:|:---:|:---:|
| 천간십성 | 상관 | (일간) | 편인 | 겁재 |
| 지지십성 | 정인 | 정관 | 편인 | 편관 |
| 봉법12운성 | 관대 | 목욕 | 쇠 | 장생 |
| 거법12운성 | 장생 | 목욕 | 절 | 관대 |
## 관계 해석 근거
- 천간 관계: 癸戊 합 → 화
- 지장간: 시주 여기:丁 중기:乙 정기:己 / 일주 중기:己 정기:丁 / 월주 여기:辛 중기:丁 정기:戊 / 연주 여기:戊 중기:庚 정기:丙
- 지지 관계: 방합: 巳午未 방합 남방화국 | 반합: 午戌 반합 → 화국 | 육합: 未午 육합 | 형: 未戌 형 | 파: 未戌 파 | 원진: 戌巳 원진
## 관계 강도 (우선순위)
- 1순위 지지 형 (점수 4.5): 긴장/소모 누적 가능성 | 未戌 형
- 2순위 지지 파 (점수 3.5): 관계 균열/계획 변동 가능성 | 未戌 파
- 3순위 지지 원진 (점수 2.8): 감정적 피로 누적 가능성 | 戌巳 원진
- 4순위 지지 방합 (점수 2.4): 방향성/세력화 포인트 | 巳午未 방합 남방화국
- 5순위 지지 육합 (점수 2.2): 협력/완충 포인트 | 未午 육합
- 6순위 천간 합 (점수 2.0): 완충/협력 가능성 | 癸戊 합 → 화
- 7순위 지지 반합 (점수 1.8): 조건부 협력 포인트 | 午戌 반합 → 화국
## 해석 시 주의 포인트 (충/형 중심)
- 지지 형: 未戌 형 -> 압박/피로 누적 구간이 생기기 쉬워 갈등 확대 전에 조정이 필요합니다.
- 지지 파: 未戌 파 -> 계획의 균열이나 기대치 차이로 인한 이탈 신호를 점검하세요.
## 사주별 신살
| 구분 | 시주 | 일주 | 월주 | 연주 |
|:---:|:---:|:---:|:---:|:---:|
| 12신살 | 망신살 | 월살 | 역마살 | 년살 |
| 특수신살 | 천을귀인 | - | 화개살 | - |
## 공망 (空亡)
- 공망: 戌(술), 亥(해)
## 고급 분석
- 일간 강약: 강함 (78)
- 격국: 인수격
- 용신: 己, 丙, 癸
- 길신: 천을귀인, 화개
- 흉신: -
## 대운
- 시작나이: 9세 (정밀 8.67세)
- 현재 대운: 丙申 (19세~28세, 잔여 4년)
| 대운나이 | 간지 | 천간십성 | 지지십성 | 12운성 | 신살 |
|:---:|:---:|:---:|:---:|:---:|:---:|
| 9세 | 丁酉 | 정관 | 겁재 | 제왕 | - |
| 19세 ★ | 丙申 | 편관 | 비견 | 건록 | - |
| 29세 | 乙未 | 정재 | 정인 | 관대 | 천을귀인 |
| 39세 | 甲午 | 편재 | 정관 | 목욕 | - |
| 49세 | 癸巳 | 상관 | 편관 | 장생 | - |
| 59세 | 壬辰 | 식신 | 편인 | 양 | - |
| 69세 | 辛卯 | 겁재 | 정재 | 태 | 도화살 |
| 79세 | 庚寅 | 비견 | 편재 | 절 | - |
| 89세 | 己丑 | 정인 | 정인 | 묘 | 천을귀인 |
| 99세 | 戊子 | 편인 | 상관 | 사 | 역마살 |
## 세운 (2026년 기준)
| 연도 | 간지 | 천간십성 | 지지십성 | 12운성 |
|:---:|:---:|:---:|:---:|:---:|
| 2021 | 辛丑 | 겁재 | 정인 | 묘 |
| 2022 | 壬寅 | 식신 | 편재 | 절 |
| 2023 | 癸卯 | 상관 | 정재 | 태 |
| 2024 | 甲辰 | 편재 | 편인 | 양 |
| 2025 | 乙巳 | 정재 | 편관 | 장생 |
| 2026 ★ | 丙午 | 편관 | 정관 | 목욕 |
| 2027 | 丁未 | 정관 | 정인 | 관대 |
| 2028 | 戊申 | 편인 | 비견 | 건록 |
| 2029 | 己酉 | 정인 | 겁재 | 제왕 |
| 2030 | 庚戌 | 비견 | 편인 | 쇠 |
## 월운 (2026년)
| 월 | 간지 | 천간십성 | 지지십성 | 12운성 |
|:---:|:---:|:---:|:---:|:---:|
| 인월(1월) | 庚寅 | 비견 | 편재 | 절 |
| 묘월(2월) | 辛卯 | 겁재 | 정재 | 태 |
| 진월(3월) | 壬辰 | 식신 | 편인 | 양 |
| 사월(4월) | 癸巳 | 상관 | 편관 | 장생 |
| 오월(5월) | 甲午 | 편재 | 정관 | 목욕 |
| 미월(6월) | 乙未 | 정재 | 정인 | 관대 |
| 신월(7월) | 丙申 | 편관 | 비견 | 건록 |
| 유월(8월) | 丁酉 | 정관 | 겁재 | 제왕 |
| 술월(9월) | 戊戌 | 편인 | 편인 | 쇠 |
| 해월(10월) | 己亥 | 정인 | 식신 | 병 |
| 자월(11월) | 庚子 | 비견 | 상관 | 사 |
| 축월(12월) | 辛丑 | 겁재 | 정인 | 묘 |
## 계산 기준
- 대운 기준: 역행, 절입 2001-10-08 05:22 UTC
## 만세력
- 올해: 丙午
- 내년: 丁未
- 이번달: 庚寅
- 다음달: 辛卯
- 오늘: 丁丑
- 내일: 戊寅
- 오늘날짜: 2026-03-04
## 해석
인수격 구조입니다. 학습, 연구, 문서, 상담 영역에서 장점이 큽니다.
가장 강한 오행은 토(3개)이며, 안정·중재 지향 성향이 두드러집니다.
길신: 천을귀인, 화개⏱️ 벤치마크
warmup 800회 돌리고 6,000회 측정. Apple M2 기준.
| 뭘 했나 | 걸린 시간 | ops/sec |
|:--|--:|--:|
| 사주 계산 (양력) | 0.04ms | 23,348 |
| 사주 계산 (음력) | 0.04ms | 24,264 |
| 계산 + toCompact() | 0.06ms | 17,160 |
| 계산 + toMarkdown() | 0.06ms | 17,333 |
| 파일 | 크기 | |:--|--:| | dist raw | 42.5 KB | | dist gzip | 14.7 KB | | dist brotli | 12.4 KB |
