글자 크기

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

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

— 시니어를 위한 UX, 그리고 나 자신을 위한 앱

들어가며

며칠 동안 이런 말을 계속 들었다.

“뭐가 바뀐 거야?”

기능은 고쳤다고 생각했는데,
사용자 입장에서는 아무것도 달라진 게 없어 보였던 순간.
그 말이 괜히 더 아프더라.

오늘은 그 질문에서 시작해서,
“아, 이제 된다”라는 말이 나올 때까지의 기록을 남겨보려 한다.

이 글은 기술 자랑이 아니라,
늦게 배운 개발자가
늦게라도 제대로 만들고 싶어서
버티며 고친 하루의 기록이다.

⸻

문제는 생각보다 단순했다

1. 혈압을 누르는데… 왜 또 그냥 ‘건강기록’이지?

대시보드에서 혈압 카드를 눌렀는데,
화면은 늘 똑같은 건강기록 입력창.

사용자 입장에서는
“지금 내가 혈압을 입력하라는 거야, 뭘 하라는 거야?”
이게 너무 당연한 혼란이었다.

2. 슬라이더는 있는데, 말을 안 듣고

수면 시간을 조절하는 슬라이더.
보이긴 하는데, 움직여도 반응이 없거나
값이 저장되지 않거나.

Turbo 환경에서
이벤트 리스너가 조용히 사라지고 있었던 거다.
말 그대로 있는 척만 하는 UI였다.

3. 파라미터는 서로 다른 말을 하고 있었고

뷰는 이렇게 보내고,

params[:health_record][:metrics][:sleep_hours]

모델은 이렇게 기다리고 있었다.

metrics['sleep']['hours']

서로 다른 언어를 쓰는 두 사람이
같은 방에 앉아 있는 꼴이었다.

⸻

그래서 이렇게 고쳤다

1. “지금 뭘 입력하는지”부터 분명하게

혈압을 누르면 혈압 기록 화면,
혈당을 누르면 혈당 기록 화면.

당연한 걸 이제야 했다.

<%= link_to new_health_record_path(type: 'blood_pressure') %>

그리고 화면 위에 이렇게 말해줬다.

“혈압 측정 기록입니다.
오늘 측정한 수치를 편하게 적어주세요.”

기능보다 먼저 사람의 상황을 설명하는 문장을 올려두었다.

⸻

2. 슬라이더는 Stimulus에게 맡겼다

Rails 8, Turbo 환경에서는
인라인 스크립트보다 Stimulus가 훨씬 정직하다.

export default class extends Controller {
  static targets = ["slider", "display"]

  connect() {
    this.updateValue()
  }

  updateValue() {
    const value = this.sliderTarget.value
    this.displayTarget.textContent = value
  }
}

이제 슬라이더를 움직이면
숫자가 바로 커졌다가, 다시 돌아온다.

작은 변화지만,
“아, 이게 먹히는구나”라는 감각을 주는 순간이다.

⸻

3. 데이터는 컨트롤러에서 통역하게 했다

뷰와 모델이 서로 못 알아듣는다면,
누군가는 통역을 해야 한다.

그래서 컨트롤러가 중간에서 정리해줬다.

processed_metrics['sleep'] = {
  'hours' => metrics[:sleep_hours].to_f,
  'quality' => metrics[:sleep_quality]
}

이제 데이터는 더 이상 싸우지 않는다.
그냥 조용히, 제자리를 찾는다.

⸻

이번 작업에서 내가 가장 중요하게 생각한 것

1. 명확함

시니어에게는 “알아서”보다
“이건 이런 거예요”가 훨씬 중요하다.

제목, 안내 문구, 버튼 이름.
전부 다시 읽어보며
“이거, 우리 아버지가 봐도 이해할까?”
그 질문을 계속 던졌다.

⸻

2. 즉각적인 반응

저장 버튼을 눌렀는데
아무 말도 안 하면 사람은 불안해진다.

그래서 이제는
저장하면 바로 말해준다.

“혈압이 기록되었습니다.”
“혈당이 저장되었습니다.”

이 한 줄이
기술적으로는 사소하지만,
사용자에게는 안심이다.

⸻

3. 강요하지 않는 입력

정확한 시간, 정확한 수치.
중요하지만, 늘 기억할 수는 없다.

그래서 이 앱은 이렇게 말한다.

“대충 기억나는 만큼만 적어도 괜찮아요.”

이게 이 앱의 철학이다.

관리 앱이 아니라,
기억을 붙잡아주는 동행 앱.

⸻

배운 것

이번 작업은 버그 수정이 아니라
사고방식 수정이었다.
• “정확해야 한다”에서
→ “사람은 원래 이렇게 입력한다”로
• “기능이 있으면 된다”에서
→ “쓰는 순간이 편해야 한다”로
• “일단 만들자”에서
→ “누가 쓸지 먼저 생각하자”로

⸻

마무리

1월 6일, 병원에서
직접 이 앱을 쓰며 느꼈던 불편함이
오늘에서야 정리됐다.

그동안 계속 이런 생각이 들었다.

이 앱, 내가 쓰기에도 불편하면
남은 더 불편하지 않을까?

그래서 결국 이건
사용자를 위한 개선이면서
나 자신을 위한 개선이었다.

이제는 조금 자신 있게 말할 수 있다.

“이제는, 기록할 때 불안하지 않다.”

그리고 이게
내가 만들고 싶었던 앱의 모습이다.


↘ 인생 연대표로 보러가기 · 늦깎이연구소