
✅ 왜 사주 웹앱을 만들게 되었을까?
요즘 사주와 명리학에 관심 있는 사람들이 많아졌습니다.
하지만 기존 사주 서비스들은 대부분 앱 기반이거나, UI가 무겁고 복잡하다는 한계가 있습니다.
그래서 저는 누구나 웹에서 바로 사주팔자를 확인할 수 있는 가볍고 빠른 시스템을 만들어 보기로 했습니다.
입력은 단순하게, 출력은 정확하게.
📌 목표는 “태어난 날짜와 시간을 입력하면 사주팔자와 대운, 세운, 월운까지 확인할 수 있는 PHP 기반 웹앱”입니다.
🧱 어떤 기술을 썼을까?
이 프로젝트는 ChatGPT를 적극적으로 활용해 설계되었습니다.
기존에 Python으로 작성된 사주 계산 로직을 분석하고, 이를 PHP로 이식하기 위한 구조와 알고리즘을 GPT와 함께 정리하면서 점진적으로 완성해 나갔습니다.
항목 | 선택한 기술 |
---|---|
백엔드 | PHP (7.x 이상) |
데이터베이스 | SQLite (경량 DB) |
프론트엔드 | HTML + PHP 출력 |
서버 환경 | 일반 웹호스팅 (Cafe24, 워드프레스 호스팅도 가능) |
💬 GPT를 통해 사주 개념 정리, 간지 계산 알고리즘 검증, 월운 오류 분석 등 많은 도움을 받았습니다.
🗂️ 필요한 데이터베이스는?
사주 계산에는 단순한 생년월일만으로는 부족합니다.
양력-음력 변환, 절기 정보(입춘, 경칩 등), 연월일 간지 등의 정보가 필요합니다.
이를 위해 다음 두 가지 SQLite 기반 데이터베이스를 준비했습니다:
📁 1. 캘린더 DB 구성 예시 (년주·월주·일주 포함)
양력 날짜 | 음력 날짜 | 연간지 | 월간지 | 일간지 |
---|---|---|---|---|
2025-01-06 | 2024-12-07 | 갑진 | 병자 | 병자 |
2025-01-07 | 2025-01-01 | 을사 | 정축 | 정축 |
💡 DB에서 간지 데이터를 미리 조회할 수 있게 구성하면 사주 계산 속도가 빨라집니다.
📁 2. 절기 DB 구성 예시 (12절기 컬럼 구조)
연도 | 입춘 | 경칩 | 청명 | 입하 | 망종 | 소서 | 입추 | 백로 | 한로 | 입동 | 대설 | 소한 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | 01-07 17:45 | 03-05 10:09 | 04-04 21:03 | 05-05 15:23 | 06-05 06:10 | 07-07 00:46 | 08-07 21:39 | 09-07 13:12 | 10-08 06:41 | 11-07 01:39 | 12-07 00:14 | 01-06 00:24 |
💡 각 절기값은 MM-DD HH:MM
형식의 문자열로 저장되며,
월주 및 대운 계산 시 해당 절기의 시각 이후인지 여부가 핵심 조건이 됩니다.
📌 공공 데이터 출처
이러한 음양력 변환표와 절기 시각 데이터는 한국천문연구원에서 제공하는 공공 자료를 기반으로 구성할 수 있습니다.
🔌 PHP에서 SQLite 연결은 이렇게!
1 2 3 4 5 |
// 사주용 캘린더 DB 연결 $pdo_calendar = new PDO('sqlite:' . __DIR__ . '/[캘린더 DB 파일명]'); // 절기 정보 DB 연결 $pdo_solar = new PDO('sqlite:' . __DIR__ . '/[절기 DB 파일명]'); |
✅ 실제 파일명은 서버에 업로드한 이름과 일치하도록 설정하면 됩니다.
예: calendar.sqlite
, solar_data.sqlite
등
🧠 사주를 구성하는 요소는?
기둥 | 구성 요소 | 의미 |
---|---|---|
년주 | 천간 + 지지 | 태어난 해의 기운 |
월주 | 천간 + 지지 | 해당 달의 절기 기준 기운 |
일주 | 천간 + 지지 | 해당 날의 기운 |
시주 | 천간 + 지지 | 태어난 시각의 기운 |
이 네 가지 기둥을 정확히 구하기 위해, 천간 10개 + 지지 12개를 조합한 60갑자 배열이 필요합니다.
또한 월주와 대운은 달력상의 달이 아닌, 절기 기준(입춘 등)으로 간지가 바뀌므로 절기 정보가 필수입니다.
✨ 마무리
1편에서는 전체적인 구조와 데이터 준비 과정을 정리해봤습니다.
- 어떤 기술을 사용했는지
- 어떤 데이터가 필요한지
- 사주를 어떻게 구성할 수 있는지
다음 글에서는 본격적으로 사주 계산 알고리즘을 PHP로 구현하는 과정을 공유할 예정입니다.
Python에서 사용하던 알고리즘을 PHP로 옮길 때 겪은 시행착오와, 60갑자 순서 문제, 월운 계산에서 간지 오차를 해결한 과정까지 자세히 다룹니다.
📌 다음 편 예고
👉 [2편] 사주 계산 로직 구현하기 – Python 알고리즘을 PHP로 이식