— 시니어를 위한 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일, 병원에서
직접 이 앱을 쓰며 느꼈던 불편함이
오늘에서야 정리됐다.
그동안 계속 이런 생각이 들었다.
이 앱, 내가 쓰기에도 불편하면
남은 더 불편하지 않을까?
그래서 결국 이건
사용자를 위한 개선이면서
나 자신을 위한 개선이었다.
이제는 조금 자신 있게 말할 수 있다.
“이제는, 기록할 때 불안하지 않다.”
그리고 이게
내가 만들고 싶었던 앱의 모습이다.
