AI에게 물 마시라고 알리라고 요청했어요. 대신 제품을 만들었어요.
Source: Dev.to
코딩 세션을 시작한 지 62분이 지났을 때, 나는 AI 비서에게 물어봤다:
“너에게 물 마시라고 알려주는 규칙이라도 있니?”
있었다. 하지만 AI는 당신이 말을 걸 때만 반응한다. 푸시 알림을 보낼 수는 없다.
물 마시기는 모두가 해야 한다는 걸 알지만, 깊은 작업 중에는 실제로 실천하지 못하는 일 중 하나다. 그래서 AI가 강제할 수 없는 규칙에 의존하는 대신, 우리가 직접 실행할 수 있는 도구를 만들었다.
그 대화는 30 분 안에 오픈‑소스 제품으로 탄생했다.
아무도 이야기하지 않는 문제
개발자들은 수분 섭취가 필요하다는 것을 알고 있다. 우리는 앱을 설치하고, 휴대폰 타이머를 설정하고, 멋진 물병을 산다. 하지만 코딩에 몰두하면 모든 것을 무시한다:
- 전화가 진동? 무시한다.
- 브라우저‑탭 알림? 읽지도 않고 닫는다.
무시할 수 없는 것은 모든 것 위에 나타나는 창이며, OK를 클릭할 때까지 사라지지 않는다.
요청에서 스크립트까지 (5 분)
내가 말했어요:
“40분마다 팝업을 표시하는 PowerShell 스크립트를 작성해 주세요.”
AI의 첫 번째 버전은 Windows 풍선 알림을 사용했어요 — 오른쪽 하단에 나타나는 작은 토스트 알림이죠. 제가 테스트해봤습니다.
5초 후에 스스로 사라졌습니다. 쓸모없어요.
🧑 “창을 5× 크게 만들어 주세요.”
AI는 풍선 알림에서 WinForms 로 전환했어요 — 어두운 테마와 화면 중앙에 배치된, TopMost = $true인 정식 GUI 창입니다. 이제 알림을 놓치는 일은 없습니다.
스크립트: 90줄 PowerShell
전체는 하나의 파일 — water‑reminder.ps1:
param(
[int] $Interval = 40,
[string] $Title = "Water Reminder",
[string] $Message = "Drink a glass of water!",
[string] $Subtitle = "Take a 10 minute break",
[char] $Emoji = [char]::ConvertFromUtf32(0x1F4A7),
[int] $Width = 500,
[int] $Height = 300
)
모든 매개변수는 구성 가능합니다. 25 분마다 스트레칭 알림을 원하시나요? 포모도로 휴식 타이머가 필요하신가요? 플래그만 바꾸면 됩니다:
powershell -File water-reminder.ps1 -Interval 25 -Message "Stretch!" -Title "Break Time"
다크 UI
팝업은 늦은 밤 세션에서도 눈을 자극하지 않는 다크 테마를 사용합니다:
- 배경:
rgb(30, 30, 40)— 거의 검정색 - 강조색:
rgb(100, 180, 255)— 부드러운 파란색 - 타이포그래피: 상단에 48 pt 이모지가 있는 Segoe UI

Electron도, Node도 없습니다. 의존성도 없습니다. 단지 PowerShell와 모든 Windows 설치에 포함된 .NET 어셈블리만 사용합니다.
The Loop
while ($true) {
Start-Sleep -Seconds ($Interval * 60)
$count++
$time = Get-Date -Format "HH:mm:ss"
Write-Host "[$time] Reminder #$count"
Show-Reminder
}
그게 전부입니다. Sleep → 팝업 → 반복. 카운터가 콘솔에 기록되어 오늘 몇 개의 알림을 받았는지 확인할 수 있습니다.
스크립트에서 제품으로 (20 분)
몇 분간 테스트한 후, 나는 이렇게 말했습니다: “다른 사람도 사용할 수 있도록 이것을 제품으로 만들자.”
AI는:
- 적절한 구조를 가진 프로젝트 폴더를 생성했습니다.
- 제 readme‑guidelines를 따라 README(레포를 참고)를 작성했습니다.
- MIT 라이선스를 추가했습니다.
- 모든 매개변수를 문서화한
ARCHITECTURE.md를 만들었습니다. - 검색 가능성을 위해 토픽을 달아 GitHub에 공개했습니다.
배포를 위한 한 줄 명령:
gh repo create water-reminder --public --source=. --push \
--description "Desktop reminder to drink water and take breaks"
VS Code 자동‑시작 (가장 좋은 부분)
아침마다 스크립트를 직접 실행하는 것을 기억하고 싶지 않아, 워크스페이스를 열 때 자동으로 실행되도록 VS Code 작업을 추가했습니다:
{
"label": "Water Reminder",
"type": "shell",
"command": "powershell -File water-reminder.ps1",
"presentation": { "reveal": "silent", "panel": "dedicated" },
"isBackground": true,
"runOptions": { "runOn": "folderOpen" }
}
VS Code를 열면 → 알림이 백그라운드 터미널에서 조용히 시작 → 40 분 뒤에 첫 번째 팝업이 표시됩니다.
한 번만 활성화: Ctrl+Shift+P → Tasks: Manage Automatic Tasks in Folder → Allow.
실제로 배운 점
-
가장 좋은 도구는 먼저 자신의 문제를 해결한다.
나는 제품을 만들려고 시작한 것이 아니다. 긴 코딩 세션 중에 물을 마시도록 알려주는 신뢰할 수 있는 알림이 필요했을 뿐이다. 제품은 두 번째였다. -
AI는 부족한 인프라를 보완할 수 없다.
내 AI는 물을 상기시켜 주는 규칙을 가지고 있었지만, 실제로 알림을 푸시할 수는 없었다. “능력”과 “인프라” 사이의 격차를 인식하는 것이 진짜 기술이다. -
PowerShell은 데스크톱 유틸리티에 과소평가된다.
설치 필요 없음. 의존성 없음. 빌드 단계 없음. 더블‑클릭만으로 Windows 7 이후 모든 Windows 머신에서 작동한다. 작은 도구에선 이것이 Electron보다 약 100× 빠르다. -
스크립트를 제품화하는 데는 20 분이면 충분, 2 일이 아니다.
README + LICENSE + GitHub 레포 + 주제 = 오픈‑소스 유틸리티의 최소 실행 가능 제품. 도구가 동작한다면, 바로 배포하라.
사용해 보기
git clone https://github.com/maximosovsky/water-reminder.git
powershell -File water-reminder.ps1
물을 마시는 것을 잊어버릴 때도 저장소에 별표를 달아 주세요:
공개적으로 구축하며, 한 번에 하나의 유틸리티씩.
여정을 따라가세요: LinkedIn · GitHub
[https://github.com/maximosovsky](https://github.com/maximosovsky)