---
title: AI로 풍수지리 명당을 찾는 일을 해볼 수 있지 않을까 — 풍수 일곱 조건을 지형 수치로 번역한 지도
url: https://oosioo.com/p/ai%EB%A1%9C-%ED%92%8D%EC%88%98%EC%A7%80%EB%A6%AC-%EB%AA%85%EB%8B%B9%EC%9D%84-%EC%B0%BE%EB%8A%94-%EC%9D%BC%EC%9D%84-%ED%95%B4%EB%B3%BC-%EC%88%98-%EC%9E%88%EC%A7%80-%EC%95%8A%EC%9D%84%EA%B9%8C-%ED%92%8D%EC%88%98-%EC%9D%BC%EA%B3%B1-%EC%A1%B0%EA%B1%B4%EC%9D%84-%EC%A7%80%ED%98%95-%EC%88%98%EC%B9%98%EB%A1%9C-%EB%B2%88%EC%97%AD%ED%95%9C-%EC%A7%80%EB%8F%84
date: 2026-09-10T12:33:18+00:00
author: SYSOP
summary: 집 짓기 좋은 자리를 지형·물·건물·햇빛으로 계산해달라고 한 줄 물었다. 배산임수·장풍득수 같은 옛말을 경사·향·물까지 거리 같은 숫자로 바꾼 지도가 나왔다. 평지에서 다 똑같이 나온 자리, 1회에서 봤던 그 문제가 또 나온 대목까지 뜯어본다.
---
# AI로 풍수지리 명당을 찾는 일을 해볼 수 있지 않을까 — 풍수 일곱 조건을 지형 수치로 번역한 지도

불꽃 축제 명당을 찾는 지도를 만들다보니 떠오른 생각인데, 일반적으로 명당은 풍수지리에서 사람이 살기 좋은 양택과 좋은 묘 자리를 고르는 음택 등 다양한 곳에 사용하는 개념 중 하나이다. 예전에 지형 지도나 고저 지도 등을 다룰 일이 종종 있었어서 간단한 원리를 이용해서 이번에는 풍수지리 지도를 만들어 보기로 했다.

## 무엇을 물었나

시작은 질문 하나였다.

> DEM DSM 등 지형이나 지물, 지도의 정보 등을 활용해서 명당이나 집을 짓기 좋아보이는 곳을 표시해주는 서비스 같은 게 있나?

찾아보니 있긴 있었다. 지도와 AI로 풍수 점수를 매겨주는 서비스가 하나, 그리고 풍수를 GIS로 정량화한 논문들이 여러 편. 특히 중국 난징의 옛 능묘 자리를 지형 여덟 가지 지표로 쪼개 계층분석법(AHP)으로 점수를 매긴 연구가 눈에 띄었다. 그걸 보고 다음 한 줄을 넣었다.

> 정량적으로 정밀하게 만드는 서비스가 있으면 좋겠다. 난징 능묘 연구의 인자 추출이나 AHP 적합도를 스파이더 차트나 종합 점수로 보여주고, 정밀한 지도에 위치마다 점수를 히트맵으로. 요소별 히트맵도. 현대에는 건물도 올라가 있으니 그것도 고려. 독립된 HTML로 만들어보자.

넣은 문장은 여기까지다. 나머지는 기계가 골랐다. 스파이더 차트가 무엇인지, 히트맵이 무엇인지 정도만 알고있으면 만들 수 있는 수준이다.

## 무엇이 나왔나

브라우저로 열리는 지도 파일 하나. 지도를 원하는 동네로 옮기고 버튼을 누르면, 그 화면을 수만 칸(최대 4만 칸)으로 쪼개 칸마다 "여기가 집터로 얼마나 좋은가"를 0에서 100점으로 칠한다. 초록일수록 좋고 빨강일수록 나쁘다. 너무 큰 지역은 커버가 되지는 않았지만 동네를 조망하기에는 너무 충분한 수준이었다.

![서울 도심 11.6 km 범위를 192×192 칸으로 나눠 칠한 종합 적합도 지도. 급경사와 도심 저지대가 붉고, 뒤가 높고 앞이 트인 사면이 초록으로 나온다. 오른쪽은 일곱 인자의 가중치 슬라이더.](/uploads/6dd98304c74d9c1d.webp =860)

점수는 일곱 가지를 저울질해 낸다.

- **경사** — 완만할수록 좋다
- **향(일조)** — 볕이 잘 드는 남향 사면
- **배산** — 뒤(북쪽)가 높은 지세
- **장풍** — 좌우가 감싸고 앞이 트인 자리
- **득수** — 물길 위, 적당한 높이
- **지세 안정** — 땅이 거칠지 않음
- **국세** — 지나치지 않은 적당한 기복

여기에 **건물**을 여덟 번째로 얹었다. 옛 풍수엔 없던 항목이다.

지도의 아무 자리나 누르면 그 지점의 종합 점수와 등급(대명당·길지·양호·보통·주의)이 뜨고, 일곱(여덟) 항목이 거미줄처럼 뻗은 스파이더 차트가 그려진다. 어느 조건이 좋아서 점수가 높은지, 뭐가 깎아먹는지가 한눈에 보인다. 왼쪽 슬라이더로 "나는 물가가 제일 중요해" 하고 가중치를 밀면 종합 지도가 그 자리에서 다시 칠해진다.

## 어떻게 굴러갔나

핵심은 **옛말을 숫자로 번역**하는 일이다.

배산임수, 장풍득수. 뜻은 알겠는데 이건 사람이 산을 보고 하는 말이지 컴퓨터가 아는 말이 아니다. 그래서 각각을 땅의 모양에서 뽑을 수 있는 값으로 바꿨다.

- **배산**은 "내 뒤(북쪽) 땅이 앞(남쪽)보다 높은가"로. 두 방향 평균 높이의 차.
- **장풍**은 "좌우와 뒤는 높아 감싸고, 앞은 낮아 트였는가"로. 여덟 방향 지형을 훑어 보호받는 쪽과 트인 쪽을 비교.
- **경사·향**은 땅의 기울기와 그 기운 방향에서.
- **국세**는 주변 땅의 높낮이 차(기복)가 너무 밋밋하지도 너무 험하지도 않은 정도로.

땅의 높이 데이터는 어디서 오나. 공개된 전 지구 지형 타일이 있다. 지도 타일처럼 생겼는데 색의 빨강·초록·파랑 값에 높이가 숨어 있어서, 그걸 계산식 하나로 풀면 미터 단위 표고가 나온다. 이 화면 몫만 받아다 칸마다 높이를 읽는다.

일곱 값을 다 구한 다음, 난징 연구처럼 각 항목에 **가중치**를 준다. 배산을 크게, 거칠기를 작게 — 이런 식으로. 그걸 곱해 더하면 종합 점수다. 가중치를 슬라이더로 빼놓은 건 "정답 하나"가 아니라 보는 사람 기준으로 저울을 바꿔 보라는 뜻이다.

## 어디서 틀렸나

여기가 이 연재의 본론이다.

**첫 번째, 평지에서 다 똑같이 나왔다.** 처음 판을 만들어 서울 같은 평지에서 눌러보니 온통 비슷한 색이었다. 점수 구분이 안 됐다.

그런데 이건 반은 맞는 계산이었다. 배산이니 장풍이니 하는 건 애초에 땅에 높낮이가 있어야 성립하는 말이다. 완전한 평지에서는 지형만으로 "여기가 저기보다 명당"이라고 할 근거가 실제로 별로 없다. 기계는 정직하게 "다 고만고만함"이라고 답한 것이다.

문제는 그럼 지도가 쓸모없어 보인다는 거였다. 그래서 **보이는 방식**을 고쳤다. 절대 점수 대신, 화면 안에서의 순위(분위수)로 다시 펼쳐 칠하는 스위치를 달았다. 미세한 우열이라도 있으면 그걸 빨강에서 초록까지 쭉 늘여 보여준다. 점수 자체를 조작한 게 아니라, 클릭했을 때 나오는 진짜 점수는 그대로 두고 지도 색만 대비를 키운 것이다. 이건 보통 데이터가 잘 구분되지 않는 상황에서 조금 더 시각적으로 잘 구분하기 위한 스케일을 찾는 것과 같다.

**두 번째, 1회에서 봤던 그 문제가 또 나왔다.** 평지에서 진짜 변수는 뭘까. 물가와 건물이다. 그런데 내가 쓴 지형 타일은 '땅'을 잰 데이터다. 건물이 없다. 강도 잘 안 잡힌다. 1회 때 전 지구 고도 데이터가 63빌딩을 18미터로 찍었던, 바로 그 이야기가 여기서 되풀이됐다.

그래서 사용자가 다시 한 줄을 넣었다. "득수, 건물, 일조도 중요하니 모두 반영하자."

- **득수**는 공개 지도 데이터에서 강·호수를 받아, 칸마다 가장 가까운 물까지의 실제 거리를 재서 점수화했다. 가까우면 좋되 너무 붙으면(침수) 조금 깎는다.
- **건물**은 같은 데이터에서 건물 높이를 받아, 높고 빽빽한 곳일수록 감점했다. 고층에 눌리고 볕이 막히는 자리다. 옛 풍수의 '장풍'을 현대 도심에 번역하면 결국 이 이야기다.
- **일조**는 원래 단순히 '남향이냐'만 봤는데, 태양을 아침·정오·오후 세 위치에 놓고 각 자리가 받는 볕의 양을 계산하는 방식으로 바꿨다.

**세 번째, 사소하지만 정직하게 적어둘 것들.** 건물 항목을 새로 넣었는데 그 가중치가 0에서 시작하도록 초기값을 빠뜨려서, 켜도 반영이 안 되던 버그가 있었다. 초기값을 채워 고쳤다. 그리고 화면 꾸미는 코드(CSS)에 엉뚱한 글자 하나가 섞여 들어간 것도 뒤늦게 잡아냈다.

## 왜 한 줄로 되는가

풍수를 지형 수치로 바꾸는 일은 내가 발명한 게 아니다. 이미 논문으로 여러 편 나와 있다. 어떤 공개 지형 데이터가 있고, 그 색에 높이가 어떻게 숨어 있고, 강과 건물을 어디서 받아오는지 — 이건 전부 세상에 이미 있는 지식이다.

내가 그걸 다 알 필요가 없다는 게 요점이다. "난징 연구식으로, 건물도 고려해서"라고 방향만 줬더니 기계가 맞는 데이터와 맞는 계산을 끌어와 붙였다. 한 줄로 되는 건 마법이 아니라, 이미 정리된 지식이 공개 데이터와 만나는 자리에 기계가 서 있기 때문이다.

## 따라 하려면

1회에서 적은 것과 크게 다르지 않다.

**데이터를 지정하지 않는다.** "이 지형 데이터 써"라고 못 박았으면 건물도 강도 빠진 채로 끝났을 것이다. 어떤 공개 자료가 좋은지는 기계가 더 잘 안다. 내가 더 잘 아는게 있다면 그냥 추가하면 된다.

**결과가 이상하면 그 자리에서 되짚게 한다.** 평지가 온통 한 색으로 나왔을 때 "왜 이러냐"를 물었기에 "평지는 원래 구분이 안 되는 게 맞고, 대신 상대 순위로 보여주겠다"는 답이 나왔다. 안 물었으면 밋밋한 지도를 그냥 받았을 것이다.

**한계를 먼저 물어본다.** "이 점수에서 믿으면 안 되는 부분이 뭐냐"를 물어야 아래 문단 같은 답이 나온다.

## 못 하는 것

재미로 만든거니까 당연히도 아주 정확하다거나 하지는 않다. 이런것도 할 수 있겠구나 정도로 보면 좋겠다. 진지하게 파고들자면 사실 훨씬 더 깊게 공부하거나 서비스적인 요소들을 고려해야 한다.

**풍수는 정답이 아니라 해석이다.** 이 지도는 "여기가 명당"이라고 선언하는 물건이 아니다. 옛사람들이 좋게 봤던 지세의 조건을 숫자로 흉내 낸 것뿐이다. 점수를 믿음의 근거로 쓰면 곤란하다.

**햇빛 계산은 아직 반쪽이다.** 땅이 기운 방향으로 볕의 양은 따지지만, 남쪽 멀리 있는 산이나 앞 건물이 실제로 드리우는 그림자까지는 아직 못 본다. 응달인데 볕 좋은 자리로 나올 수 있다.

**건물 높이는 적혀 있는 것만 정확하다.** 공개 지도에 층수나 높이가 없는 건물은 낮게 잡는다. 실제보다 덜 가리는 것으로 나온다.

**땅 높이는 근사값이다.** 정밀 측량이 아니라 공개 타일을 푼 값이라, 좁은 골목 단위보다 언덕·능선 단위에서 잘 맞는다.

이런 계산은 늘 그렇듯 "여기가 최고"를 짚어주기보다 "여기는 확실히 아니다"를 걸러내는 데 훨씬 쓸모가 있다. 뒤가 트이고 앞이 막히고 물에서 멀고 고층에 눌린 자리를 빨갛게 지워주는 것, 딱 거기까지다.

### 재미있게 읽었다면 꼭 의견을 달아달라.
이번에도 글쓰는 것은 AI로 대충 딸깍하지 않았다.
땅 모양으로 명당을 계산한다는 게 그럴싸해 보여도, 결국 사람이 살 자리는 숫자 밖의 것들이 더 많이 정한다. 예전에 살던 곳이나 회사들을 찍어봤지만 생각보다 좋은곳도, 좋지 않은 곳도 있었다. 결국 모든 것은 사람이 정하는 것이라는 생각이 든다.
