지난 글들

1180개의 글이 있습니다

Pry — 더 나은 디버깅을 위한 IRB 🕵️‍♀️

10 Underrated Ruby Gems That Will Save You Hours of Debugging | by Vaishnavi Ganeshkar | Sep, 2025 | Medium

  • Pry는 기존 IRB를 대체하는 강력한 REPL 환경을 제공하여 디버깅 효율성을 극대화합니다.
  • 구문 강조, 명령어 기록, 런타임 내비게이션 등의 고급 기능을 통해 코드 검사를 용이하게 합니다.
  • binding.pry를 사용하여 실행 중인 애플리케이션을 일시 정지하고 모든 것을 상세히 검사할 수 있습니다.
jeff 2025년 09월 29일

Hotwire와 함께 Turbo Streams에서 View Component 활용하기

View Components Over Turbo Streams with Hotwire | But It Works on My Machine!

  • Turbo Streams에서 ViewComponent를 사용하여 부분 템플릿(partials) 대비 향상된 성능, 유지보수성, 테스트 용이성 및 UI 일관성을 확보할 수 있습니다.
  • 기존 `partial: "..."` 대신 `renderable: YourComponent.new(...)` 구문을 통해 Turbo Streams에서 ViewComponent를 손쉽게 렌더링할 수 있습니다.
  • ViewComponent는 부분 템플릿보다 최대 2배 이상 빠른 렌더링 속도를 제공하며, 뷰 로직의 캡슐화와 독립적인 테스트를 가능하게 합니다.
Hotwire Weekly 2025년 09월 28일

사물 인터넷을 위한 Ruby 기반 모델

Is sound gradual typing dead? Performance problems in Typed Racket

  • 사물 인터넷(IoT) 애플리케이션 개발의 복잡성을 해결하기 위해 Ruby 기반의 새로운 모델인 `IoT-Ruby`가 제안되었습니다.
  • `IoT-Ruby`는 Ruby의 객체 지향 및 메타프로그래밍 기능을 활용하여 IoT 엔티티 및 동작을 고수준으로 추상화하여 개발을 간소화합니다.
  • 제안된 모델은 개발 시간 단축 및 코드 유지보수성 향상을 통해 기존 IoT 개발 방식 대비 효율성과 유연성을 입증했습니다.
HackerNews 2025년 09월 28일

RubyGems 사태에서 서둘러 편들지 않는 이유

Why I'm not rushing to take sides in the RubyGems fiasco

  • RubyGems 사태는 Ruby 생태계의 복잡한 거버넌스 문제와 10년 묵은 갈등의 결과이며, 단순한 선악 구도로 판단하기 어렵습니다.
  • Ruby Together의 Andre Arko는 과거 기금 운용, Bundler 통제력 행사, 커뮤니케이션 방식 등으로 여러 논란의 중심에 서 있었습니다.
  • 현재의 갈등은 과거의 미해결된 문제들이 표면화된 것으로, Ruby 생태계의 안정성과 미래에 중대한 영향을 미치고 있습니다.
HackerNews 2025년 09월 28일

Rails 마이그레이션 시 add_foreign_key로 인한 SQLite 데이터 손실 문제

A mere add_foreign_key can wipe out your whole Rails+SQLite production table

  • SQLite의 `ALTER TABLE` 제약으로 인해 `add_foreign_key`는 테이블을 재구축하며, 이 과정에서 `on_delete: :cascade` 설정된 다른 외래 키가 작동하여 데이터가 삭제될 수 있습니다.
  • 문제 해결을 위해 `add_foreign_key` 대신 `add_column`과 `add_index`를 사용하고, 애플리케이션 레벨에서 유효성 검사를 통해 외래 키 제약을 구현했습니다.
  • SQLite 사용 시 `on_delete: :cascade`는 신중하게 적용하고, 마이그레이션 테스트 및 백업을 통해 데이터 손실 위험을 최소화해야 합니다.
HackerNews 2025년 09월 27일
  • 루비 커뮤니티 내 명칭 비난 및 언어 폭력 증가에 대한 우려를 표하며, 상호 존중하는 대화 방식을 촉구합니다.
  • DHH의 이민 관련 발언을 비판하고, 언어 또한 물리적 폭력만큼 해로울 수 있음을 강조하며, 영향력 있는 인물의 책임감을 역설합니다.
  • 커뮤니티 리더와 구성원 모두에게 언어의 영향력을 인지하고, 포괄적이고 평화로운 해결책을 모색할 책임이 있음을 역설합니다.
HackerNews 2025년 09월 27일
  • Hanami 애플리케이션에서 각 슬라이스(slice)에 독립적인 Rack 쿠키 세션을 설정하는 방법을 설명합니다.
  • Hanami::Routes 내에서 Rack::Session::Cookie 미들웨어를 사용하여 슬라이스별로 세션을 개별적으로 구성할 수 있습니다.
  • 현재 슬라이스별 세션 사용 시에도 Hanami::App에 전역 세션 설정을 활성화해야 하는 제약이 있으나, 이는 향후 개선될 예정입니다.
Ruby Weekly 2025년 09월 26일
  • Ransack은 추가 종속성 없이 Ruby on Rails 애플리케이션에 강력하고 유연한 검색 기능을 쉽게 통합할 수 있도록 지원하는 Gem입니다.
  • ElasticSearch나 Algolia 같은 고급 솔루션 대신, 표준 Ruby와 ERB를 사용하여 Rails 웹사이트의 다양한 검색 요구사항을 충족하며, i18n 및 확장된 설정 옵션을 제공합니다.
  • Rails 8.0, 7.2 및 Ruby 3.1 이상 버전에서 지원되며, 기여 및 문제 보고는 GitHub 이슈 트래커를 통해 활발하게 이루어지고 있습니다.
Ruby Weekly 2025년 09월 26일
  • Superglue는 Rails Way에 깊이 뿌리를 두고 Rails와 React를 통합하며, Hotwire와 유사한 간결한 개발 경험을 제공합니다.
  • API나 클라이언트 측 라우팅 없이 Rails의 컨트롤러, 라우트, 뷰를 활용하여 React 애플리케이션을 구축할 수 있도록 설계되었습니다.
  • 서버에서 `json.props` 템플릿을 통해 페이지 속성을 구성하고 이를 Redux에 주입하여 React 컴포넌트에 전달하며, UJS 헬퍼를 통한 페이지 부분 업데이트를 지원합니다.
Ruby Weekly 2025년 09월 26일
  • Turbo Streams는 <turbo-stream> 요소를 통해 HTML 조각을 전송하여 DOM을 효율적으로 업데이트하는 Hotwire의 핵심 기술입니다.
  • 서버 측 템플릿을 재활용하여 실시간 애플리케이션 기능을 구현하며, append, replace, remove 등 9가지 액션을 지원합니다.
  • Rails와 같은 백엔드 프레임워크와의 긴밀한 통합을 통해 개발 과정을 간소화하고, 점진적 개선 원칙을 따릅니다.
Ruby Weekly 2025년 09월 26일

순수 Ruby 프로젝트를 위한 Rails 콘솔과 유사한 환경 설정

Rails Console-like Environment for a Plain Ruby Project · Daniela Baron

  • 순수 Ruby 프로젝트에서 Rails 콘솔과 같은 인터랙티브 환경을 구축하여 코드 탐색 및 디버깅 편의성을 확보합니다.
  • config/environment.rb 파일을 통해 모든 프로젝트 소스 코드와 Gem 의존성을 효율적으로 로드하는 방법을 설명합니다.
  • 프로젝트 전용 .irbrc 파일로 IRB 프롬프트를 사용자 정의하고, reload! 메서드를 추가하여 개발 워크플로우를 개선합니다.
Ruby Weekly 2025년 09월 26일

JSON, 언어 간 미묘한 차이: 단순함 뒤에 숨겨진 상호 운용성 문제

JSON is not JSON Across Languages | <span class="text-terminal-purple">Dochia</span> CLI Blog

  • JSON은 명세의 단순함에도 불구하고, 각 프로그래밍 언어와 라이브러리마다 데이터 해석 방식에 미묘한 차이가 존재하여 상호 운용성 문제를 야기합니다.
  • 정수 정밀도 손실, 유니코드 정규화, 객체 키 순서 불일치, 날짜/시간 처리, null 값의 의미 등 다양한 영역에서 예상치 못한 문제가 발생할 수 있습니다.
  • 스키마 유효성 검사, 데이터 타입 표준화, 신중한 라이브러리 선택, 그리고 교차 언어 호환성 테스트를 통해 이러한 JSON 불일치 문제를 효과적으로 완화할 수 있습니다.
Ruby Weekly 2025년 09월 26일
  • Rails의 `pluralize` 헬퍼가 최대 4배 더 빨라졌으며, 특히 셀 수 없는 단어(uncountable words) 처리에서 큰 성능 향상을 보였습니다.
  • 이 최적화는 `Regexp.union()`을 활용한 정규식 캐싱, 상속 대신 컴포지션 사용, 그리고 영어 굴절을 위한 빠른 경로 도입을 통해 이루어졌습니다.
  • 잦은 단어 복수화가 필요한 애플리케이션, 특히 대규모 데이터 처리 및 API 응답 시 상당한 성능 이점을 제공합니다.
The Awesome Ruby 2025년 09월 26일

Rails 다중 데이터베이스 및 테넌시: 2025년 구현 전략

Rails Multi-Databases and Tenancy: How You Can Do It Today

  • Rails 애플리케이션에서 다중 데이터베이스를 활용하여 민감한 환자 데이터를 격리하고 읽기 복제본을 통해 확장하는 방법을 설명합니다.
  • ActiveRecord::Tenanted 젬을 사용하여 다중 테넌트 아키텍처를 구현하고, 각 테넌트별 데이터베이스를 분리하는 과정을 상세히 다룹니다.
  • ActiveRecord::Tenanted 젬의 현재 버전(0.3.0)에서 다중 테넌트 데이터베이스를 동시에 지원하는 데 따르는 제약사항과 이를 극복하기 위한 아키텍처 조정 방안을 제시합니다.
The Awesome Ruby 2025년 09월 26일
  • DHH의 인종차별적, 트랜스젠더 혐오 발언이 Ruby 커뮤니티의 포용성을 심각하게 훼손하고 있으며, 이는 '프로그래머 행복'이라는 Ruby의 핵심 가치를 위협합니다.
  • Ruby Central 및 Rails Core 팀을 포함한 커뮤니티 리더십의 침묵은 DHH의 유해한 행동을 더욱 부추기며, 커뮤니티의 포용적 정신을 지키기 위한 적극적인 대응이 요구됩니다.
  • 기술적 기여와 별개로, 유해한 발언에 대한 비판과 포용적인 Ruby 커뮤니티를 위한 새로운 리더십이 절실히 요구되며, 이는 언어의 성장과 직결됩니다.
HackerNews 2025년 09월 26일