오래 앉아 있으면,
고양이가 찾아옵니다 🐾
60분마다 귀여운 고양이가 화면에 나타나 5분 스트레칭을 챙겨주는 알림 앱이에요. 브라우저에서 바로 쓰고, 한 번의 클릭으로 데스크톱 앱처럼 설치할 수 있어요.
⚠️ 이 페이지가 file:// 또는 보안되지 않은 주소로 열렸습니다. 설치·알림·오프라인 기능은
http://localhost 또는 HTTPS 에서만 동작합니다. 아래 빠른 시작을 따라
node serve.js로 서버를 켠 뒤 http://localhost:8080 으로 열어 주세요.
이런 걸 해줘요
타이머 하나지만, 집사가 진짜 일어나게 만드는 데 집중했어요.
정해진 주기로 등장
30 / 45 / 60 / 90분 또는 원하는 분 단위로 설정. 기본값은 60분이에요.
랜덤 멘트 8종
"나랑 5분만 스트레칭하자냥!", "지금 안 일어나면 젤리 쿡 찌른다냥!" 같은 멘트가 매번 바뀌어요.
5분 휴식 카운트다운
휴식 시간이 끝나면 고양이가 알아서 들어가고 다음 작업 타이머가 시작돼요.
스누즈
지금은 곤란하다면 "5분 뒤 다시". 잠깐 미뤄도 고양이는 꼭 다시 와요.
시스템 알림 + 야옹 소리
다른 창을 보고 있어도 운영체제 알림과 효과음으로 알려줘요.
항상 위 미니창
미니창을 열어 두면 다른 프로그램을 쓰는 중에도 고양이가 모든 창 위에 나타나요. (Chrome / Edge)
새로고침·재시작에도 정확
시각 기준으로 계산하므로 탭을 바꾸거나 다시 열어도 타이머가 어긋나지 않아요.
고양이의 하루
상황마다 다른 표정으로 찾아와요. 설정에서 6종 중 좋아하는 품종을 고를 수 있어요.
빠른 시작 (3단계)
웹앱 기준이에요. 데스크톱 앱과 크롬 확장은 다른 버전을 보세요.
web_app 폴더에서 node serve.js 실행이미 이 페이지가 열려 있다면 완료!
http://localhost:8080 접속file:// 로 열면 설치가 안 돼요
설치하면 독립 창 앱으로 열려요
📖 사용법 매뉴얼
처음 쓰는 분을 위한 전체 설명이에요. 왼쪽 목차로 바로 이동할 수 있어요.
1. 동작 흐름
"5분 뒤 다시"를 누르면 고양이가 잠시 들어갔다가 스누즈 시간 뒤에 다시 나와요.
2. 고양이가 나왔을 때
| 버튼 | 하는 일 |
|---|---|
| 스트레칭 완료! 🐾 | 고양이를 숨기고 작업 타이머를 처음부터 다시 시작해요. 실제로 일어나서 움직인 뒤 누르세요. |
| N분 뒤 다시 | 스누즈. 설정한 시간(기본 5분) 뒤에 고양이가 다시 나와요. |
| (아무것도 안 누름) | 휴식 카운트다운이 끝나면 고양이가 알아서 들어가고 다음 작업 사이클이 시작돼요. |
3. 메인 화면 버튼
- 지금 고양이 부르기 🐱 — 기다리지 않고 바로 휴식을 시작해요. 처음 설치했을 때 동작 확인용으로도 좋아요.
- 일시정지 / 재개 — 회의나 점심시간처럼 알림이 필요 없을 때. 남은 시간은 그대로 보존되고, 재개하면 이어서 카운트다운해요.
- 상단 큰 숫자 — 다음 고양이 등장(또는 휴식 종료)까지 남은 시간. 브라우저 탭 제목에도 함께 표시돼요.
3-1. 항상 위 미니창 — 다른 창 위에 고양이가 나오게 하기
웹페이지는 보안 정책상 스스로 창을 앞으로 가져올 수 없어요. 대신 Chrome/Edge의 항상 위 미니창(문서 PiP)을 열어 두면 평소엔 남은 시간을, 휴식이 시작되면 고양이를 어떤 프로그램 위에서든 보여줘요.
- 앱 화면에서 📌 항상 위 미니창 열기를 누르세요. 작은 창이 열리고 항상 위에 떠 있어요.
- 미니창은 드래그로 옮기고 모서리로 크기를 바꿀 수 있어요. 구석에 두고 다른 일을 하세요.
- 고양이가 나오면 미니창 안의 스트레칭 완료 / N분 뒤 다시 버튼으로 바로 처리할 수 있어요.
미니창은 브라우저 규칙상 버튼을 눌러야만 열리고 자동으로는 열 수 없어요. 앱 탭을 닫거나 새로고침하면 미니창도 함께 닫히니 다시 열어 주세요. Chrome / Edge 116 이상에서만 지원되며, 추가 설정 없이 항상 위로 뜨는 걸 원하면 데스크톱 앱을 쓰세요.
4. 설정
| 항목 | 설명 |
|---|---|
| 작업 간격 | 고양이 등장 주기. 30/45/60/90분 중 선택하거나 "직접 입력"으로 1~720분 지정. 저장하면 작업 타이머가 새 간격으로 다시 시작돼요. |
| 휴식 시간 | 고양이가 머무는 시간(분). 기본 5분. |
| 다시 알림(스누즈) | "N분 뒤 다시" 버튼의 N. 기본 5분. |
| 고양이 품종 | 치즈·삼색이·고등어·러시안블루·샴·턱시도 중 선택. 메인 화면, 오버레이, 미니창에 모두 적용돼요. |
| 고양이 크기 | 화면에 나오는 고양이의 크기. 작게 / 보통 / 크게(기본) / 아주 크게. 메인 화면과 항상 위 미니창에 함께 적용돼요. 미니창은 창 크기에 맞춰 자동으로 줄어들어요. |
| 알림음 | 고양이 등장 시 야옹 효과음 재생 여부. |
| 시스템 알림 | 다른 창을 보고 있을 때 운영체제 알림을 띄울지 여부. 권한이 필요해요(아래 5번). |
설정은 이 브라우저(또는 설치된 앱)에 저장돼요. 저장 버튼을 눌러야 반영됩니다.
5. 시스템 알림 권한
- "지금 고양이 부르기"나 "저장", "설치하기"를 처음 누를 때 브라우저가 알림 권한을 물어봐요. 허용을 선택하세요.
- 앱 창이 보이는 동안에는 화면 안의 고양이 오버레이만 뜨고, 다른 창을 보고 있을 때만 시스템 알림이 와요.
- 실수로 차단했다면: 주소창 왼쪽 자물쇠(또는 설정 아이콘) → 알림 → 허용으로 바꾼 뒤 새로고침하세요.
6. 설치와 제거
설치 (Chrome / Edge)
- 이 페이지 위쪽의 데스크톱에 설치하기 버튼을 누르고 확인하면 끝.
- 버튼이 안 보이면 주소창 오른쪽의 앱 설치 아이콘(⊕ 또는 모니터 모양)을 누르거나, 브라우저 메뉴 → 저장 및 공유 → 앱으로 설치.
- 설치 후에는 시작 메뉴·작업 표시줄에서 고양이 알람으로 실행돼요. 로그인할 때 자동 실행하려면 설치된 앱 창의 메뉴(⋮) → "기기 로그인 시 앱 시작"을 켜세요.
제거
- 설치된 앱 창 오른쪽 위 메뉴(⋮) → 고양이 알람 제거, 또는 Windows 설정 → 앱 → 설치된 앱에서 제거.
Firefox는 데스크톱 PWA 설치를 지원하지 않아요. 웹페이지로는 그대로 쓸 수 있어요.
7. 알아둘 제약
- 창이 열려 있어야 동작해요. 최소화는 괜찮지만, 창을 완전히 닫으면 타이머도 멈춰요. 항상 켜두고 싶다면 트레이에 상주하는 데스크톱 앱을 쓰세요.
- 창이 다른 창 뒤에 있으면 앱 창 안의 고양이는 보이지 않아요. 항상 위 미니창을 열어 두거나, 시스템 알림(클릭하면 앱 창이 앞으로 와요)을 켜 두세요.
- 설치·알림·오프라인 기능은
http://localhost또는 HTTPS 주소에서만 켜져요. - 로컬 서버(
node serve.js)가 꺼져 있으면localhost:8080이 열리지 않아요. 설치된 앱은 캐시 덕분에 서버 없이도 열리지만, 파일을 갱신하려면 서버가 필요해요.
8. 빠르게 테스트하기
60분을 기다리기 어렵다면 배속 모드로 열어 보세요. 1분이 1초로 계산되어 60초 뒤 고양이가 나오고 5초 뒤 들어가요.
http://localhost:8080/app.html?speed=60
배속 모드에서는 상태를 저장하지 않으므로, 일반 모드로 다시 열면 평소대로 60분 타이머가 시작돼요.
문제 해결
창이 다른 창 뒤에 있으면 고양이가 안 나와요
웹앱은 스스로 창을 앞으로 가져올 수 없어요. 앱 화면의 📌 항상 위 미니창 열기를 한 번 눌러 두면 그 작은 창이 항상 위에 떠 있어서, 휴식 시간이 되면 어떤 프로그램 위에서든 고양이가 나타나요(사용법 3-1). 미니창 없이도 시스템 알림은 오고, 알림을 클릭하면 앱 창이 앞으로 와요. 아무 조작 없이 항상 위로 뜨는 게 필요하면 데스크톱 앱을 쓰세요.
localhost:8080 이 안 열려요
서버가 꺼져 있는 경우가 대부분이에요. 터미널에서 cd web_app 후 node serve.js를 실행하고, 그 터미널 창을 닫지 마세요. 다른 프로그램이 8080 포트를 쓰고 있다면 node serve.js 3000처럼 포트를 바꾸고 http://localhost:3000으로 여세요. 주소를 https://로 치지 않았는지도 확인하세요.
"설치하기" 버튼이 안 보여요
Chrome/Edge에서 http://localhost 또는 HTTPS로 열었는지 확인하세요. 이미 설치된 경우에도 버튼은 숨겨져요. 주소창 오른쪽의 앱 설치 아이콘이나 브라우저 메뉴 → 저장 및 공유 → 앱으로 설치로도 설치할 수 있어요.
그래도 안 보인다면 Chrome이 이 주소(출처)에 대해 설치 안내를 잠시 억제하고 있는 경우예요. 서버를 다른 포트로 띄우면(예: node serve.js 8090 → http://localhost:8090) 새 주소로 인식되어 버튼이 다시 나타나요.
소리가 안 나요
설정의 알림음이 켜져 있는지 확인하세요. 브라우저는 사용자가 페이지와 한 번도 상호작용하지 않으면 소리를 막을 수 있어요. 아무 버튼이나 한 번 누른 뒤에는 정상 재생돼요.
시스템 알림이 안 와요
알림 권한이 "허용"인지(주소창 자물쇠 → 알림), 설정의 시스템 알림이 켜져 있는지, Windows의 집중 모드/방해 금지가 꺼져 있는지 확인하세요. 앱 창이 화면에 보이는 동안에는 시스템 알림 대신 화면 안의 고양이만 떠요.
고양이가 너무 자주 나와요
주소에 ?speed=가 붙어 있으면 테스트용 배속 모드예요. app.html로 다시 여세요. 또는 설정의 작업 간격을 확인하세요.
데스크톱 앱 exe 를 실행하니 "Windows의 PC 보호" 경고가 떠요
직접 빌드한 파일에 코드 서명이 없어서 나오는 SmartScreen 경고예요. 추가 정보 → 실행을 누르면 됩니다. 다운로드 버튼이 보이지 않으면 아직 exe 가 빌드되지 않은 것이니 README의 빌드 명령으로 desktop_app/dist/CatMotionReminder.exe를 만들고 web_app/downloads/에 복사하세요.
다른 PC나 노트북에서도 쓰고 싶어요
web_app 폴더를 GitHub Pages 같은 HTTPS 정적 호스팅에 올리면 어디서든 열고 설치할 수 있어요. 모든 경로가 상대 경로라 하위 폴더에 올려도 동작해요.
다른 버전도 있어요
쓰는 환경에 맞게 고르세요. 기능은 세 가지가 거의 같아요.
데스크톱 앱 (Windows)
시스템 트레이에 상주해서 창을 닫아도 계속 동작. 휴식 시간엔 고양이가 화면 전체를 걸어 다니며 어떤 창 위에든 나타나요.
- 다운로드한
CatMotionReminder.exe를 더블클릭 (설치 과정 없음, Python 불필요) - "Windows의 PC 보호" 경고가 뜨면 추가 정보 → 실행 (코드 서명이 없어서 나오는 경고예요)
- 트레이(작업 표시줄 오른쪽) 고양이 아이콘 우클릭으로 간격·설정·종료
첫 실행은 압축을 풀어 2~5초 걸려요. 로그인 시 자동 실행은 README의 install.ps1 -AutoStart를 참고하세요.
크롬 확장 프로그램
웹 서핑 중 브라우저 탭 우측 하단에 등장. 브라우저가 켜져 있으면 동작.
chrome://extensions열기- 개발자 모드 켜기
- "압축해제된 확장 프로그램을 로드합니다" →
chrome_extension폴더 선택
자세한 실행·빌드 방법은 프로젝트의 README.md를 참고하세요.