글자 크기

HealthNote

Senior HealthNote 개발 일지

Rails 8에서 건강기록 입력 폼을 고치며

— 시니어를 위한 UX, 그리고 나 자신을 위한 앱 들어가며 며칠 동안 이런 말을 계속 들었다. “뭐가 바뀐 거야?” 기능은 고쳤다고 생각했는데, 사용자 입장에서는 아무것도 달라진 게 없어 보였던 순간. 그 말이 괜히 더 아프더라. 오늘은 그 질문에서 시작해서, “아, 이제 된다”라는 말이 나올 때까지의 기록을 남겨보려 한다. 이 글은 기술 자랑이 아니라, 늦게 배운 계속 읽기 →

Rails 8에서 건강기록 입력 폼을 고치며 더 읽기"

앱이 대답하기 시작했다

HealthNote에 작은 변화가 생겼다. 식사를 기록하고 나면, 이제 앱이 대답한다. “저장했습니다.” 별것 아닌 것 같지만, 이 한 줄이 생기고 나서 사용자들의 불안이 많이 줄었다. 침묵은 불안을 만든다 이전에는 이랬다. 식사 내용을 입력한다 ‘저장’ 버튼을 누른다 화면이 조용히 닫힌다 …정말 저장됐나? 특히 나이가 들수록 “내가 제대로 누른 건가?” “저장이 된 건가?” 하는 의구심이 든다. 그래서 다시 계속 읽기 →

앱이 대답하기 시작했다 더 읽기"

연도를 내리는 일, 사람에게 다가가는 일

요즘 앱을 만들면서 가장 많이 드는 생각은 이거다. “우리는 왜 이렇게 사람을 위로 스크롤하게 만들까?” 생년월일 입력 화면에서 끝없이 내려가야 하는 연도 리스트를 보며, 문득 이런 생각이 들었다. 이건 입력이 아니라 체력 테스트 아닌가. 문제는 ‘정확함’이 아니라 ‘피로도’였다 우리는 흔히 이렇게 생각한다. 생년월일은 정확해야 한다 그러니 연도는 1900년부터 전부 보여줘야 한다 논리적으로는 맞다. 하지만 사람의 계속 읽기 →

연도를 내리는 일, 사람에게 다가가는 일 더 읽기"

식사 기록 500 에러를 고치며, 시간을 다시 배웠다

💊 식사 기록 500 에러를 고치며, 시간을 다시 배웠다 에러는 기술 문제가 아니었다. 시간을 어떻게 기억하는가의 문제였다. 사람마다 다른 방식으로 시간을 부르는 법을 배웠다. 500 에러의 시작 HealthNote 앱의 식사 기록 기능에서 500 에러가 발생했다. 서버 로그를 보니 시간 파싱 오류였다. 문제는 단순했다. 사용자가 입력한 시간 형식이 서버가 기대하는 형식과 달랐던 것이다. 하지만 수정하면서 깨달았다. 계속 읽기 →

식사 기록 500 에러를 고치며, 시간을 다시 배웠다 더 읽기"

버튼을 눌렀는데, 마음이 사라질 때

오늘은 기능 하나를 고쳤다. 겉으로 보면 아주 사소하다. 혈압 카드에서 ‘기록하기’를 눌렀을 때, 혈압 기록 화면이 제대로 보이게 만든 것. 그런데 이 작업을 하면서 다시 한 번 확신했다. 좋은 앱은 기능이 아니라 ‘의도’를 기억하는 도구여야 한다는 것. 💡 좋은 앱은 기능이 아니라 의도를 기억한다.사용자가 왜 이 버튼을 눌렀는지, 끝까지 잊지 않는 것. 문제는 늘 조용히 계속 읽기 →

버튼을 눌렀는데, 마음이 사라질 때 더 읽기"

기록은 시간을 재는 일이 아니다 — 사람을 존중하는 건강 기록 앱으로의 작은 전환

요 며칠, ‘늦깎이 건강노트’를 조금 고쳤다. 기능을 크게 추가한 것도 아니고, AI를 더 붙인 것도 아니다. 하지만 이 수정은 꽤 중요했다. 이 앱이 누구를 위한 앱인지 조금 더 분명해졌기 때문이다. 1. 이미 가입한 사람에게 “다시 가입하라”고 묻지 않기 같은 이메일로 다시 회원가입을 시도해봤다. 그리고 화면에 뜬 건 익숙한 말이었다. “이미 사용 중인 이메일입니다.” 문제는, 이 계속 읽기 →

기록은 시간을 재는 일이 아니다 — 사람을 존중하는 건강 기록 앱으로의 작은 전환 더 읽기"

시간을 바로 세우는 일

— 건강 기록 앱에서 “언제”의 의미를 다시 묻다 오늘 하루를 돌아보면, 코드보다 더 많이 만진 건 시간이었다. 정확히 말하면, 숫자로 찍히는 시간이 아니라 의미를 가진 시간. 문제는 사소해 보였다 처음 시작은 단순했다. 모바일에서 회원가입이 안 된다 회색 레이어가 화면을 덮고 클릭이 안 된다 기록 시간이 현재 시간이 아니다 수정했다는데 여전히 반영이 안 된다 흔한 버그처럼 계속 읽기 →

시간을 바로 세우는 일 더 읽기"

시간이 제대로 표시된 건강 기록

시간이 어긋난 앱은 몸을 맡길 수 없다

시간이 어긋난 앱은 몸을 맡길 수 없다 오늘 하루를 한 문장으로 요약하면 이거다. 시간이 틀린 건강 앱은 신뢰를 잃는다. 💡 시간이 틀리면,기록은 그냥 메모가 된다. 문제의 시작: 기록했는데, 지금이 아니다 건강 기록을 남겼다. 오한이 와서 타이레놀을 먹었고, 몇 시간 뒤 한 알을 더 먹고 괜찮아졌다. 그날의 몸 상태를 있는 그대로 남겼다. 그런데 기록 화면에 찍힌 계속 읽기 →

시간이 어긋난 앱은 몸을 맡길 수 없다 더 읽기"

모바일에서만 회원가입이 안 됐던 이유 — 422 에러의 진짜 원인은 SSL이었다

— 422 에러의 진짜 원인은 SSL이었다 증상은 단순했다 PC에서는 회원가입이 잘 됐다. 그런데 모바일에서 가입 버튼을 누르면 이런 메시지가 떴다. 422 Unprocessable Entity “The change you wanted was rejected.” 같은 서버, 같은 코드, 같은 폼. 왜 모바일에서만? 처음엔 흔한 용의자들을 의심했다 Rails에서 422 에러가 나면 보통 이런 것들을 먼저 본다. CSRF 토큰 문제? Turbo가 뭔가 계속 읽기 →

모바일에서만 회원가입이 안 됐던 이유 — 422 에러의 진짜 원인은 SSL이었다 더 읽기"

배포 이후, 앱은 살아 있었고 나는 다시 사용자로 돌아왔다

— 늦깎이 건강노트 개발일지 4화 오늘 나는 오랜만에 “이게 정말 끝났구나”라는 감각을 느꼈다. 물론, 개발은 끝나지 않았다. 하지만 ‘서버 에러와 싸우는 시간’은 끝났고, 이제는 ‘앱을 쓰는 사람’의 자리로 돌아올 수 있게 됐다. 배포는 성공했지만, 마음은 아직 안심이 안 됐다 며칠 전 Senior HealthNote는 분명히 배포에 성공했다. Kamal, Docker, PostgreSQL, Solid Cache/Cable/Queue… Rails 8이 요구하는 것들을 계속 읽기 →

배포 이후, 앱은 살아 있었고 나는 다시 사용자로 돌아왔다 더 읽기"