사주 개선 3편: 태어난 시간을 모를 때 단정하지 않는 리포트 만들기
가족에게 생년월일은 들었지만 태어난 시각까지 정확히 아는 사람은 많지 않다. 기존 입력 화면에서 시각을 필수로 요구하면 이런 사용자는 계산을 시작할 수 없고, 아무 시각이나 임의로 넣으면 결과를 실제 기록처럼 받아들일 수 있다.
이번 개선의 기준은 “모르면 계산하지 않는다”가 아니라 “모르는 부분을 결과에서 숨기지 않는다”였다.
대표 시간대는 편의 입력이다
사용자는 시간 선택창에서 오시 같은 전통 시간대를 고를 수 있다. 오시는 11시부터 12시 59분까지를 가리키며, 화면에는 한자만 남기지 않고 시간 범위를 함께 적었다.
대표 시각을 내부 계산에 사용할 때는 해당 시간대의 시작과 끝이 각각 어떤 결과를 만드는지 확인한다. 예를 들어 오시를 선택하면 11:00과 12:59:59를 계산해 시주 후보를 만든다.
LocalDateTime start = selectedHour == 0
? request.birthDate().minusDays(1).atTime(23, 0)
: request.birthDate().atTime(selectedHour - 1, 0);
LocalDateTime end = selectedHour == 0
? request.birthDate().atTime(0, 59, 59)
: request.birthDate().atTime(selectedHour, 59, 59);
0시가 포함된 자시는 전날 23시부터 당일 00시 59분까지로 따로 처리한다. 날짜를 넘나드는 시간대를 일반적인 두 시간 블록으로 처리하면 후보 시주를 놓칠 수 있기 때문이다.
한 개의 결과와 여러 개의 후보를 분리하기
화면을 복잡하게 만들지 않기 위해 대표 시각 하나로 기본 리포트를 만든다. 동시에 시작과 끝에서 계산한 시주가 다르면 possibleHourPillars에 후보를 담아 결과에 표시한다.
리포트에는 다음을 구분해 보여 준다.
| 리포트 영역 | 의미 |
|---|---|
| 기본 네 기둥 | 대표 시각으로 만든 읽기 쉬운 기준 결과 |
| 가능한 시주 | 선택한 시간대의 양 끝에서 달라질 수 있는 후보 |
| 경고 | 실제 시각이 없어서 해석 범위가 넓어진다는 안내 |
| 계산 방법 | 지역 태양시 보정과 대표 시각 사용 사실 |
가능한 시주가 두 개라는 사실은 둘 중 하나를 자동으로 정답으로 고르는 근거가 아니다. 사용자가 가족 기록이나 출생증명서로 시간을 확인했을 때 다시 계산할 수 있도록 결과의 불확실성을 보존하는 장치다.
신살과 대운을 어디까지 보여 줄 것인가
도화살·역마살·화개살 같은 신살은 결과를 풍부하게 보이게 하지만, 출생 시각이 불명확한 상태에서 모든 해석을 강하게 말하면 오히려 신뢰를 떨어뜨린다.
현재 서비스는 다음 원칙을 적용한다.
- 신살은 연지와 일지의 삼합 그룹을 기준으로 계산한 보조 지표로 표시한다.
- 한문 이름 옆에 한국어 설명과 생활에서 참고할 수 있는 질문을 함께 보여 준다.
- 대표 시각을 사용한 경우 시각 기반 신살과 대운 시작점이 달라질 수 있다고 알린다.
- 건강·재산·법률·투자 결정을 대신하는 문장으로 확장하지 않는다.
이렇게 하면 전통 용어를 숨기지 않으면서도 한자 목록만 나열하는 결과를 피할 수 있다.
개인정보는 계산 후 남기지 않기
정확한 시각을 모른다는 정보도 개인 정보 맥락과 연결될 수 있다. 서비스는 생년월일·시각·성별·출생 지역·시간대를 요청 처리 중에만 사용하고, 사주 결과를 저장하지 않는다. 대표 시간대를 선택했다는 사실도 데이터베이스에 기록하지 않는다.
화면에는 다음 안내를 고정했다.
입력한 출생 정보는 계산에만 사용하며 저장하지 않습니다. 결과는 전통 명리 콘텐츠를 참고용으로 확인해 주세요.
기능을 풍부하게 만드는 것보다, 무엇을 모르는지와 어떤 정보가 남지 않는지를 같이 보여 주는 편이 이 도구의 목적에 더 맞다.
사용자가 다시 확인할 수 있는 리포트
좋은 결과 화면은 문장을 많이 출력하는 화면이 아니다. 사용자가 다음 질문에 답을 찾을 수 있어야 한다.
- 내가 어떤 날짜와 시간대를 입력했는가?
- 지역 태양시 보정 후 계산 시각은 무엇인가?
- 시각을 모르면 결과가 어느 범위까지 달라질 수 있는가?
- 이 결과를 생활의 중요한 결정을 대신하는 근거로 사용해도 되는가?
이 질문에 대한 답을 입력 정보, 계산 기준, 후보 시주, 주의사항 영역으로 나눠 배치했다. 결과를 단정하는 대신 다시 확인할 수 있게 만드는 것이 불확실성을 다루는 가장 실용적인 방법이었다.
시리즈를 마치며
사주 기능 개선은 해석 문장을 늘리는 작업보다 입력 기준과 경계값을 명확하게 만드는 작업에 가까웠다. 지역 태양시 보정으로 날짜 기준을 통일하고, 시간대와 절기 경고로 경계 입력을 드러내고, 모르는 시각은 후보와 안내로 표현했다.
직접 사용해 보기: 사주 리포트
함께 읽기: