지난 글들
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, Ruby에 병합되다: 새로운 JIT 컴파일러의 개요
ZJIT has been merged into Ruby
- 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 서버를 추가하여 AI 통합하기
Adding MCP to a Rails app | Stanko K.R.
- 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일
RailsConf 기조연설자 Aie Slater: Ruby/Rails와의 10년 여정, 서커스단원에서 개발 리더로, 그리고 마지막 RailsConf 기조연설
Ruby Talks: Aji Slater on Career Changes & Keynoting RailsConf 2025
- 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일