지난 글들
398개의 글이 있습니다
mruby/c와 데이터 흐름 프로그래밍 환경: 소형 기기를 위한 효율적인 Ruby 활용
[EN] mruby/c and data-flow programming for small devices / Kazuaki Tanaka @kaz0505
- 본 발표는 소형 마이크로컨트롤러 및 IoT 기기를 위한 경량 Ruby 구현체인 mruby/c와 데이터 흐름 프로그래밍 환경의 통합에 대해 다룹니다.
- mruby/c는 제한된 메모리와 처리 능력을 가진 기기에서 Ruby 코드를 효율적으로 실행하도록 설계되었으며, 저전력 운영을 가능하게 합니다.
- 데이터 흐름 프로그래밍은 시각적인 노드 기반 인터페이스를 통해 IoT 애플리케이션 로직을 직관적으로 구성하고, 이를 mruby/c 환경에서 실행하는 방법을 제시합니다.
RubyKaigi
2025년 05월 27일
Ruby가 알려준 문자 코드의 심오한 세계
[JA][Keynote] Ruby Taught Me About Encoding Under the Hood / Mari Imaizumi @ima1zumi
- 본 발표는 발표자가 메인프레임 환경에서 EBCDIC을 다루며 겪은 경험과 Ruby IRB에서 이모지 관련 버그를 해결한 과정을 통해 문자 코드의 복잡성과 중요성을 설명합니다.
- 특히 유니코드의 역사, 코드 포인트, UTF-8, 그리고 '초기소 클러스터(Grapheme Cluster)' 개념을 중심으로 컴퓨터에서의 문자 처리의 어려움과 흥미로운 점을 깊이 있게 다룹니다.
- 또한, Ruby의 유니코드 15.1.0 업데이트 기여 경험을 공유하며, 문자 코드가 단순한 인코딩을 넘어 사용자가 인식하는 '문자' 단위로 정확히 동작하기 위한 복잡한 메커니즘이 내재되어 있음을 강조합니다.
RubyKaigi
2025년 05월 27일
YJIT는 어떻게 Ruby를 느리게 함으로써 빠르게 하는가: 디옵티마이제이션의 힘
[EN] Deoptimization: How YJIT Speeds Up Ruby by Slowing Down / Takashi Kokubun @k0kubun
- YJIT는 '디옵티마이제이션'이라는 독특한 접근 방식을 통해 Ruby의 동적 특성을 유지하면서 성능을 최적화하는 JIT 컴파일러입니다.
- Ruby 3.4에서는 지역 변수, 싱글톤 클래스, 예외 처리 및 C-Ruby 메서드 전환 등 다양한 영역에서 새로운 디옵티마이제이션 기법이 추가되어 최적화 역량이 강화되었습니다.
- 이러한 예측적 최적화와 필요 시 코드 무효화 전략은 YJIT가 프로덕션 환경에서 실제 성능 향상을 제공하는 핵심 원리입니다.
RubyKaigi
2025년 05월 27일
C Ruby 빌드 시스템의 현재 상태와 미래 방향
[EN] The Evolution of the CRuby Build System / Yuta Saito @kateinoigakukun
- C Ruby 빌드 시스템은 오랜 역사와 함께 복잡하게 진화하여 현재 다양한 빌드 환경과 동적인 Make 기능으로 인해 이해 및 디버깅의 어려움, 빌드 시간 증가 등의 문제에 직면해 있습니다.
- `configure.ac`의 표현력 한계와 의도치 않은 Base Ruby 의존성은 빌드 과정의 복잡성을 가중시키는 주요 원인입니다.
- 향후 Ruby 기반의 새로운 빌드 시스템을 통해 빌드 로직을 명확히 하고, 빌드 계획을 검증하며, 병렬 처리 및 단일 빌드 그래프를 도입하여 성능을 개선할 계획입니다.
RubyKaigi
2025년 05월 27일
오토마톤 학습을 이용한 Ruby 파서 호환성 검증
[JA] Make Parsers Compatible Using Automata Learning / Hiroya Fujinami @makenowjust
- Ruby의 두 파서(Parse.y, Prism) 간의 호환성 문제를 체계적으로 해결하기 위해 오토마톤 학습이 활용되었습니다.
- 제한된 문자 집합에 대한 파서를 학습하여 Prism에서 `(:A)`와 같은 심볼 리터럴 파싱 오류를 발견하고 수정했습니다.
- `Lernen`이라는 Ruby 라이브러리를 개발하여 오토마톤 학습을 실제 문제 해결에 적용할 수 있음을 보여주었습니다.
RubyKaigi
2025년 05월 27일
SQL에서 불리언 값 사용 시 데이터베이스 호환성 및 모범 사례
It’s TRUE, SQL Supports Booleans
- Ruby on Rails 애플리케이션에서 직접 SQL 쿼리 작성 시 데이터베이스별 불리언 타입 처리 방식 차이로 호환성 문제가 발생할 수 있습니다.
- MySQL, SQLite는 불리언을 정수로 취급하고 PostgreSQL은 고유한 불리언 타입을 사용하므로, 쿼리 구문이 달라집니다.
- 모든 데이터베이스에서 호환성을 확보하고 쿼리 가독성을 높이려면 불리언 컬럼 비교 시 항상 `TRUE` 또는 `FALSE` 리터럴을 사용해야 합니다.
Rails at Scale
2025년 05월 21일
Ruby 3.5의 빠른 할당
Fast Allocations in Ruby 3.5
- Ruby 3.5는 객체 할당 속도를 획기적으로 향상시키며, 특히 키워드 매개변수에서 두드러진 성능 개선을 보입니다.
- 이는 `Class#new` 메서드를 인라이닝하고 새로운 YARV 명령어를 도입하여 스택 프레임 및 매개변수 복사 오버헤드를 제거함으로써 달성되었습니다.
- YJIT 활성화 시 키워드 매개변수 할당이 최대 6.5배 빨라지는 등 전반적인 애플리케이션 성능 향상에 기여할 것으로 기대됩니다.
Rails at Scale
2025년 05월 21일
Rails를 활용한 지능형 애플리케이션 구축
Building intelligent applications with Rails | SINAPTIA
- Python이 AI의 주요 언어로 여겨지지만, Ruby on Rails는 AI 기반 애플리케이션 개발에 효과적이고 효율적인 접근 방식을 제공합니다.
- Rails는 '설정보다 관례' 철학, 풍부한 RubyGems 생태계, 그리고 Solid Queue, Solid Cable, Solid Cache와 같은 강력한 내장 도구를 통해 개발 생산성을 극대화합니다.
- 기존 AI 모델의 전략적 통합과 Rails의 빠른 개발 속도는 비즈니스 성과를 창출하는 지능형 애플리케이션을 신속하게 구축하는 데 핵심적인 강점입니다.
Ruby Weekly
2025년 05월 20일
Matas Richard와의 인터뷰: Rails Conf 연설 및 Rails 내부 이해
Ruby Talks: Matheus Richard on Understanding Ruby Internals & Speaking at the Final RailsConf
- Thoughtbot의 선임 개발자 Matas Richard는 다가오는 Rails Conf에서 프로그래밍 언어의 내부 동작 방식에 대한 강연을 진행합니다.
- 그는 Ruby와 Rails의 유연성, 개발 편의성, 그리고 다양한 프로젝트에서 코드베이스를 효과적으로 탐색하는 데 있어 Rails의 구조적 이점을 강조합니다.
- 이번 강연은 언어의 복잡성을 해체하고, 초보자도 Ruby와 Rails 오픈소스 프로젝트에 기여할 수 있도록 내부 원리를 쉽고 실용적으로 설명하는 것을 목표로 합니다.
Ruby Central
2025년 05월 19일
Rails에서 Avo와 Discard를 이용한 소프트 삭제 구현: 재활용 휴지통 리소스
Implement soft-delete in Rails with Avo + Discard | by Pentest Team @greenhats.com | Medium
- Rails 애플리케이션에서 Avo와 Discard 젬을 활용하여 소프트 삭제된(soft-deleted) 레코드를 관리하는 방법을 설명합니다.
- `Avo::Resources::DiscardedRecord`라는 가상 리소스를 통해 애플리케이션 전반의 모든 소프트 삭제된 항목을 중앙에서 확인하고 복원할 수 있습니다.
- 이 구현은 동적 모델 목록, `unscoped` 쿼리, JSON 미리보기 등의 기능을 포함하여 효율적인 데이터 관리를 가능하게 합니다.
jeff
2025년 05월 16일
Ruby 해시 메모이제이션: 정말 필요한가?
Stop memoizing Hash lookups in Ruby
- Ruby에서 해시(Hash) 조회를 메모이제이션하는 것은 일반적으로 불필요합니다.
- 해시 조회는 이미 나노초 단위로 매우 빠르며, 메모이제이션의 성능 향상은 미미하거나 오히려 성능 저하를 일으킬 수 있습니다.
- 메모이제이션은 데이터베이스 호출과 같은 고비용 작업에만 활용하고, 프로파일링을 통해 병목 현상이 확인될 때만 최적화를 고려해야 합니다.
Ruby Weekly
2025년 05월 14일
Ruby 3.4.4 릴리스
Ruby 3.4.4 Released
- Ruby 3.4.4 버전이 YJIT 및 Windows 빌드 관련 긴급 버그 수정 사항을 포함하여 조기 릴리스되었습니다.
- 이번 릴리스는 로컬 변수 관련 YJIT 버그 및 GCC 15를 사용한 Windows 빌드 문제를 해결하는 데 중점을 두었습니다.
- Ruby 3.4 버전은 향후 두 달 간격으로 정기적인 업데이트가 예정되어 있으며, 중요한 변경 시 조기 릴리스될 수 있습니다.
Ruby
2025년 05월 14일
Ruby에 ZJIT 병합: 프로젝트 개요 및 아키텍처
ZJIT has been merged into Ruby
- ZJIT는 RubyKaigi 2025 이후 Ruby에 공식 병합된 새로운 JIT(Just-In-Time) 컴파일러입니다.
- 기존 YJIT와 달리 고수준 중간 표현(HIR)을 사용하고 전통적인 컴파일러 방식으로 설계되어 커뮤니티 기여를 용이하게 합니다.
- YARV, HIR, LIR, Assembly 단계를 거쳐 Ruby 코드를 효율적인 머신 코드로 변환하며, 현재 개발 초기 단계에 있습니다.
Rails at Scale
2025년 05월 14일
Flexar의 Java 마이크로서비스에서 Ruby on Rails 모놀리스로의 전환 경험 및 RailsConf 키노트 발표
Ruby Talks: John Dewsnap on Moving Flexcar From Java to Rails in 4 MONTHS + Keynoting RailsConf 2025
- Flexar는 80개 이상의 Java 마이크로서비스 아키텍처에서 Ruby on Rails 모놀리스로 성공적으로 전환했습니다.
- 이 전환은 기능 개발 속도를 획기적으로 단축(수개월에서 수주로)시키고 팀 협업을 개선했습니다.
- RailsConf 키노트 연사인 John Denap은 Ruby on Rails 커뮤니티의 따뜻하고 포용적인 분위기를 강조하며 만족감을 표했습니다.
Ruby Central
2025년 05월 08일
루비 프로그래밍 언어의 네임스페이스 및 모듈 관리 개선 제안 논의
Feature #21311: Namespace on read (revised) - Ruby - Ruby Issue Tracking System
- 이 글은 루비에 네임스페이스와 유사한 기능 도입에 대한 논의와 제안의 어려움을 다룹니다.
- 저자는 루비젬 이름 충돌 및 유연한 코드 로딩과 같은 문제 해결을 위한 추가적인 사용 사례를 제시합니다.
- 궁극적으로 루비가 대규모 프로젝트에서 모듈 및 클래스 관리를 개선할 필요가 있음을 강조합니다.
Ruby Weekly
2025년 05월 06일