버전 vs 승인

발행: (2026년 3월 23일 PM 07:16 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

문제

오늘 나는 겉보기엔 간단한 “#index에 레코드 하나가 보이지 않는다”는 버그 수정 작업에서 까다로운 문제를 마주했다.

데이터 상황

Task.pluck(:project_version_id, :is_actual)
#=> [
#     [1, true],
#     [nil, true]
#   ]

버전이 있는 레코드와 버전이 없는 레코드 모두 :actual일 수 있다. 이것이 맞을까?

고려해야 할 질문

  • “드래프트” 데이터가 어느 정도 “대기실”에 저장되는 경우가 있을까?
  • 가능한 드래프트 데이터를 접근하는 것이 더 중요한가, 아니면 최신 승인/실제 버전에 접근하는 것이 더 중요한가?
  • 어떤 작업이 새로운 버전을 생성하게 하는가?

답변에 따라 두 가지 시스템 중 하나가 만들어질 수 있다.

가능한 시스템

Version vs Approval diagram

개발자에게 주는 시사점

핵심 차이는 버전이 없는 데이터의 의미와 중요성이다.

  • 버전 관리된 경우: 일반 데이터가 실제 데이터이며, 과거 버전 데이터에 접근하려면 별도의 처리가 필요하다.
  • 승인 패턴: 버전이 없는 데이터는 아직 승인되지 않았기 때문에 중요도가 낮다.

당연히 승인 워크플로우는 이해하기 더 복잡하고, project.tasks.actualproject.last_approved_version.tasks와 정확히 동일하지 않다는 점을 명확히 전달하기 위해 신중한 개발이 필요하다.

0 조회
Back to Blog

관련 글

더 보기 »