--:--

좋은 아침이에요 ☀️

🌙 수면시간 계산기 · 90분 수면 주기

좋은 밤이에요

--:--

SMART ALARM

스마트 알람

알람 OFF

💡 화면을 켜둔 채로 자야 작동합니다. 알림 권한이 있으면 백그라운드에서도 깨워줘요.

STREAK

연속 기록

0일째
이번 주
0 / 7
최장 기록
0일
RECOMMENDED BEDTIME

지금 누우면 가볍게 눈 떠요

잠드는 데 14분 + 90분 단위 수면 주기 기준

THIS WEEK

최근 7일 수면

평균 수면
평균 취침
평균 기상
TONIGHT'S CHECKLIST

잠들기 전 30분 점검

TONIGHT'S TIP

불러오는 중…

CALCULATOR · 90-MIN CYCLE

수면시간 계산기

90분 수면 주기로 가장 개운한 시각을 계산해요

SLEEP DEBT

수면 부채

최근 7일 평균과 권장 7.5시간 비교

기록을 시작하면 표시돼요

95-DAY CHALLENGE

95일 수면 챌린지

매일 한 가지씩, 과학적 수면을 습관으로

Day 1
94일 남음
TODAY'S MISSION

미션 불러오는 중…

진행

MEDITATION · BREATHE · SOUNDS

명상 · 호흡 · 사운드

잠을 부르는 가이드 명상, 호흡 3종, 4채널 사운드 믹서

GUIDED MEDITATION

가이드 명상 (음성)

BREATHE

잠 부르는 호흡

시작을 누르세요

코로 4초 → 멈춤 7초 → 입으로 8초

SOUND MIXER

사운드 믹서 (동시 재생)

SLEEP TIMER

잠들기 모드

화면이 천천히 어두워지고 소리가 사라져요

SETTINGS

설치하면 앱처럼 실행돼요 · iOS는 공유 → 홈 화면에 추가

SLEEP RECORD · 30일

나의 수면 기록

날짜를 눌러 취침·기상·수면의 질·꿈일기 입력

좋음 보통 나쁨 0/30
7-DAY CHART

최근 7일 수면 그래프

수면시간 수면의 질
DREAM JOURNAL

최근 꿈/감사 일기

수면시간 계산기

수면시간 계산기 사이트 앱 렘수면 계산기 딥슬립 평균나이 입력

광고 영역 (home-top)

📂 카테고리

CATEGORY
미분류
글 90개
CATEGORY
수면
글 41개
광고 영역 (home-mid)

🆕 최신 글

어린이 평균 수면시간, 실제로는 얼마나 잘까요
어린이 권장 수면시간, 나이별로 얼마나 재워야 할까요
신생아 평균 수면시간, 몇 시간이나 자야 정상일까요
초등학생 권장 수면시간, 학년별로 어떻게 챙겨야 할까요
신생아 적정 수면시간, 하루 몇 시간이 정상일까요
아기 평균 수면시간
초등학생 적정 수면시간
유아 적정 수면시간, 연령별로 얼마나 재워야 할까요
광고 영역 (home-bottom)
SCIENCE-BACKED · 90-MINUTE CYCLE FORMULA

The Secret of
4시간 30분만 자도
개운한 아침

피곤의 원인은 수면 시간이 아닙니다.
하버드·스탠퍼드가 입증한 90분 수면 주기에 맞춰 기상하세요.

J
S
M
K
+
★★★★★
0명이 수면을 재설계하고 있습니다
0
일간 챌린지 프로그램
0+
전문 가이드 포스트
0%
30일 완주율
90
REM 주기 과학
⏰ CORE TOOL

90분 주기 수면시간 계산기

기상 시각을 입력하시면, 가장 개운하게 일어나는 취침 시각 4가지를 알려드립니다.

💡 입면에 평균 15분 소요를 반영. 각 결과는 90분 주기(REM+NREM)의 끝에서 기상하도록 계산됩니다.

📅 95-DAY CHALLENGE

첫 주 미리보기

매일 5분, 과학적으로 검증된 작은 실천이 쌓여 완전히 새로운 수면을 만듭니다.

🔬 SLEEP SCIENCE

왜 '언제 일어나는가'가 중요한가

수면의 질을 결정하는 것은 총 시간이 아니라 주기입니다.

01
🌀

90분 수면 주기

인간은 잠드는 순간부터 90분마다 NREM(깊은 잠) → REM(꿈꾸는 잠) 단계를 반복합니다. 이 주기 끝에서 일어날 때 가장 상쾌합니다.

02

주기 중간 기상 = 피로

같은 7시간을 자도 깊은 잠 중에 일어나면 '수면 관성(sleep inertia)'으로 하루 종일 무거운 피로가 이어집니다.

03
🎯

1.5 · 3 · 4.5 · 6 · 7.5시간

이상적인 수면 = 90분의 배수. 계산기가 이 공식을 당신의 기상 시각에 자동으로 맞춥니다.

💬 CHALLENGE STORIES

참여자가 말하는 변화

★★★★★
"아침 알람이 울려도 스누즈가 사라졌어요. 주기 끝에 깨는 것만으로 이렇게 달라질 줄은 몰랐습니다."
이지은 · 디자이너 · Day 45
★★★★★
"3주만에 오후 피로가 없어졌습니다. 매일 5분 실천 루틴이 습관이 되니 수면이 일상을 바꿨어요."
김현우 · 개발자 · Day 67
★★★★★
"계산기 쓰고 나서 처음으로 4.5시간만 자고도 개운한 날을 만났어요. 수면 과학이 신기합니다."
박서연 · 대학생 · Day 12
📱 PERSONAL DASHBOARD

당신만의 95일 여정을
대시보드에서 추적하세요

  • 오늘의 미션 · 연속 스트릭 기록
  • 기분 · 수면시간 · 메모 일일 기록
  • 95일 전체 진도 그리드 시각화
  • Google 계정으로 원탭 로그인
95일 챌린지 시작하기 →
DAY 42
/ 95
오늘의 미션
수면 일기 작성법
🔥 38
연속 기록
📚 FULL ARCHIVE

전체 가이드 (Day 1 ~ 136)

원하는 주제부터 시작할 수 있습니다.

* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: “Pretendard”, -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, sans-serif; background: linear-gradient(135deg, #0f0c29, #302b63, #24243e); color: #e0e0e0; min-height: 100vh; position: relative; overflow-x: hidden; } /* 별 애니메이션 배경 */ .stars { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; } .star { position: absolute; background: white; border-radius: 50%; animation: twinkle 3s infinite; } @keyframes twinkle { 0%, 100% { opacity: 0.3; } 50% { opacity: 1; } } .container { max-width: 1200px; margin: 0 auto; padding: 20px; position: relative; z-index: 1; } /* 헤더 */ .main-header { text-align: center; padding: 40px 20px; background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border-radius: 20px; margin-bottom: 30px; border: 1px solid rgba(255, 255, 255, 0.1); } .main-header h1 { font-size: 48px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 10px; } .main-header p { color: #b0b0b0; font-size: 18px; } /* 퀵 링크 */ .quick-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 30px; } .quick-link-card { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 15px; padding: 25px; text-align: center; transition: all 0.3s ease; cursor: pointer; } .quick-link-card:hover { transform: translateY(-5px); border-color: rgba(102, 126, 234, 0.5); box-shadow: 0 10px 30px rgba(102, 126, 234, 0.2); } .quick-link-card .icon { font-size: 48px; margin-bottom: 15px; } .quick-link-card h3 { color: #fff; margin-bottom: 10px; } .quick-link-card p { color: #b0b0b0; font-size: 14px; } /* 렘수면 계산기 */ .calculator-section { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 20px; padding: 40px; margin-bottom: 30px; } .calculator-title { font-size: 32px; color: #fff; text-align: center; margin-bottom: 30px; } .calc-tabs { display: flex; gap: 10px; margin-bottom: 30px; } .calc-tab { flex: 1; padding: 15px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; color: #b0b0b0; cursor: pointer; transition: all 0.3s ease; text-align: center; } .calc-tab.active { background: linear-gradient(135deg, #667eea, #764ba2); color: white; border-color: transparent; } .calc-content { display: none; } .calc-content.active { display: block; } .input-group { margin-bottom: 20px; } .input-group label { display: block; color: #e0e0e0; margin-bottom: 8px; font-weight: 600; } .input-group input, .input-group select { width: 100%; padding: 15px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; color: #fff; font-size: 16px; } .input-group input:focus, .input-group select:focus { outline: none; border-color: #667eea; box-shadow: 0 0 10px rgba(102, 126, 234, 0.3); } .calc-button { width: 100%; padding: 18px; background: linear-gradient(135deg, #667eea, #764ba2); border: none; border-radius: 12px; color: white; font-size: 18px; font-weight: bold; cursor: pointer; transition: all 0.3s ease; } .calc-button:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(102, 126, 234, 0.4); } .result-box { margin-top: 30px; padding: 30px; background: linear-gradient(135deg, rgba(102, 126, 234, 0.2), rgba(118, 75, 162, 0.2)); border-radius: 15px; border: 1px solid rgba(102, 126, 234, 0.3); display: none; } .result-box.show { display: block; animation: slideIn 0.5s ease; } @keyframes slideIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .result-time { font-size: 48px; font-weight: bold; text-align: center; color: #667eea; margin-bottom: 20px; } .result-details { text-align: center; color: #e0e0e0; } /* 90일 챌린지 */ .challenge-section { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 20px; padding: 40px; margin-bottom: 30px; } .challenge-header { text-align: center; margin-bottom: 30px; } .challenge-header h2 { font-size: 32px; color: #fff; margin-bottom: 10px; } .progress-ring { width: 200px; height: 200px; margin: 0 auto 20px; position: relative; } .progress-ring svg { transform: rotate(-90deg); } .progress-ring-circle { stroke: rgba(255, 255, 255, 0.1); fill: none; stroke-width: 10; } .progress-ring-progress { stroke: url(#gradient); fill: none; stroke-width: 10; stroke-linecap: round; transition: stroke-dashoffset 0.5s ease; } .day-counter { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; } .day-number { font-size: 48px; font-weight: bold; color: #667eea; } .day-label { color: #b0b0b0; font-size: 14px; } .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; margin-top: 30px; } .calendar-day { aspect-ratio: 1; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; display: flex; align-items: center; justify-content: center; font-weight: bold; cursor: pointer; transition: all 0.3s ease; } .calendar-day.completed { background: linear-gradient(135deg, #667eea, #764ba2); border-color: transparent; } .calendar-day.today { border-color: #667eea; box-shadow: 0 0 15px rgba(102, 126, 234, 0.5); } .calendar-day:hover { transform: scale(1.1); } /* 로그인 프롬프트 */ .login-prompt { text-align: center; padding: 40px; background: rgba(255, 255, 255, 0.05); border-radius: 15px; border: 1px dashed rgba(255, 255, 255, 0.2); } .login-button { display: inline-block; padding: 15px 40px; background: linear-gradient(135deg, #667eea, #764ba2); color: white; text-decoration: none; border-radius: 10px; font-weight: bold; margin-top: 20px; transition: all 0.3s ease; } .login-button:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(102, 126, 234, 0.4); } /* 반응형 */ @media (max-width: 768px) { .main-header h1 { font-size: 32px; } .quick-links { grid-template-columns: 1fr; } .calculator-section { padding: 20px; } .calc-tabs { flex-direction: column; } }

수면시간 계산기

90일간의 수면 혁명을 시작하세요

💤 렘수면 계산기

기상 시간으로 계산
취침 시간으로 계산
4 사이클 (6시간) 5 사이클 (7.5시간) – 권장 6 사이클 (9시간)

🎯 90일 수면 챌린지

매일 기록하고 수면의 질을 높이세요

// 별 생성 function createStars() { const starsContainer = document.getElementById(“stars”); for (let i = 0; i t.classList.remove(“active”)); document.querySelectorAll(“.calc-content”).forEach(c => c.classList.remove(“active”)); if (tab === “wake”) { document.querySelectorAll(“.calc-tab”)[0].classList.add(“active”); document.getElementById(“wake-calc”).classList.add(“active”); } else { document.querySelectorAll(“.calc-tab”)[1].classList.add(“active”); document.getElementById(“sleep-calc”).classList.add(“active”); } } // 취침 시간 계산 function calculateBedtime() { const wakeTime = document.getElementById(“wake-time”).value; const cycles = parseInt(document.getElementById(“cycles”).value); const [hours, minutes] = wakeTime.split(“:”).map(Number); const wakeDate = new Date(); wakeDate.setHours(hours, minutes, 0, 0); const sleepMinutes = (cycles * 90) + 14; const bedtime = new Date(wakeDate.getTime() – sleepMinutes * 60000); const bedHours = bedtime.getHours().toString().padStart(2, “0”); const bedMinutes = bedtime.getMinutes().toString().padStart(2, “0”); document.getElementById(“wake-result-time”).textContent = bedHours + “:” + bedMinutes; document.getElementById(“wake-result-details”).innerHTML = “

총 수면 시간: ” + (sleepMinutes / 60).toFixed(1) + “시간

” + “

수면 사이클: ” + cycles + “회

” + “

💡 이 시간에 누우면 ” + wakeTime + “에 개운하게 일어날 수 있습니다!

“; document.getElementById(“wake-result”).classList.add(“show”); } // 기상 시간 계산 function calculateWaketime() { const sleepTime = document.getElementById(“sleep-time”).value; const [hours, minutes] = sleepTime.split(“:”).map(Number); const sleepDate = new Date(); sleepDate.setHours(hours, minutes, 0, 0); let optionsHTML = “

권장 기상 시간

“; optionsHTML += “
“; for (let cycle = 4; cycle <= 6; cycle++) { const sleepMinutes = (cycle * 90) + 14; const wakeDate = new Date(sleepDate.getTime() + sleepMinutes * 60000); const wakeHours = wakeDate.getHours().toString().padStart(2, "0"); const wakeMinutes = wakeDate.getMinutes().toString().padStart(2, "0"); const quality = cycle === 5 ? "추천" : cycle === 6 ? "좋음" : "최소"; const bgColor = cycle === 5 ? "rgba(102, 126, 234, 0.3)" : "rgba(255, 255, 255, 0.1)"; optionsHTML += "
“; optionsHTML += “
” + wakeHours + “:” + wakeMinutes + “
“; optionsHTML += “
” + cycle + ” 사이클
“; optionsHTML += “
” + (sleepMinutes / 60).toFixed(1) + “시간
“; optionsHTML += “
” + quality + “
“; optionsHTML += “
“; } optionsHTML += “
“; document.getElementById(“sleep-result-options”).innerHTML = optionsHTML; document.getElementById(“sleep-result”).classList.add(“show”); } // 스크롤 함수 function scrollToChallenge() { document.getElementById(“challenge”).scrollIntoView({ behavior: “smooth” }); } function scrollToArticles() { alert(“90개의 수면 가이드 아티클이 곧 추가됩니다!”); }

수면시간 계산기

수면시간 계산기 사이트 앱 렘수면 계산기 딥슬립 평균나이 입력

🌙

오늘 밤부터
수면을 재설계하세요

계산기 한 번으로 오늘 취침 시각을 알고, 95일 챌린지로 습관을 바꾸세요.