Rails 여행 지도 앱: 데이터 모델링과 UX 개선을 통한 종합 점수 구현

Vibe coding a Rails travel app: Modeling travel preferences & frequency

작성자
Ruby AI News
발행일
2026년 01월 22일

핵심 요약

  • 1 Rails 여행 지도 앱 개발을 재개하며, 방문 빈도와 국가 평점을 결합한 '슈퍼 국가 점수' 데이터 모델링에 집중했습니다.
  • 2 사용자 맞춤형 여행 이력을 정확하게 반영하기 위해 방문 빈도에 로그 스케일 정규화를 적용하고, 평점과 빈도에 조건부 가중치를 부여하는 방안을 채택했습니다.
  • 3 앱의 사용자 경험(UX) 개선을 위해 '슈퍼 국가 점수'를 기본 맵 뷰로 설정하고, 직관적인 색상 팔레트와 토글 기능을 구현하는 데 중점을 두었습니다.

도입

본 스트림은 Rails 기반의 개인 여행 지도 앱 개발을 재개하며, 단순한 AI 프롬프팅을 넘어 보다 의도적이고 학습 지향적인 개발 접근 방식을 탐구합니다. 초기 개발은 AI 도구를 활용하여 기능적인 앱을 구축하는 데 초점을 맞추었으나, 이번 세션에서는 데이터 모델링과 사용자 경험(UX) 설계에 대한 심층적인 고민을 통해 사용자의 여행 이력과 선호도를 더욱 정확하고 풍부하게 시각화하는 것을 목표로 합니다. 특히, 방문 빈도와 국가 평점을 종합적으로 고려한 새로운 '슈퍼 국가 점수' 개념을 도입하여 앱의 가치를 높이고자 합니다.

기존 앱 기능 및 초기 UX 문제점

기존 Rails 여행 지도 앱은 사용자가 방문한 국가와 방문 횟수를 기록하고, 각 국가에 1부터 10까지의 평점을 부여할 수 있도록 설계되었습니다. 이를 통해 방문 빈도에 따른 히트맵과 평점에 따른 히트맵을 토글하여 볼 수 있었습니다.

그러나 몇 가지 UX 및 UI 문제가 발견되었습니다:

  • 평점 스케일의 비효율성: 1-10점 스케일은 너무 세분화되어 대부분의 평점이 6-8점에 집중되어 시각적 차별성이 부족했습니다. 이를 1-5점 스케일로 단순화하기로 결정했습니다.

  • 색상 팔레트의 혼란: 방문 빈도 히트맵에서 자주 방문한 국가를 나타내는 밝은 색상(빨강, 주황)이 평점 히트맵에서는 낮은 평점을 나타내는 데 사용되어 사용자에게 혼란을 주었습니다. 각 맵 뷰에 대한 직관적이고 구별되는 색상 팔레트의 필요성이 제기되었습니다.

‘슈퍼 국가 점수’ 데이터 모델링 전략

사용자의 여행 이력과 선호도를 종합적으로 반영하는 ‘슈퍼 국가 점수’를 생성하기 위해 다음 두 가지 핵심 요소를 고려했습니다.

1. 방문 빈도 정규화 (Frequency Normalization)

사용자의 개인적인 여행 패턴에 따라 방문 빈도를 상대적으로 평가하기 위한 여러 옵션이 논의되었습니다.

  • 옵션 A (백분위 기반): 방문 횟수를 백분위로 변환.

  • 옵션 B (순위 기반): 방문 횟수 순위를 1-5 스케일로 정규화.

  • 옵션 C (개인 최대치 대비 로그 스케일): 가장 많이 방문한 국가를 기준으로 로그 스케일을 적용. 방문 횟수가 늘어날수록 점수 증가율이 줄어드는 ‘수확 체감의 법칙’을 반영하며 개인화된 점수를 제공하는 이점이 있어 최종적으로 선택되었습니다.

  • 옵션 D (표준편차 Z-점수): 평균 방문 횟수 대비 표준편차를 활용.

2. 가중치 전략 (Weighting Strategy)

평점과 정규화된 빈도를 결합하는 방법에 대해 다양한 접근 방식이 검토되었습니다.

  • 옵션 A (가중 평균): 평점과 빈도에 고정된 가중치를 부여하여 합산. 단순하지만, 평점이 없는 국가에 대한 처리가 모호했습니다.

  • 옵션 B (곱셈 방식): 평점에 빈도 요소를 곱하여 변형.

  • 옵션 C (평점 우선, 빈도 보조): 평점을 주 기준으로 하고, 빈도를 보조 지표로 사용.

  • 옵션 D (조건부 가중치): 평점이 있는 경우(예: 평점 * 0.65 + 빈도 * 0.35)와 평점이 없는 경우(빈도만으로 점수를 계산하되, 평점 있는 국가보다 낮게 제한)를 구분하여 적용. 평점이 없는 경우에 대한 가정 없이 불확실성을 반영하며, 평점 있는 국가가 더 높은 순위를 차지하도록 보장하므로 최종적으로 채택되었습니다. 평점과 빈도의 가중치는 65:35로 설정하여 평점에 더 큰 비중을 두었습니다.

UX 구현 및 색상 팔레트 조정

‘슈퍼 국가 점수’를 앱의 기본 맵 뷰로 설정하고, 사용자가 방문 빈도 맵과 평점 맵으로 전환할 수 있도록 토글 버튼을 추가했습니다. 초기에는 ‘favorites’와 같은 모호한 레이블 대신 ‘top countries’와 같은 명확한 레이블을 사용하고, 각 맵 뷰의 설명 텍스트를 추가하여 사용자 이해도를 높였습니다.

가장 큰 난관은 직관적인 색상 팔레트를 찾는 것이었습니다. 여러 차례 시도 끝에, 각 맵 뷰가 시각적으로 구별되면서도 일관성을 유지하는 색상 조합을 찾기 위해 노력했습니다. 특히, ‘슈퍼 국가 점수’ 맵은 평점 맵과 동일한 색상 팔레트를 사용하여 시각적 일관성을 확보하고, 토글 시 각 지표에 따른 시각적 변화를 명확히 인지할 수 있도록 했습니다.

결론

이번 스트림을 통해 Rails 여행 지도 앱에 '슈퍼 국가 점수'라는 혁신적인 데이터 모델을 성공적으로 구현하고, 이를 사용자 친화적인 방식으로 시각화하는 데 상당한 진전을 이루었습니다. 방문 빈도 정규화와 조건부 가중치 전략을 통해 사용자의 복합적인 여행 경험을 더욱 정확하게 반영할 수 있게 되었습니다. 비록 색상 팔레트와 같은 UX 디테일에서 지속적인 개선이 필요하지만, AI와의 협업 방식을 '의도적인 학습'으로 전환함으로써 개발 과정의 깊이와 효율성을 동시에 높일 수 있었습니다. 이는 개인적인 프로젝트를 넘어, 데이터 모델링과 UX 디자인의 중요성을 다시 한번 상기시키는 기회가 되었습니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!