지난 글들

747개의 글이 있습니다

Rails에서 Avo와 Discard를 활용한 소프트 삭제 구현

Implement soft-delete in Rails with Avo + Discard | by Pentest Team @greenhats.com | Medium

  • Avo의 DiscardedRecord 가상 리소스를 활용하여 Rails 애플리케이션 전반의 소프트 삭제된 항목을 통합 관리하는 방법을 설명합니다.
  • Discard::Model을 포함하는 모든 로드된 모델을 동적으로 순회하며, 각 모델의 기본 스코프를 무시하고 소프트 삭제된 레코드를 조회합니다.
  • 소프트 삭제된 레코드의 상세 정보를 Avo 관리자 패널에서 JSON 형식으로 시각화하고, Undiscard 액션을 통해 편리하게 복원할 수 있는 기능을 제공합니다.
jeff 2025년 05월 16일

Ruby 3.4.4 릴리스 발표

Ruby 3.4.4 Released

  • Ruby 3.4.4 버전이 YJIT 버그 수정 및 Windows 빌드 문제 해결을 위해 2025년 5월 14일 조기 릴리스되었습니다.
  • 이번 릴리스는 로컬 변수 관련 YJIT 버그와 GCC 15를 사용하는 Windows 환경에서의 빌드 문제를 포함한 여러 버그 수정 사항을 담고 있습니다.
  • 향후 Ruby 3.4의 안정적인 버전은 격월 단위로 정기적인 릴리스가 계획되어 있으며, 중대한 변경 발생 시 조기 릴리스될 수 있습니다.
Ruby-Lang 2025년 05월 14일

Ruby 해시 메모이제이션의 필요성 재고

Stop memoizing Hash lookups in Ruby

  • Ruby 해시 조회는 이미 나노초 단위로 매우 빠르므로, 대부분의 경우 메모이제이션이 불필요합니다.
  • 해시 조회 메모이제이션은 성능 향상이 미미하며, 존재하지 않는 키를 조회할 때는 오히려 성능 저하를 야기할 수 있습니다.
  • 메모이제이션은 데이터베이스 호출이나 고비용 계산과 같이 실제로 성능 개선이 필요한 경우에만 적용하는 것이 바람직합니다.
The Awesome Ruby 2025년 05월 14일
  • ZJIT는 RubyKaigi 2025에서 발표된 새로운 JIT(Just-In-Time) 컴파일러로, Ruby에 성공적으로 병합되었습니다.
  • ZJIT는 YJIT와는 다른 아키텍처를 가지며, 커뮤니티 기여를 용이하게 하기 위해 보다 전통적인 컴파일러 방식으로 설계되었습니다.
  • 현재 개발 초기 단계에 있으며, Ruby 3.5에는 YJIT와 함께 제공될 예정이고, 향후 YJIT와 동등한 수준의 기능과 성능을 목표로 개발될 것입니다.
Rails at Scale 2025년 05월 14일

새로운 가이드 PR, Rails World 업데이트 및 기타 소식!

New Guides PR, Rails World Updates and more!

  • Rails 코드베이스에 새로운 가이드 PR이 올라왔으며, SqlLiteral 처리 개선, SQLite 쿼리에서 TRUE/FALSE 사용 등 다양한 업데이트가 이루어졌습니다.
  • ActiveRecord::QueryCache의 내부 구조가 개선되었고, MemCacheStore의 연결 오류 처리가 강화되어 시스템 안정성이 향상되었습니다.
  • 지난 한 주간 11명의 기여자가 Rails 코드베이스 발전에 참여했습니다.
This Week in Rails 2025년 05월 09일

RailsConf 키노트 연사 John Denap: Flexar의 Java 마이크로서비스에서 Ruby on Rails로의 극적인 전환

Ruby Talks: John Dewsnap on Moving Flexcar From Java to Rails in 4 MONTHS + Keynoting RailsConf 2025

  • Flexar는 80개 이상의 Java 마이크로서비스에서 Ruby on Rails 모놀리스로 4개월 만에 전환하여 개발 속도와 팀 효율성을 획기적으로 향상시켰습니다.
  • 초기 저항에도 불구하고, Rails의 개발 용이성과 따뜻한 커뮤니티 덕분에 팀원들이 빠르게 적응하며 Ruby 개발자로서 성공적으로 자리매김했습니다.
  • 과도한 마이크로서비스 복잡성으로 인한 기능 개발 지연 문제를 Rails 모놀리스로 해결, 제품 출시 기간을 획기적으로 단축했습니다.
Ruby Central 2025년 05월 08일
  • Rails 애플리케이션에 MCP(Model Context Protocol) 서버를 성공적으로 통합하여 AI 에이전트가 지원 요청을 자동화하고 처리할 수 있도록 구현했습니다.
  • `fast-mcp` 젬 설치 후 Zeitwerk 설정, 개발 환경에서의 도구 로딩 문제 해결 등 Rails 환경에 MCP를 맞추는 과정에서 발생한 기술적 난관과 해결책을 제시합니다.
  • LLM이 도구를 효과적으로 활용하도록 돕기 위해 도구의 입출력 형식, 오류 상태, 열거형 값 등을 매우 상세하게 기술하는 것이 중요하며, 이는 AI의 성능에 직접적인 영향을 미친다는 점을 강조합니다.
jeff 2025년 05월 06일

Crystal 언어의 장기 프로젝트 관리: 변화와 정체성 유지의 도전

Martin Verzilli – Sometimes you need to change to stay the same

  • Crystal은 Ruby에서 영감을 받아 정적 타입 추론 및 Go 스타일 동시성을 결합한 컴파일 언어입니다.
  • 컴파일 속도 개선을 위해 인스턴스 변수 타입 명시를 도입하며 커뮤니티의 반발과 언어의 정체성 논란을 겪었습니다.
  • 변화를 통해 Crystal은 1.0 버전을 출시하며 프로덕션 레디 언어로 성장했으나, 여전히 빠른 컴파일 속도와 도구 지원은 과제로 남아있습니다.
jeff 2025년 05월 02일

이번 주 Rails 업데이트 소식

Parallel testing improvements and more

  • Rails World 컨퍼런스 티켓이 5월 13일부터 판매됩니다.
  • 병렬 테스트 시 데이터베이스 생성을 건너뛸 수 있는 새로운 설정 옵션이 추가되었습니다.
  • PostgreSQL에서 `insert_all`/`upsert_all` 사용 시 기본 키의 기본값 설정 기능이 개선되었습니다.
This Week in Rails 2025년 05월 02일
  • Aie Slater는 Ruby/Rails 개발 10년차로, 서커스단원에서 소프트웨어 엔지니어로 전직한 경험과 Ruby에 대한 깊은 애정을 공유했습니다.
  • 그녀는 ThoughtBot의 개발 팀 리더로서 코드 작업과 함께 팀 코칭 역할을 수행하며, 특히 Hotwire를 활용한 프로젝트 경험을 강조했습니다.
  • 마지막 RailsConf에서 역대 모든 기조연설을 분석하여 커뮤니티의 변화와 Rails 프레임워크의 진화를 조망하는 특별한 강연을 선보일 예정입니다.
Ruby Central 2025년 04월 29일

마크 콜브루게의 플레이북: Rails 해킹과 Stripe를 스코어보드로 활용한 제품 개발 철학

Rails, hacking, and Stripe as a scoreboard: Marc Köhlbrugge’s playbook

  • Marc Köhlbrugge는 BetaList와 Startup Jobs의 창업자로, Rails를 기반으로 한 제품 개발에 대한 독특한 철학을 공유합니다.
  • 그는 제품을 완벽하게 만들기 전에 빠르게 출시하고 사용자 피드백을 통해 개선하는 'unpolished launch' 접근 방식을 강조합니다.
  • 또한, Rails의 AI 통합 가능성, 부족한 Ruby SDK, UI 컴포넌트 라이브러리 등 Ruby 생태계의 현재와 미래에 대한 깊이 있는 통찰을 제시합니다.
Evil Martians 2025년 04월 29일

Rails Action Mailer: 이메일에 차트 또는 그래프 렌더링하기

Rails Action Mailer: Rendering Charts or Graphs in your Email | by reinteractive | Medium

  • Rails Action Mailer에서 차트를 직접 렌더링하는 것은 어려우며, Chartkick과 같은 라이브러리는 이미지 삽입 방식을 요구합니다.
  • QuickChart는 URL을 통해 차트 이미지를 생성하는 오픈 소스 라이브러리로, 다양한 차트 옵션을 제공하여 이메일 내 차트 삽입을 가능하게 합니다.
  • QuickChart의 Ruby 클라이언트 젬을 활용하면 Ruby 코드 내에서 QuickChart 객체를 생성하고 해당 URL을 Rails Mailer 뷰에 쉽게 임베드할 수 있습니다.
jeff 2025년 04월 29일

Dry Monads와 Dry Transaction을 활용한 클린 Rails 컨트롤러

Clean Rails Controllers with Dry Monads and Dry Transaction | by Luciana Mascarenhas | Medium

  • Rails 컨트롤러는 비즈니스 로직을 분리하여 HTTP 요청 및 응답 처리만을 담당하는 씬(thin) 컨트롤러로 유지해야 합니다.
  • dry-monads는 Success 및 Failure 객체를 통해 명시적인 성공/실패 처리를 제공하여 코드의 예측 가능성과 가독성을 높입니다.
  • dry-transaction은 비즈니스 로직을 단계별로 구성하고 실패 시 자동으로 흐름을 중단시켜 복잡한 작업을 체계적으로 관리할 수 있게 돕습니다.
jeff 2025년 04월 28일

Ruby net-imap gem 서비스 거부(DoS) 취약점 (CVE-2025-43857)

CVE-2025-43857: DoS vulnerability in net-imap

  • Ruby의 net-imap gem에서 서비스 거부(DoS) 취약점(CVE-2025-43857)이 발견되어 보안 업데이트가 권고됩니다.
  • 악성 서버가 대량의 'literal' 바이트 카운트를 전송하여 클라이언트의 메모리 과다 할당을 유발할 수 있습니다.
  • net-imap gem을 0.2.5, 0.3.9, 0.4.20, 0.5.7 버전 이상으로 즉시 업그레이드할 것을 권장합니다.
Ruby-Lang 2025년 04월 28일

프레임워크의 지속적인 개선

Continuously improving the framework

  • 이 글은 'This Week in Rails'의 2025년 4월 25일자 주간 업데이트를 요약합니다.
  • 지난 한 주간 Rails 코드베이스에 16명의 기여자가 참여하여 프레임워크 개선에 힘썼습니다.
  • 이는 Rails가 커뮤니티의 활발한 참여를 통해 지속적으로 발전하고 있음을 보여줍니다.
This Week in Rails 2025년 04월 25일