05. 수법(水法) — 득수·파구·래거·사격·물의 곡직청탁
선행 문서: 02-혈·명당 · 03-사신사 심화 · 풍수 overview 관련 심화: 04-24방위 · 06-양택 엔진 연관:
src/lib/pungsu/waterLines.ts(현재 존재) → v2 확장 신뢰도: L1 + L2.
개념 정의
**수법(水法)**은 풍수에서 물의 흐름·방향·형상을 읽어 혈의 길흉에 반영하는 기법이다. "기운은 물에 닿아 멈춘다(界水則止)"는 『금낭경』의 원칙에 따라, 물은 기운을 가두는 동시에 재물과 활력의 상징으로 해석된다. 물이 어떻게 들어오고(래·來) 어떻게 나가는지(거·去), 어느 방위에서 흐르는지가 수법 판정의 핵심이다.
1. 득수(得水)와 파구(破口)
수법의 두 핵심 개념은 물이 들어오는 지점과 나가는 지점이다.
| 개념 | 한자 | 의미 | 이상 조건 |
|---|---|---|---|
| 득수(得水) | 得水 | 혈 가까이 물이 흐르거나 고여있는 것 | 물이 가깝고 풍부할수록 길 |
| 파구(破口) | 破口 | 물이 혈 앞에서 빠져나가는 출구 지점 | 혈에서 파구가 보이지 않아야 길 |
- 파구가 보이지 않아야 한다는 원칙은 "물이 나가는 것이 눈에 보이면 재물이 새나간다"는 상징에서 비롯됨.
- 파구가 굽어져 있어 혈에서 직접 보이지 않는 지형(물이 구비쳐 나가는 형태)이 이상.
- 파구가 정면에 직선으로 보이면(수직파, 직파) 재물·활력이 급격히 빠져나가는 흉 형태.
2. 래거(來去) 방향 — 어느 방위에서 오고 나가는가
물이 어느 24방위에서 들어와 어느 방위로 나가는지에 따라 수법의 길흉이 결정된다. 이기파 수법에서는 패철(나침반)을 대고 물의 래거 방향을 정밀하게 측정한다.
2.1 내거(內去) 기본 원칙
물은 기본적으로 혈보다 높은 곳에서 낮은 곳으로 흐른다. 이때:
| 흐름 | 형태 | 풍수 해석 |
|---|---|---|
| 팔(八)자형 | 혈 좌우에서 흘러 앞에서 합류(合水) | 가장 길 — 기운과 재물이 혈 앞에서 모임 |
| 곡선(曲線) | 완만하게 구부러지며 혈을 감아 흐름 | 길 — 기운이 오래 머묾 |
| 직선(直線) | 혈을 향해 직선으로 흘러오거나 직선으로 나감 | 흉 — 기운이 머물지 않고 급하게 지나침 |
| 역류(逆流) | 혈을 향해 물이 거슬러 올라오는 모양 | 경우에 따라 길 (역수朝堂) |
3. 사격(砂格) — 수법과 사신사의 결합
수법에서 '사格(砂格)'는 물과 산의 관계를 함께 보는 개념이다. 물이 흐르는 방향에 대응하는 사신사가 물을 가두거나 풀어주는 역할을 함께 한다.
3.1 좌우수(左右水) 원칙
| 좌수도우(左水倒右) | 우수도좌(右水倒左) |
|---|---|
| 왼쪽(청룡쪽)에서 물이 오고 오른쪽(백호쪽)으로 나감 | 오른쪽에서 물이 오고 왼쪽으로 나감 |
| 이에 맞는 향(向)이 있어야 길 | 이에 맞는 향이 있어야 길 |
전통 수법에서는 좌수도우·우수도좌에 따라 이상적인 향(向)의 24방위가 달라진다. 이것이 양공수법(楊公水法) 또는 장정형(長丁形) 수법 등 다양한 유파로 발전했다.
4. 물의 형상 — 곡직청탁(曲直淸濁)
물의 형상에 따라서도 길흉이 달라진다.
| 형상 | 분류 | 풍수 해석 |
|---|---|---|
| 곡수(曲水) | 완만하게 구부러진 물 | 길 — 기운이 천천히 모이고 오래 머묾 |
| 직수(直水) | 곧장 뻗어나가는 물 | 흉 — 기운을 끌고 빠져나감 |
| 청수(淸水) | 맑고 깨끗한 물 | 길 — 건강·지혜·재물의 기운 |
| 탁수(濁水) | 흐리고 오염된 물 | 흉 — 건강·재물에 부정적 영향 |
| 완수(緩水) | 느리게 흐르는 물 | 길 — 기운이 충분히 머묾 |
| 급수(急水) | 빠르게 흐르는 물 | 흉 — 기운을 빠르게 쓸어감 |
| 회수(回水) | 혈을 감싸 돌아가는 물 | 가장 길 — 기운을 안아 가둠 |
| 충수(沖水) | 혈을 향해 직선으로 흘러오는 물 | 흉 — 기운을 치고 들어옴 |
5. 수구(水口)와 한문관쇄(關鎖)
**수구(水口)**는 명당에서 물이 최종적으로 빠져나가는 지점으로, 이 지점이 좁게 잠겨야(關鎖) 기운이 빠져나가지 않는다고 본다.
| 수구 형태 | 설명 | 판정 |
|---|---|---|
| 관쇄(關鎖) | 양쪽 산이 좁게 물어 수구를 잠금 | 최길 |
| 교쇄(交鎖) | 좌우 산이 엇갈려 막음 | 길 |
| 개구(開口) | 수구가 넓게 열려있음 | 흉 — 기운이 새나감 |
| 직탈(直脫) | 직선으로 수구가 뚫림 | 최흉 |
6. 원전 인용
氣乘風則散, 界水則止; 古人聚之使不散, 行之使有止, 故謂之風水. "기운은 바람을 타면 흩어지고 물에 닿아서 멈춘다. 옛사람들은 기운을 모아 흩어지지 않게 하고, 흐르되 멈출 수 있게 했으니, 이를 일러 풍수라 한다." — 『금낭경(錦囊經)』 상편 「기감편(氣感篇)」. '풍수'라는 이름의 직접 어원. 물이 기운을 가두는 핵심 장치임을 천명. [L1]
水之吉格, 宜曲宜緩宜淸, 來者有情, 去者不見. "물의 길한 격식은 구부러지고 느려야 하며 맑아야 한다. 오는 것은 정이 있어야 하고, 나가는 것은 보이지 않아야 한다." — 『인자수지(人子須知)』 권3. 이상적인 수법의 조건을 한 문장에 압축. [L1]
山管人丁, 水管財; 龍穴砂兼得, 水口關鎖真可貴. "산은 사람(인구·건강)을 관장하고, 물은 재물을 관장한다. 용혈사가 모두 갖춰지고 수구가 잠겨있으면 진정으로 귀한 자리다." — 『지리오결(地理五訣)』. 산과 물의 역할 분담을 명확히 선언. 수구 관쇄가 재물 기운 보존의 핵심임을 강조. [L1]
水流曲折, 財豐祿厚; 水流直去, 人財兩散. "물이 굽어 꺾이면 재물이 풍성하고 복록이 두텁다. 물이 직선으로 흘러가면 사람도 재물도 모두 흩어진다." — 명리·풍수 통설. 수법에서 직수(直水)를 기피하는 이유를 단적으로 표현. [L2]
7. 판정·계산 알고리즘 (엔진 설계용)
현재 waterLines.ts v2 확장:
// 실제 구현은 src/lib/pungsu/waterLines.ts v2.
// 현재는 반경 내 수계 spot 거리 기반(0~4점).
// v2에서는 흐름 방향·형태·파구 가시성 추가.
export interface WaterFeature {
lat: number;
lng: number;
type: "river" | "stream" | "lake" | "sea" | "reservoir";
/** 혈 기준 방위각 */
bearingFromTarget: number;
/** 거리 km */
distanceKm: number;
/** 물의 흐름 형태 (수동 입력 or API) */
flowShape?: "curved" | "straight" | "encircling" | "striking";
/** 파구 가시성 */
paguVisible?: boolean;
}
export interface WaterScoreV2 {
value: number; // 0~40 (기존 0~4 → 10배 정규화 예정)
deuksuScore: number; // 0~20 — 득수 완성도
paguScore: number; // 0~10 — 파구 비가시성
flowScore: number; // 0~10 — 곡직·청탁
summary: string;
}
export function scoreWaterV2(
target: { lat: number; lng: number },
waterFeatures: WaterFeature[],
): WaterScoreV2 {
let deuksu = 0;
let pagu = 10; // 파구 보이지 않으면 만점 시작
let flow = 0;
for (const w of waterFeatures) {
// 가까운 물일수록 득수 점수 높음
const distScore = w.distanceKm < 0.3 ? 10 : w.distanceKm < 1 ? 6 : w.distanceKm < 3 ? 3 : 1;
deuksu = Math.max(deuksu, distScore);
// 파구가 보이면 감점
if (w.paguVisible) pagu = Math.max(0, pagu - 5);
// 흐름 형상
if (w.flowShape === "encircling") flow = Math.max(flow, 10);
else if (w.flowShape === "curved") flow = Math.max(flow, 7);
else if (w.flowShape === "straight") flow = Math.max(flow, 2);
else if (w.flowShape === "striking") flow = 0;
}
return {
value: deuksu + pagu + flow,
deuksuScore: deuksu,
paguScore: pagu,
flowScore: flow,
summary: buildWaterSummary(deuksu, pagu, flow),
};
}
8. 현재 레포 반영 (as-is)
| 개념 | 현재 상태 | 파일 경로 |
|---|---|---|
| 수계 spot 거리 판정 | 구현됨 (0~4점, 거리 기반) | src/lib/pungsu/waterLines.ts scoreWater |
| 물의 흐름 방향(래거) | 없음 | — |
| 파구 가시성 판정 | 없음 | — |
| 물의 형상(곡직청탁) | 없음 | — |
| 수구 관쇄 판정 | 없음 | — |
| 합수(合水) 지점 탐지 | 없음 | — |
| 회수(回水) 감지 | 없음 | — |
현재 waterLines.ts는 반경 2km 내에 river/stream/lake 태그의 spot이 있으면 점수를 주는 구조. 물의 방향·형상·파구 등 수법의 핵심 요소는 전혀 반영 안 됨.
9. 서비스 반영 포인터 (to-be)
| 항목 | 반영 위치 | 우선순위 |
|---|---|---|
WaterFeature.flowShape 필드 |
명당 spot 등록 시 "물의 흐름 형태" 수동 선택 | 데이터 Phase F |
scoreWaterV2 구현 |
src/lib/pungsu/waterLines.ts v2 |
엔진 v2 |
| score.ts 재가중치 | 수 점수 구간 0 |
엔진 v2 |
| "파구가 보이지 않아요" 배지 | 명당 상세 페이지 — 파구 비가시성 체크 뱃지 | UX Phase F |
| 수법 가이드 | guides.ts "[STEP 09] 물이 재물을 부른다 — 득수와 파구 이야기" |
콘텐츠 Phase E2 |
| 네이버 지도 수계 레이어 | 홈 지도에 주요 하천 레이어 오버레이 — 명당 탐색 시 수계 가시화 | UX Phase F |
10. 민감 영역 유의
- "물이 가까우면 재물이 들어온다" 단정 금지 — 물의 길흉은 흐름 방향·파구·형상을 모두 종합해야 판단 가능. "가까운 물이 무조건 좋다"는 오해를 지양.
- 수질 오염과 풍수 판정의 분리 — 현대에는 수질 오염으로 "탁수"인 경우가 많음. 풍수적 청탁 판정과 실제 수질 검사는 별개임을 명시.
- 홍수 위험 지역 — "물이 가까운 명당"이 홍수 위험 지역과 겹칠 수 있음. 풍수 판정과 재해 안전 판단은 다름을 명시.
- 파구 판정의 주관성 — 어느 지점에서 보느냐에 따라 파구 가시성이 달라짐. 엔진 판정은 지도 기반 근사치.