Mission Control — Web 오픈 소스화 발표

37signals Dev — Mission Control — Web

  • 비상 상황 시 웹 요청을 즉시 제어할 수 있는 오픈 소스 도구인 Mission Control — Web이 GitHub에 공개되었습니다.
  • 이 도구는 특정 경로에 대한 접근을 차단하여 애플리케이션의 부분적 장애 확산을 방지하는 데 중점을 둡니다.
  • 관리 대시보드와 미들웨어로 구성되며, Redis를 공유하여 차단할 경로 패턴을 효율적으로 관리합니다.
Unknown 2024년 05월 09일

Campfire: 최신 웹 플랫폼 CSS 기능 활용 사례

37signals Dev — Modern CSS patterns in Campfire

  • Campfire는 컴파일러/전처리기 없이 바닐라 CSS와 최신 웹 플랫폼 기능을 적극 활용하여 UI를 구축했습니다.
  • `oklch()`를 통한 직관적인 색상 관리와 커스텀 속성을 통한 유연하고 재사용 가능한 스타일 정의가 특징입니다.
  • 특히 `:has()`를 활용하여 서버 사이드 및 JavaScript 로직을 CSS로 대체하며 동적이고 적응적인 사용자 경험을 제공합니다.
Unknown 2024년 04월 04일
  • Doximity는 팬데믹 기간 중 폭증한 원격 의료 수요에 대응하여 Doximity Dialer 및 비디오 솔루션을 성공적으로 확장했습니다.
  • Ruby on Rails의 '설정보다 관례' 철학과 모듈식 아키텍처를 활용하여 신속한 개발과 안정적인 서비스 유지를 가능하게 했습니다.
  • 이를 통해 6,300만 건 이상의 원격 진료를 지원하며 의료 전문가와 환자에게 필수적인 연결성을 제공했습니다.
Unknown 2024년 03월 31일
  • Thruster는 기존 Puma와 함께 작동하는 경량 HTTP/2 프록시 서버로, Rails 애플리케이션의 성능과 보안을 획기적으로 향상시킵니다.
  • HTTP/2, 자동 SSL, 효율적인 캐싱 및 정적 파일 서빙 기능을 제공하여 복잡한 설정 없이 배포를 간소화합니다.
  • "제로-설정" 접근 방식을 통해 개발자들이 인프라 운영 부담 없이 고성능 Rails 애플리케이션을 쉽게 운영할 수 있도록 돕습니다.
Unknown 2024년 03월 07일

Ruby HEY 앱 메모리 누수 진단 및 해결 과정

37signals Dev — My adventures hunting down a Ruby memory leak 🎢

  • HEY 앱에서 발생한 장기적인 메모리 누수 문제를 Ruby의 고급 진단 도구를 활용하여 해결한 과정을 설명합니다.
  • 초기 힙 할당 분석의 한계를 넘어 `rbtrace`, `ObjectSpace.trace_object_allocations_start`, `heapy`, `sheap`을 통해 YJIT 관련 근본 원인을 파악했습니다.
  • 이 사례는 Ruby 개발자가 메모리 누수를 효과적으로 진단하고 해결하는 데 필요한 도구와 방법을 제시합니다.
Unknown 2024년 03월 07일
  • 다중 플랫폼 제품 개발에서 웹-모바일 간 기능 동등성 유지의 어려움이 증대되고 있습니다.
  • 37signals는 터보-iOS와 반응형 웹 디자인을 활용하여 모바일 앱의 개발 지연을 줄이고 있습니다.
  • 이를 통해 적은 네이티브 코드 변경으로 웹에서 빠르게 기능을 배포하며, 동시에 네이티브에 준하는 사용자 경험을 제공합니다.
Unknown 2024년 02월 22일
  • 프론트엔드 프레임워크 Turbo의 v8 버전이 출시되어 웹 개발 및 사용자 경험을 혁신적으로 개선합니다.
  • 주요 기능으로는 선택적 페이지 새로고침을 위한 모핑, 부드러운 페이지 전환 애니메이션, 그리고 링크 사전 로딩을 통한 즉각적인 페이지 로딩이 포함됩니다.
  • 또한, TypeScript에서 JavaScript로의 전환을 통해 개발 유연성을 확보하고 안정적인 커뮤니티 성장을 이루었으며, 다양한 개선 사항과 버그 수정이 적용되었습니다.
Unknown 2024년 02월 07일
  • 37signals가 백그라운드 작업 운영 및 관찰을 위한 대시보드 'Mission Control - Jobs'를 오픈소스로 공개했습니다.
  • 이 도구는 기존 Resque 관리의 한계와 대규모 작업 처리의 어려움을 해결하고자 개발되었으며, Active Job에 쿼리형 API를 확장합니다.
  • 내부적으로 HEY와 Basecamp 4에서 성공적으로 사용되었고, Resque와 Solid Queue 등 다양한 어댑터에 대한 안전하고 효율적인 작업 관리를 제공합니다.
Unknown 2024년 01월 30일
  • 37signals는 Active Job의 새로운 데이터베이스 기반 백엔드인 Solid Queue를 오픈 소스로 공개했습니다.
  • 이는 기존 Resque/Redis 스택의 복잡성을 해소하고, 다양한 데이터베이스를 지원하며 운영 간소화를 목표로 합니다.
  • `SELECT ... FOR UPDATE SKIP LOCKED` 등 최적화된 설계로 높은 성능과 쉬운 디버깅을 제공합니다.
Unknown 2023년 12월 18일

Basecamp의 YJIT 적용을 통한 성능 개선 사례

37signals Dev — Basecamp code runs 18% faster with YJIT

  • Basecamp는 YJIT 도입 후 전반적인 애플리케이션 성능이 약 18% 향상되었습니다.
  • 특히 Ruby 3.3.0으로 업그레이드하면서 YJIT 코드 실행 비율이 98%까지 극적으로 증가하여 응답 시간이 최대 22% 단축되는 성과를 거두었습니다.
  • 이러한 개선은 코드 변경 없이 최소한의 메모리 오버헤드만으로 달성되었으며, YJIT의 높은 효율성을 입증합니다.
Unknown 2023년 12월 01일

Turbo 8의 새로운 페이지 새로고침(Page Refreshes) 기능 소개

37signals Dev — Demo of page refreshes with morphing

  • Turbo 8에서 모핑(morphing)을 활용한 새로운 페이지 새로고침 기능이 데모와 함께 공개되었습니다.
  • 이 기능은 기존 터보 스트림 액션(Turbo stream actions)을 대체하지 않으면서도, 부분 업데이트 시 스트림 액션 사용 필요성을 줄여줍니다.
  • 현재 첫 베타 버전이 출시되었으며, 기능의 안정성 확보를 위해 사용자 피드백을 통한 개선을 목표로 합니다.
Unknown 2023년 11월 27일
  • 개별 기여자는 불필요한 회의를 줄이고 코딩에 집중하기 위해 능동적으로 정보를 공유해야 합니다.
  • 작업 현황, 프로젝트 진척도, 비차단적 의사결정 등 세 가지 시나리오에서 정보를 주기적으로 '방사'하는 것이 핵심입니다.
  • 이는 팀 내 투명성을 높이고, 효율적인 협업을 촉진하며, 불필요한 절차를 방지하는 효과적인 방법입니다.
Unknown 2023년 11월 19일

Basecamp의 프로젝트 스택 구현: Hotwire를 활용한 풀스택 개발 효율성

37signals Dev — Building Basecamp project stacks with Hotwire

  • Basecamp는 Hotwire (Turbo, Stimulus)를 활용하여 프로젝트 그룹화 기능인 '프로젝트 스택'을 성공적으로 구현했습니다.
  • 기존 Rails의 `Delegated Types`와 `Bucket::Pin` 모델 확장을 통해 최소한의 스키마 변경으로 중첩 및 정렬 기능을 구현했습니다.
  • Turbo Streams와 Stimulus를 사용하여 복잡한 드래그앤드롭 UI를 실시간으로 업데이트하며 풀스택 개발의 생산성을 입증했습니다.
Unknown 2023년 11월 07일

서버 측 Diffing 실험과 Turbo 8의 방향성

37signals Dev — Exploring server-side diffing in Turbo

  • Rails는 Turbo 개선을 위해 서버 측 Diffing을 실험했으나, 최종적으로 클라이언트 측 모핑을 채택했습니다.
  • 이 실험은 Phoenix Live View에서 영감을 받았으며, 서버에서 변경사항을 계산하고 전송하는 프로토타입이 개발되었습니다.
  • 성능상의 미미한 이점과 HTTP의 무상태성, Turbo의 백엔드 독립성 유지의 중요성 때문에 서버 측 Diffing은 채택되지 않았습니다.
Unknown 2023년 10월 24일

Hotwire 활용 가이드

Yaroslav Shmarov - Hotwire Cookbook: Common Uses, Essential Patterns & Best Practices - Rails World - YouTube

  • Hotwire는 Ruby on Rails 백엔드 개발자를 위한 효율적인 웹 UI 구축 도구입니다.
  • Turbo Drive, Turbo Frames, Turbo Streams, Stimulus를 활용하여 최소한의 JavaScript로 동적인 기능을 구현합니다.
  • 복잡한 프론트엔드 프레임워크 없이도 만족스러운 개발 경험을 제공합니다.
Unknown 2023년 10월 20일