importmap-rails를 사용한 JavaScript 모듈 로딩과 브라우저 환경 영향
Importmapを使ったJavaScriptの読み込みとブラウザアドオンの影響 / shu_numata - Kaigi on Rails 2024
- Rails 7에서 Webpacker를 대체하는 importmap-rails 도입 및 장점을 소개합니다.
- importmap-rails 사용 중 애드 블록커가 JavaScript 모듈 로딩을 차단하는 문제에 직면했습니다.
- 모듈을 로컬에 다운로드하여 제공하는 방식으로 문제를 해결했으나, 브라우저 환경의 영향에 대한 주의가 필요합니다.
Unknown
2024년 12월 11일
카피바라와 생성형 AI를 활용한 자연어 브라우저 테스트 가능성 탐구
Capybara+生成AIでどこまで本当に自然言語のテストを書けるか? / Yusuke Iwaki - Kaigi on Rails 2024
- 카피바라와 생성형 AI를 결합하여 자연어로 브라우저 테스트를 작성하고 실행하는 새로운 접근 방식을 제시합니다.
- 기존 자동화 테스트의 유지보수 및 유연성 부족 문제를 해결하기 위한 시도입니다.
- AI가 브라우저 상태를 인지하고 동적으로 행동을 결정하는 모델을 통해 구현 가능성을 확인했습니다.
Unknown
2024년 12월 11일
Rails 애플리케이션의 안전성 및 개발 경험 향상을 위한 타입 시스템 도입 (Sorbet 활용)
Type on Rails: Railsアプリケーションの安全性と開発体験を型で革新する / kazzix - Kaigi on Rails 2024
- Ruby on Rails 애플리케이션에 Sorbet 기반 타입 시스템을 도입하여 코드 안전성을 높이고 개발 경험을 개선할 수 있습니다.
- RBI, Sorbet, Tapioca 도구를 활용하며, 특히 Tapioca의 DSL 컴파일러를 통해 동적으로 생성되는 코드에도 타입을 적용할 수 있습니다.
- 타입 시스템 도입은 문제를 조기에 발견하고 리팩토링을 용이하게 하며, Result 타입 활용 등으로 더욱 견고한 설계를 가능하게 합니다.
Unknown
2024년 12월 11일
카이 온 레일즈 2024 기조 강연: 18년간의 레일즈 여정에서 배운 것
WHOLENESS, REPAIRING, AND TO HAVE FUN: 全体性、修復、そして楽しむこと / 島田浩二 - Kaigi on Rails 2024
- 연사는 18년간의 경험을 바탕으로 소프트웨어 설계의 두 가지 핵심 원칙을 제시합니다.
- 시스템 전체를 보고 기능하도록 설계하고, 변화에 유연하게 대처하는 설계가 중요합니다.
- 루비 온 레일즈는 이러한 설계 및 지속적인 개선(수복) 과정을 효과적으로 지원하는 프레임워크임을 강조합니다.
Unknown
2024년 12월 11일
프로그래밍 상태 관리의 어려움과 레일즈에서의 적용
入門『状態』 / しんくう - Kaigi on Rails 2024
- 프로그래밍에서 객체의 상태는 인스턴스 변수로 표현되며, 변화가 잦거나 다양할수록 관리하기 어려워집니다.
- 상태 관리의 어려움을 해소하기 위해 상태 변화를 최소화하고, 변화의 폭을 제한하며, 상태를 단순하게 유지하는 원칙이 중요합니다.
- 이러한 원칙은 레일즈 개발 시 컨트롤러의 인스턴스 변수 관리나 뷰에서의 조건 분기 처리 등에 적용하여 코드의 가독성과 유지보수성을 높일 수 있습니다.
Unknown
2024년 12월 11일
Ruby on Rails 환경에서 데이터 암호화 전략 및 구현 사례
大事なデータを守りたい!ActiveRecord Encryptionと、より安全かつ検索可能な暗号化手法の実装例の紹介 / 小林悟史(小林ノエル) - Kaigi on Rails 2024
- 민감 데이터 보호를 위해 Ruby on Rails에서 데이터 암호화는 필수적입니다.
- Rails 7의 ActiveRecord::Encryption은 기본적인 요구사항을 충족하지만, 금융 기관 등 엄격한 환경에서는 추가적인 고려가 필요합니다.
- KMS를 활용한 키 관리, 레코드 단위 암호화, 해시 값을 이용한 검색 등 고급 기법을 통해 보안 및 유연성을 확보할 수 있습니다.
Unknown
2024년 12월 11일
cXML을 활용한 시스템 연동의 도전과 교훈
cXML という電子商取引のトランザクションを支えるプロトコルと向きあっている話 / phigasui - Kaigi on Rails 2024
- 전자상거래 시스템 연동을 위한 표준 프로토콜 cXML 소개 및 활용.
- 각 EC 사이트별 명세 차이, 물리적 제약, 방대한 명세로 인한 실제 연동 문제점 발생.
- 성공적인 시스템 연동을 위해 외부 이벤트 로깅, 파트너사와의 소통, 시나리오 테스트가 중요.
Unknown
2024년 12월 11일
레일즈로 대규모 트래픽 처리하기: 재고 관리 및 결제 API 연동 사례
推し活のハイトラフィックに立ち向かうRailsとアーキテクチャ / Hayato OKUMOTO - Kaigi on Rails 2024
- Two Gate는 라이브 이벤트 모바일 주문 앱 '캐러밴'을 통해 Rails로 초고밀도 트래픽을 성공적으로 처리한 경험을 공유했습니다.
- 핵심 과제는 동시 접속 시 재고의 정확한 관리와 외부 결제 API의 낮은 처리 한계를 극복하는 것이었습니다.
- 1재고 1행 DB 설계 및 `FOR UPDATE SKIP LOCKED`, 그리고 애플리케이션 단에서의 선제적 레이트 리미팅을 통해 문제를 해결했습니다.
Unknown
2024년 12월 11일
옴니오스(Omniauth)와 함께 알아보는 인증/인가 프로토콜 (OAuth 2.0 및 OpenID Connect)
OmniAuthから学ぶOAuth 2.0 / ykpythemind - Kaigi on Rails 2024
- Ruby on Rails의 Omniauth 젬은 웹 애플리케이션의 인증/인가 구현을 표준화하고 간소화합니다.
- Omniauth는 내부적으로 OAuth 2.0(인가) 및 OpenID Connect(인증) 프로토콜을 활용하며 복잡한 절차를 추상화합니다.
- Omniauth의 추상화된 기능 뒤에 있는 표준 프로토콜의 동작 방식을 이해하는 것은 디버깅 및 문제 해결에 필수적입니다.
Unknown
2024년 12월 11일
Hotwire 광명의 길과 Stimulus
Hotwire光の道とStimulus / Yasuko Ohba (nay3) - Kaigi on Rails 2024
- Hotwire와 Rails 개발 시 불필요한 JavaScript 사용을 줄이고 서버에 제어를 집중하는 '광명의 길'을 제시합니다.
- Stimulus는 HTML/브라우저 확장 등 제한적인 역할을 수행하며, 화면 변경의 주체는 Rails와 Turbo가 되어야 합니다.
- 화면 단위가 아닌 목적 기반의 범용적인 Stimulus 컨트롤러를 작성하고, 전체 아키텍처를 '웹 종이 연극'처럼 설계하는 것이 중요합니다.
Unknown
2024년 12월 11일
Ruby on Rails 웹 애플리케이션 성능 병목 분석: 데이터베이스인가, 언어인가?
都市伝説バスターズ「WebアプリのボトルネックはDBだから言語の性能は関係ない」 / Daisuke Aritomo (osyoyu) - Kaigi on Rails 2024
- 웹 애플리케이션의 주요 병목은 데이터베이스를 포함한 I/O 작업에 있습니다.
- 하지만 CPU 사용 비율이 높거나 높은 동시성이 요구될수록 언어(Ruby vs Go) 성능 차이가 중요해집니다.
- 애플리케이션 특성에 맞춰 웹 서버 스레드 수를 조정하고 숨겨진 CPU 병목을 최적화하는 것이 성능 개선에 효과적입니다.
Unknown
2024년 12월 11일
GraphQL 성능 최적화: N+1 문제 해결 및 운영 노하우
Tuning GraphQL on Rails / Kazuhiko Yamashita - Kaigi on Rails 2024
- GraphQL 환경에서 발생하는 N+1 쿼리 문제는 Batch Loader와 Lookahead 기법으로 해결할 수 있습니다.
- 대용량 데이터 처리 등 복잡한 케이스는 커스텀 로더 구현이 필요하며, APM 도구를 활용한 지속적인 모니터링이 중요합니다.
- SLI/SLO 설정과 팀 단위의 성능 관리 문화를 통해 장기적인 서비스 성능 유지가 가능합니다.
Unknown
2024년 12월 11일
만들면서 이해하는 RDBMS의 구조
作って理解する RDBMSのしくみ / Yudai Takada - Kaigi on Rails 2024
- 본 발표는 RDBMS의 내부 구조와 작동 방식에 대한 이해를 돕기 위해 아키텍처, 데이터 구조, 알고리즘을 설명합니다.
- 구문 분석, 실행 계획 수립, 데이터 접근, 캐싱 관리, 디스크 관리를 담당하는 주요 구성 요소를 소개합니다.
- 효율적인 데이터 검색 및 관리를 위한 B-tree와 B+tree 같은 인덱스 구조의 원리와 장점을 상세히 다룹니다.
Unknown
2024년 12월 11일
릴리즈 8년차 서비스의 1800개 ERB 파일을 View Component로 이관한 방법과 그 결과
リリース8年目のサービスの1800個のERBファイルをViewComponentに移行した方法とその結果 / Naoyuki Kataoka - Kaigi on Rails 2024
- 8년차 Rails 서비스에서 1800개 ERB 파일의 뷰 레이어 기술 부채를 ViewComponent 도입으로 해결했습니다.
- 기존 ERB 기반 ViewComponent 자동 생성 전략으로 대규모 이관을 효율적으로 수행했습니다.
- 이관 결과 인터페이스 명확성, 코드 탐색 용이성, 테스트 가능성이 크게 향상되었습니다.
Unknown
2024년 12월 11일
약 9000개의 자동 테스트 시간을 50분에서 10분으로 단축하고 프레이키 테스트를 1% 이하로 줄인 경험 공유
約9000個の自動テストの時間を50分から10分に短縮、偽陽性率(Flakyテスト)を1%以下に抑えるまでの道のり / hatsu - Kaigi on Rails 2024
- 오래된 Rails 프로젝트의 느리고 불안정한 CI 테스트 문제를 해결하기 위한 개선 프로젝트가 진행되었습니다.
- Capybara 대기 최적화, 데이터 생성 효율화, 병렬 실행, 프런트엔드 빌드 캐싱 등 다양한 기술을 적용하여 CI 시간을 50분대에서 10분대로 단축했습니다.
- Allure Report, Playwright Driver 도입 및 자동 재시도 로직 구현을 통해 프레이키 테스트를 줄이고 디버깅 효율성을 높였습니다.
Unknown
2024년 12월 11일