Rails 업데이트: PostgreSQL 18 가상 컬럼 지원 및 주요 버그 수정

Virtual columns, real bugfixes

발행일
2025년 10월 03일

핵심 요약

  • 1 PostgreSQL 18 지원으로 Rails 마이그레이션에서 `stored: false` 옵션을 활용한 가상 컬럼 추가가 가능해졌습니다.
  • 2 병렬 테스트 실행 중 워커 프로세스 비정상 종료 시 테스트 스위트가 멈추는 문제를 PID 추적을 통해 해결하여 안정성을 크게 개선했습니다.
  • 3 Active Record의 복합 외래 키 연관 관계 해제 오류 및 Rails 8.0.2의 autosave 관련 회귀 버그 등 다수의 중요한 버그가 수정되었습니다.

도입

최근 Rails 개발 환경에서 PostgreSQL 클라이언트가 최신 버전으로 업데이트되었으며, 이는 다양한 새로운 기능과 개선 사항을 가져왔습니다. 특히, 데이터베이스 기능 활용도를 높이고 개발 워크플로우를 효율화하는 데 기여할 중요한 변경사항들이 포함되어 있습니다. 이번 업데이트는 주로 가상 컬럼 지원, 병렬 테스트 환경의 안정성 강화, 그리고 Active Record를 비롯한 핵심 컴포넌트의 여러 버그 수정에 초점을 맞추고 있습니다. 이러한 개선들은 Rails 애플리케이션의 견고성과 개발 편의성을 한층 더 향상시키는 데 목적이 있습니다.

PostgreSQL 18 및 가상 컬럼 지원

  • 개발 컨테이너의 PostgreSQL 클라이언트가 최신 릴리스인 PostgreSQL 18로 업데이트되었습니다.
  • PostgreSQL 18은 가상(영구적이지 않은) 컬럼을 지원하며, Rails 마이그레이션에서 stored: false 옵션을 통해 추가할 수 있습니다.
  • 예시: t.virtual :lower_name, type: :string, as: "LOWER(name)", stored: false* 이를 통해 데이터베이스 레벨에서 파생된 데이터를 효율적으로 관리할 수 있습니다.

병렬 테스트 환경 개선

  • 병렬 테스트 실행 중 워커 프로세스 비정상 종료 시 테스트 스위트가 멈추는 문제가 발생했습니다.
  • 이 문제는 PID 추적을 통해 중단된 프로세스를 정리할 수 있도록 수정되어 안정성이 향상되었습니다.
  • 병렬 테스트 데이터베이스 설정에 복제본(replicas)이 포함되어, 통합 테스트가 올바른 워커 데이터베이스를 사용하도록 수정되었습니다.

주요 버그 수정 및 개선 사항

  • `Enumerable

sole` 호출 시 튜플이 전체 튜플을 반환하도록 원래 동작이 복원되었습니다.

  • LINE SEPARATORPARAGRAPH SEPARATOR 문자가 ECMAScript 2019부터 JavaScript 리터럴 문자열 내에서 이스케이프할 필요가 없어졌습니다.
  • 새 애플리케이션 생성 시 raise_on_open_redirects 사용 중단 메시지가 표시되지 않도록 수정되었습니다.
  • 인스턴스의 싱글톤 클래스에 정의된 class_attribute 접근 시 NameError가 발생하는 문제가 해결되었습니다.
  • Rails 8.0.2의 autosave 관련 회귀 버그(중첩 속성으로 인한 모델 유효성 문제)가 수정되었습니다.
  • Active Record에서 복합 외래 키 연관 관계 해제 시 발생하던 오류가 해결되었습니다.
  • 리다이렉트 소스 위치 로깅을 위한 새로운 설정 action_dispatch.verbose_redirect_logs가 도입되었습니다.

결론

이번 Rails 업데이트는 PostgreSQL 18의 가상 컬럼 지원을 통해 데이터베이스 활용도를 높이고, 병렬 테스트 환경의 안정성을 크게 개선하는 데 중점을 두었습니다. 또한, `Enumerable#sole` 동작 복원, JavaScript 문자열 처리 개선, 그리고 Active Record의 복합 외래 키 및 autosave 관련 회귀 버그 수정 등 다수의 중요한 버그들이 해결되었습니다. 이러한 변경사항들은 Rails 개발자들이 보다 효율적이고 안정적인 환경에서 애플리케이션을 구축하고 유지보수할 수 있도록 지원하며, 전반적인 개발 경험을 향상시킬 것으로 기대됩니다. 지난 한 주 동안 15명의 기여자가 Rails 코드베이스에 참여하여 이 모든 개선이 이루어졌습니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

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