궁합

오행 궁합(五行宮合) — 상생상극 세력 비교

궁합에서 상생이 무조건 좋고 상극이 무조건 나쁜 것은 아니다:

궁합전통 원전 기반
전통 이론 기반 참고 자료예요

02. 오행 궁합(五行宮合) — 상생상극 세력 비교

선행 문서: 궁합 overview · 사주 02-오행·음양 관련 심화: 01-육친 궁합 · 03-납음 궁합 · 사주 07-용신 엔진 연관: src/lib/saju/ohaeng.ts (기존) + 신규 src/lib/saju/gunghap.ts 확장 신뢰도: L1 + L2 + L3(계산 근사치) 혼합. L3 부분은 고지 필요.


개념 정의

**오행 궁합(五行宮合)**은 두 사람의 사주 오행 분포를 비교해, 한쪽이 다른 쪽의 부족한 기운을 채워주는지(상생·보완) 아니면 서로 충돌하는 기운이 많은지(상극·갈등)를 분석하는 궁합법이다. 십신 궁합이 "두 일간의 관계"에 집중한다면, 오행 궁합은 두 사주 전체의 기운 지형도를 비교한다. "용신 궁합"으로 발전하면 가장 전문적인 궁합법이 된다.


1. 오행 상생(相生)·상극(相剋) 기본

관계 순서 의미
상생(相生) 목→화→토→금→수→목 한쪽이 다른 쪽을 살리고 도움
상극(相剋) 목→토, 화→금, 토→수, 금→목, 수→화 한쪽이 다른 쪽을 제압·억제

궁합에서 상생이 무조건 좋고 상극이 무조건 나쁜 것은 아니다:

  • 상생도 과하면 — 퍼주는 쪽이 소진됨. 의존 관계 형성.
  • 상극도 균형 있으면 — 서로의 지나침을 제어해 성장 촉진.
  • 극관(制剋)이 필요한 경우 — 일간이 너무 강한 사람에게는 관성(극하는 기운)이 오히려 도움.

2. 두 사주 오행 벡터 비교

두 사람 A, B의 사주를 각각 오행 벡터로 표현:

A: { wood: 30, fire: 10, earth: 20, metal: 30, water: 10 }  // 합 100%
B: { wood: 10, fire: 30, earth: 20, metal: 10, water: 30 }  // 합 100%

2.1 보완(補完) 분석

판정 기준 의미
최적 보완 A의 약한 오행 = B의 강한 오행 B가 A의 부족을 채워줌
쌍방 보완 A약→B강, B약→A강이 동시 성립 이상적 — 서로의 부족을 채워줌
중첩 강화 A와 B 모두 같은 오행이 강함 힘이 세지나 균형 위험
공동 부족 A와 B 모두 같은 오행이 약함 공동 약점 — 서로 보완 불가

2.2 충돌(衝突) 분석

A의 강한 오행 B의 강한 오행 상극 관계 여부 해석
목(강) 토(강) 목극토(木剋土) → A가 B 압박 A가 B에게 부담될 수 있음
화(강) 금(강) 화극금(火剋金) → A가 B 억제 A의 열정이 B의 결단을 녹임
수(강) 화(강) 수극화(水剋火) → A가 B 냉각 A의 신중함이 B의 열정 식힘

3. 용신 궁합(用神宮合) — 가장 깊은 오행 궁합

사주의 **용신(用神)**은 그 사람의 삶에 가장 필요한 오행이다. 용신 궁합은:

"상대의 사주에 내 용신이 얼마나 많은가?"

를 보는 방식으로, 단순 오행 비교보다 훨씬 정확하다.

조건 판정
상대 원국에 내 용신이 풍부 내가 상대로부터 큰 도움을 받음 (가장 좋은 사람)
상대 원국에 내 기신(忌神)이 많음 내가 상대로부터 부담을 받음 (조심해야 할 사람)
내 원국에 상대 용신이 풍부 내가 상대에게 큰 도움을 줌
쌍방이 서로의 용신을 많이 가짐 최상 궁합

용신 판정은 사주 07-용신이 선행 필요.


4. 오행 균형 지수 — 두 사주를 합한 균형

두 사람이 함께 있을 때 합산된 오행이 얼마나 균형적인지도 궁합의 지표가 된다.

합산 벡터 = (A_오행 + B_오행) / 2
표준편차 = 오행 5개의 분산 → 낮을수록 균형
  • 합산 표준편차가 낮으면 → 두 사람이 함께할 때 오행이 고르게 분포 → 안정적 관계.
  • 합산 표준편차가 높으면 → 특정 오행 과다/부족 → 그 오행에 해당하는 삶의 영역(재물/건강/관계)에 편중.

5. 실전 오행 궁합 사례

사례: A(일간 甲목, 목 과다) × B(일간 戊토, 토 기반)

  • A 오행: 목 40%, 화 20%, 토 10%, 금 15%, 수 15%
  • B 오행: 토 40%, 금 20%, 수 15%, 목 10%, 화 15%
분석 내용
A 용신 금(A의 목을 제어해 균형)
B에게서 A 용신(금) B 원국에 금 20% — 비교적 풍부 → A가 B에게서 도움 받음
B 용신 목(B의 토를 움직이게 하는 오행)
A에게서 B 용신(목) A 원국에 목 40% — 매우 풍부 → B도 A에게서 도움 받음
종합 쌍방 용신 보완 → 오행 궁합 최상

6. 원전 인용

五行不和, 而成禍殃; 五行相生, 而有福慶. "오행이 조화롭지 못하면 재앙이 되고, 오행이 서로 생하면 복이 있다." — 『오행대의(五行大義)』 권1. 궁합의 근본 원칙이 오행 상생상극에 있음을 천명. 단, 오행대의 자체는 사주 궁합서가 아닌 오행 개론서임에 주의. [L1]

兩命相合, 先看用神; 用神相資, 此爲眞好命. "두 사주가 합할 때는 먼저 용신을 본다. 용신이 서로 도우면 이것이 진정한 좋은 인연이다." — 『삼명통회(三命通會)』 합혼(合婚) 편. 용신 궁합이 오행 궁합의 핵심임을 선언. [L1]

木遇金, 方成棟梁之材; 火見水, 則能濟濟之器. "목이 금을 만나야 동량(대들보)의 재목이 되고, 화가 수를 만나야 훌륭한 그릇이 된다." — 명리 통설. 상극도 균형 있으면 성장의 조건이 됨을 보여주는 격언. 상극 관계를 무조건 흉으로 보지 않는 원칙. [L2]


7. 판정·계산 알고리즘 (엔진 설계용)

// 실제 구현은 src/lib/saju/gunghap.ts (신규).
// 기존 src/lib/saju/ohaeng.ts의 toOhaengVector 재사용.

import { toOhaengVector, type OhaengVector } from "./ohaeng";
import type { SajuChart } from "./types";

export interface OhaengGunghap {
  vectorA: OhaengVector;
  vectorB: OhaengVector;
  /** A의 부족 오행을 B가 얼마나 채워주는가 (0~10) */
  bSupplementsA: number;
  /** B의 부족 오행을 A가 얼마나 채워주는가 (0~10) */
  aSupplementsB: number;
  /** 합산 오행 균형 점수 (0~10, 10=완전 균형) */
  combinedBalance: number;
  /** 상극 충돌 강도 (0~10, 낮을수록 충돌 적음) */
  conflictLevel: number;
  /** 종합 점수 (0~10) */
  totalScore: number;
}

export function calcOhaengGunghap(
  chartA: SajuChart,
  chartB: SajuChart,
): OhaengGunghap {
  const vA = toOhaengVector(chartA);
  const vB = toOhaengVector(chartB);

  // A의 약한 오행을 B가 얼마나 가지고 있는지
  const bSupplementsA = calcSupplementScore(vA, vB);
  const aSupplementsB = calcSupplementScore(vB, vA);

  // 두 벡터 합산 균형
  const combined = mergeVectors(vA, vB);
  const combinedBalance = 10 - calcStdDev(combined) / 10;

  // 상극 충돌 강도
  const conflictLevel = calcConflictLevel(vA, vB);

  const totalScore = Math.round(
    bSupplementsA * 0.3 +
    aSupplementsB * 0.3 +
    combinedBalance * 0.2 +
    (10 - conflictLevel) * 0.2,
  );

  return { vectorA: vA, vectorB: vB, bSupplementsA, aSupplementsB, combinedBalance, conflictLevel, totalScore };
}

function calcSupplementScore(weak: OhaengVector, strong: OhaengVector): number {
  // weak의 최소 오행 top2 → strong에서 해당 오행 비율이 20% 이상이면 점수
  const ohaengs: (keyof OhaengVector)[] = ["wood", "fire", "earth", "metal", "water"];
  const sorted = ohaengs.sort((a, b) => weak[a] - weak[b]);
  const top2Weak = sorted.slice(0, 2);
  return top2Weak.reduce((s, o) => s + (strong[o] > 0.2 ? 5 : strong[o] > 0.1 ? 3 : 0), 0);
}

8. 현재 레포 반영 (as-is)

개념 현재 상태 파일 경로
단일 사주 오행 벡터 구현됨 src/lib/saju/ohaeng.ts toOhaengVector
두 사주 오행 비교 없음
용신 계산 없음
오행 궁합 점수 없음

결론: toOhaengVector를 두 차례 호출해 비교하는 calcOhaengGunghap은 기존 코드 위에 올리기 가장 쉬운 궁합 기능. 용신 궁합은 Phase F 이후.


9. 서비스 반영 포인터 (to-be)

항목 반영 위치 우선순위
calcOhaengGunghap() src/lib/saju/gunghap.ts 신규 엔진 v2
오행 궁합 시각화 두 오행 바 차트를 나란히 + 보완/충돌 아이콘 UX Phase F
용신 궁합 shipshin.ts + yongshin.ts 완성 후 추가 엔진 v3
가이드 guides.ts "[STEP G02] 오행으로 보는 우리의 시너지" 콘텐츠 Phase E2

10. 민감 영역 유의

  • 오행 상극 과장 금지 — "목이 많아서 토가 약한 상대를 힘들게 합니다" 같은 일방적 단언 금지. 상극도 관계의 성장 동력이 될 수 있음.
  • "궁합 점수 낮으면 헤어져야" 표현 금지 — 오행 궁합 점수는 관계의 에너지 패턴 참고치. 점수가 낮아도 두 사람의 노력으로 관계는 충분히 좋아질 수 있음.
  • 용신 개념 남용 방지 — 용신 궁합은 사주명리 전문 영역. 현재 서비스 엔진이 용신을 정확히 계산하지 못하는 단계에서 "용신 궁합"이라는 표현을 과신하면 안 됨. L3 고지 필요.
  • L3 주의 — 합산 벡터 균형 점수·충돌 강도 계산은 전통 원전에 없는 현대 엔지니어링 근사치. 반드시 "참고용 계산 지표"로 고지.

같은 카테고리의 다른 용어