지난 글들

752개의 글이 있습니다

Ruby Oj JSON 파서의 객체 역직렬화 취약점

Brane Dump: Object deserialization attacks using Ruby's Oj JSON parser

  • Ruby의 Oj JSON 파서는 기본 설정에서 객체 역직렬화 취약점을 유발할 수 있습니다.
  • JSON 문자열 내의 콜론 접두사가 Ruby 심볼로 변환되어 SQL 주입 및 원격 코드 실행으로 이어질 수 있습니다.
  • 안전한 사용을 위해 Oj.default_options = { mode: :strict } 설정 및 Oj.safe_load 사용이 권장됩니다.
The Awesome Ruby 2025년 07월 26일

Tailwind Plus, Elements 라이브러리로 순수 HTML UI 블록 기능 강화

Vanilla JavaScript support for Tailwind Plus - Tailwind CSS

  • Tailwind Plus는 이제 '@tailwindplus/elements' 라이브러리를 통해 다이얼로그, 드롭다운 등 모든 UI 블록에 대한 완전한 기능성, 접근성 및 상호작용성을 제공합니다.
  • Elements는 복잡한 JavaScript 프레임워크 없이 순수 HTML만으로 인터랙티브 UI를 구축할 수 있게 해주는 헤드리스 커스텀 엘리먼트 컬렉션입니다.
  • 이 라이브러리는 Svelte, Rails, React 등 어떤 웹 프레임워크에서도 스크립트 태그를 통해 사용할 수 있으며, 기존 폼 컨트롤처럼 작동합니다.
Hotwire Weekly 2025년 07월 25일

Ruby Friends iOS 앱: 인증 및 푸시 알림 구현 라이브 코딩

Ruby Friends Authentication - Hotwire Native LIVE #5

  • Ruby Friends iOS 앱은 Hotwire Native를 활용하여 인증 및 비인증 상태에 따른 탭 전환 로직을 효율적으로 관리합니다.
  • Rails 8의 기본 인증과 iOS 네이티브 앱 간의 `didSignIn` 알림 기반 상호작용을 통해 사용자 경험을 개선하는 방법을 시연했습니다.
  • Noticed Gem을 활용하여 푸시 알림 기능을 구현하고, iOS 디바이스 토큰을 Rails 백엔드에 안전하게 등록 및 관리하는 과정을 상세히 다루었습니다.
Hotwire Weekly 2025년 07월 25일

Rails 엔진에서 Sprockets와 Propshaft를 모두 지원하는 방법

Rails Engine Assets: Making Your Gem Work with Sprockets AND Propshaft

  • Rails 엔진에서 Sprockets와 Propshaft 두 가지 자산 파이프라인을 모두 지원하는 통합 전략을 제시합니다.
  • engine.rb 파일 내에서 app.config.assets.paths 및 app.config.assets.precompile 설정을 통해 자산 노출 방법을 상세히 설명합니다.
  • Propshaft는 자동화된 자산 처리에 강점을 보이며, Sprockets는 precompile 배열 또는 manifest.js를 통한 명시적 구성이 필요합니다.
Hotwire Weekly 2025년 07월 25일
  • Chris와 Andrew는 마지막 RailsConf에서 경험한 내용과 주요 강연을 회고하며 커뮤니티의 분위기를 공유합니다.
  • Aaron Patterson과 Aji Slater의 기조연설을 회상하고 20년간의 RailsConf 역사를 흥미롭게 되돌아봅니다.
  • FerrumPdf gem, Turbo Frames 요청 처리, Hotwire Dev Tools 등 Ruby on Rails 관련 최신 기술 업데이트 및 실무적 조정 사항을 탐구합니다.
The Awesome Ruby 2025년 07월 25일

핫와이어 네이티브: 웹 내비게이션을 네이티브처럼 만드는 터보 어댑터의 역할

Turbo adapter: Hotwire Native's backdoor entrance | Radan Skorić's website

  • 핫와이어 네이티브는 웹뷰 기반 앱에 자바스크립트를 주입하여 터보의 내비게이션을 가로채고 네이티브 코드와 연동합니다.
  • 터보의 기본 `BrowserAdapter`를 `TurboNative` 어댑터로 교체함으로써 웹 내비게이션 처리를 네이티브 앱이 제어하도록 합니다.
  • `visitProposedToLocation` 함수를 통해 웹 내비게이션을 터보가 처리할지, 네이티브 코드가 직접 처리할지 결정하여 네이티브 경험을 제공합니다.
Hotwire Weekly 2025년 07월 25일

This Week in Rails: 2025년 7월 25일 Rails 코드베이스 주요 변경 사항

PostgreSQL 18 warnings, secure password improvements and more!

  • 이번 주 Rails 업데이트는 PostgreSQL 18 호환성 개선, JRuby 지원 강화, `has_secure_password` 보안 강화 등 다양한 개선 사항을 포함합니다.
  • 테스트 안정성 및 예측 가능성을 높이기 위한 변경(예: `ActiveSupport::Gzip.compress` 결정론적 동작, 테스트 데이터베이스 초기화 방지)이 이루어졌습니다.
  • Rails 애플리케이션의 성능, 보안, 개발자 경험을 향상시키는 여러 버그 수정 및 기능 개선이 포함되었습니다.
RubyOnRails 2025년 07월 25일

Rails 유효성 검사, Active Record 없이 활용하기

RailsConf 2025 Off the Rails: Validating non-model classes with…ActiveModel? by Andy Andrea

  • Active Record 모델이 아닌 일반 해시나 커스텀 객체에 Rails의 강력한 유효성 검사 기능을 적용하는 혁신적인 방법을 제시합니다.
  • `Wrapper` 클래스와 `ActiveModel::Validations` 모듈을 통합하여 Rails의 유효성 검사 콜백 시스템을 활용하고, `if`/`unless` 조건부 검사를 지원합니다.
  • 데이터 구조의 형태나 중첩 여부에 관계없이 유연하게 유효성 검사를 수행하며, 기존 Rails 유효성 검사기의 재사용성을 극대화합니다.
Ruby Central 2025년 07월 24일

레일즈 I18n 툴킷 심층 분석: 국제화 및 지역화의 모든 것

RailsConf 2025 Internationalization on Rails: Unpacking the Rails I18n Toolkit by Chris Fung

  • 레일즈의 내장 I18n 유틸리티와 `i18n_tasks`, `Twitter CLDR`, `rails-i18n`과 같은 커뮤니티 Gem을 활용하여 애플리케이션을 쉽게 국제화하는 방법을 설명합니다.
  • 텍스트 번역을 넘어 날짜, 숫자, 복수형, 리스트 등 다양한 데이터 형식의 지역화 기법을 심층적으로 다루며, 언어별 문화적 차이를 반영하는 중요성을 강조합니다.
  • Unicode의 CLDR(Common Locale Data Repository) 데이터를 기반으로 언어별 특성을 반영한 정확하고 자연스러운 사용자 경험을 제공하는 실질적인 방법을 제시합니다.
Ruby Central 2025년 07월 24일

Rails 기본값: 업그레이드된 앱 속 시한폭탄 해체하기

RailsConf 2025 Rails Framework Defaults: Defusing the Time Bomb in Your Upgraded App by Josh Puetz

  • Rails 업그레이드 시 `config.load_defaults` 설정과 `new_framework_defaults_*.rb` 파일 관리가 필수적이며, 이를 간과할 경우 잠재적 문제 발생 가능성이 높습니다.
  • 오래된 Rails 기본값을 유지하는 것은 기술 부채, 보안 취약점, Gem 호환성 문제 등으로 이어지는 '시한폭탄'과 같으므로, 적극적인 관리가 요구됩니다.
  • 새로운 Rails 기본값을 점진적으로 적용하고 철저히 테스트하는 '느리고 꾸준한' 전략을 채택하며, Rails 코어팀에는 문서 개선을 통한 개발자 지원을 제안합니다.
Ruby Central 2025년 07월 24일

레일즈 개발자를 위한 UX 및 시각 디자인: 다학제적 접근

RailsConf 2025 UX & Design for Rails Devs: Elevating the "One Person Framework"... by John Athayde

  • 레일즈 개발자도 UX와 시각 디자인 원리를 이해하고 적용하여 제품 결과에 영향을 미칠 수 있으며, 이는 사일로를 넘어선 다학제적 협업의 핵심입니다.
  • 사용자 여정 맵, 닐슨의 휴리스틱, 5 Whys, 스케치, AI 도구 등 다양한 UX 방법론을 활용하여 사용자 중심의 문제 정의 및 해결 능력을 강화해야 합니다.
  • 타입 스케일, 여백, 색상 팔레트(60-30-10 규칙), 색맹 고려 등 시각 디자인 기본 원리를 통해 앱의 가독성과 일관성을 개선하고, 코드에 즉시 적용할 수 있습니다.
Ruby Central 2025년 07월 24일

Ruby 백그라운드 작업 시스템의 과거, 현재, 미래: 개발자 패널 토론

RailsConf 2025 The Past, Present and Future of Background Job... to Mike, Rosa, Maciej, and Ben

  • Ruby 백그라운드 작업 시스템 개발자들이 Sidekiq, Solid Queue, Karafka, Good Job의 고유한 특징, 개발 동기, 그리고 직면한 과제를 공유했습니다.
  • Redis, PostgreSQL, Kafka 등 다양한 백엔드 기술 활용과 상용 모델 도입, 커뮤니티의 기대치 관리 등 시스템 유지보수의 현실적인 측면이 논의되었습니다.
  • 향후 10년간 Ruby 백그라운드 작업 환경은 GIL/Ractor 개선, Active Job 발전, 이벤트 기반 아키텍처 도입, 복잡한 워크플로우 도구 및 AI/비동기 통합 방향으로 진화할 것으로 전망됩니다.
Ruby Central 2025년 07월 24일

Persona의 Rails 아키텍처 진화: 유연성, 확장성, 다양성을 위한 여정

RailsConf 2025 Simplifying at Scale: 7 Years of Rails Architecture at Persona by Alex Coomans

  • Persona는 Google App Engine에서 Kubernetes로 인프라를 전환하고, MySQL 데이터베이스를 샤딩하며 Rails 애플리케이션의 확장성과 유연성을 확보했습니다.
  • Rails의 기본 기능(Asset Pipeline, 데이터베이스 연결)을 활용하되, Webpacker에서 Vite로, Active Storage에서 Shrine으로 전환하는 등 필요에 따라 외부 도구를 적극 도입하며 진화했습니다.
  • 복잡성 관리를 위해 '스택'이라는 단일 통합 배포 모델을 도입하여 각 고객 환경을 격리하고, 글로벌 분산 MongoDB 기반의 라우팅 테이블로 효율적인 요청 처리를 구현했습니다.
Ruby Central 2025년 07월 24일

Shopify Rails 인프라 팀의 Rails 8.1 신규 기능 라이트닝 토크

RailsConf 2025 New and Improved Features in Rails 8.1 by Andrew Novoselac

  • PostgreSQL NOT NULL 위반 문제를 해결하기 위해 Rails 8.1에서는 insert_all 및 upsert_all 시 nil ID 값을 SQL DEFAULT로 자동 처리하여 데이터베이스 호환성을 개선합니다.
  • Rails 8.1에 도입될 새로운 구조화된 이벤트 리포터(Rails.events)는 기존의 개발자 중심 로그와 함께 관측성 플랫폼을 위한 쿼리 가능한 구조화된 로그를 제공하여 데이터 분석 효율성을 높입니다.
  • Rails 8.1에서는 모델 수준에서 filter_attributes를 확장하여 요청 파라미터 내 민감한 데이터(예: 신용카드 번호)도 자동으로 필터링함으로써 애플리케이션 보안 및 규정 준수를 강화합니다.
Ruby Central 2025년 07월 24일

AI 코딩 도구 활용 및 AI 에이전트 개발 경험 공유: Rails 개발자를 위한 효율성 증대 전략

RailsConf 2025 Chime Presents: Getting More Out of LLMs for... Justin Wienckowski, Jake Gribschaw

  • AI 코딩 도구는 개발 생산성을 높이고 작업을 즐겁게 만들며, 특히 Rails 개발 환경에서 강력한 이점을 제공합니다.
  • 효과적인 AI 에이전트 활용을 위해 명확한 프롬프트 작성, 적절한 컨텍스트 제공, 그리고 새로운 기술에 대한 지식 격차 해소가 중요합니다.
  • AI 기술 도입 시 지속적인 학습과 실험을 통해 워크플로우를 개선하고, 벤더 종속성을 피하며 신중한 테스트가 필요합니다.
Ruby AI News 2025년 07월 24일