지난 글들

1256개의 글이 있습니다

Rails 8 인증 시스템: 핵심 기능 및 사용법

How to Use Authentication in Ruby on Rails 8

  • Rails 8에 새로 도입된 인증(Authentication) 제너레이터는 기존 Devise보다 간소화된 핵심 기능만을 제공합니다.
  • 기본적으로 모든 컨트롤러 액션은 인증을 요구하며, `allow_unauthenticated_access`를 통해 특정 페이지에 비인증 접근을 허용할 수 있습니다.
  • `authenticated?` 및 `current.user`와 같은 핵심 메서드를 활용하여 사용자 인증 상태를 확인하고 로그인된 사용자 정보에 접근합니다.
Ruby on Rails 소식지 2025년 01월 01일

Ruby on Rails 8: 인증 시스템 확장 및 사용자 경험 개선

Rails 8 Authentication Adding Signup Flow & User Profiles

  • Ruby on Rails 8의 기본 인증 시스템에 회원가입 기능을 추가하고 사용자 프로필 관리 기능을 확장하는 방법을 설명합니다.
  • Instrumental Components 라이브러리를 활용하여 로그인/회원가입 UI를 개선하고, 사용자 메뉴 및 반응형 레이아웃을 구현합니다.
  • Gravatar 연동, 타임존 자동 감지, 아바타 업로드 등 실제 애플리케이션에 필요한 다양한 사용자 경험 개선 요소를 다룹니다.
Ruby on Rails 소식지 2025년 01월 01일
  • Rails는 2024년에 555명의 기여자가 참여하여 약 4000건의 커밋과 50번의 릴리스를 기록하며 활발한 개발을 진행했습니다.
  • Rails 8 출시와 함께 PWA 지원 강화, 속도 제한 기능 추가, Kamal 및 Propshaft 기본 포함 등 다양한 핵심 기능이 도입되었습니다.
  • Solid Cache, Solid Queue, Solid Cable과 같은 새로운 기본 캐싱 및 작업 큐 백엔드를 도입하여 Redis 의존성을 줄이고 배포 효율성을 높였습니다.
Ruby on Rails 소식지 2024년 12월 27일

Ruby 3.4.0 릴리스

Ruby 3.4.0 Released

  • Ruby 3.4.0이 공식 릴리스되었으며, 새로운 기능과 성능 개선이 대거 포함되었습니다.
  • `it` 블록 파라미터 참조 도입, Prism 파서의 기본 채택, Happy Eyeballs Version 2 지원이 주요 특징입니다.
  • YJIT 성능 향상 및 Modular GC 도입을 통해 실행 속도와 메모리 효율성이 크게 개선되었습니다.
Ruby on Rails 소식지 2024년 12월 25일

Ruby JSON Gem 최적화: 1부

Optimizing Ruby’s JSON, Part 1 | byroot’s blog

  • json gem의 유지보수 담당자가 되어 성능 최적화에 집중하여 대부분의 벤치마크에서 Ruby용 가장 빠른 JSON 파서 및 제너레이터로 만들었습니다.
  • 성능 개선은 프로파일링 기반의 간단한 최적화로 이루어졌으며, 이는 C 코드뿐만 아니라 일반적인 코드에도 적용될 수 있는 보편적인 방법론을 제시합니다.
  • 이러한 최적화는 `oj`와 같은 대체 라이브러리의 불안정성과 몽키 패치로 인한 문제를 해결하고, 사용자에게 `json` gem의 성능적 매력을 높이는 데 목적이 있습니다.
Ruby Weekly 2024년 12월 15일

Rails 8 프로덕션 배포를 위한 Dockerfile 심층 분석

Inside the default Dockerfile | Rails 8 Unpacked

  • Rails 8은 Kamal과 Docker를 활용하여 애플리케이션 배포를 간소화하며, 'Hello World에서 IPO까지'라는 비전을 실현합니다.
  • Docker는 컨테이너, 이미지, Dockerfile의 세 가지 핵심 개념을 통해 애플리케이션과 그 종속성을 호스트 OS와 격리된 환경에서 실행할 수 있도록 지원합니다.
  • Rails 8의 기본 Dockerfile은 멀티 스테이지 빌드 방식을 사용하여 프로덕션에 최적화된 작고 안전한 이미지를 생성하며, Gem 설치, 에셋 컴파일, 데이터베이스 준비 등을 자동화합니다.
이원섭 2024년 12월 14일

Ruby의 `then` 메서드: 코드 가독성 향상을 위한 파이프라인 체이닝

The 'then' Ruby Keyword - What is it? – Ben Koshy – Rails, Tekla Open API, AutoDesk .NET

  • Ruby의 `then` 메서드는 파이프라인 형태의 메서드 체이닝을 통해 복잡한 연산의 가독성을 향상시킵니다.
  • `then`은 각 단계를 명확히 분리하여 함수형 프로그래밍의 커링(currying) 스타일을 Ruby 코드에 적용하는 데 효과적입니다.
  • `then`은 `yield_self`와 기능적으로 동일하며, `tap`과는 사용 목적이 달라 코드의 의도에 따라 적절히 선택해야 합니다.
The Awesome Ruby 2024년 12월 09일

Rails 애플리케이션에 MCP 서버 구축하기

Adding an MCP server to a Rails app

  • MCP는 LLM이 외부 서비스와 표준화된 방식으로 상호작용하도록 돕는 개방형 프로토콜로, 애플리케이션 컨텍스트 제공을 통해 작업 효율성을 증대시킵니다.
  • Ruby on Rails 애플리케이션에 `fast-mcp` Gem을 설치하여 MCP 서버를 구축하고, 리소스와 도구를 정의함으로써 LLM이 데이터 조회 및 특정 작업을 수행하도록 연동할 수 있습니다.
  • 구축된 MCP 서버는 Cursor, Claude Desktop과 같은 LLM 클라이언트와 연결되어 데이터 분석, 보고서 생성, DB 레코드 업데이트 등 복잡한 작업을 대화형으로 자동화합니다.
AVO 2024년 11월 25일
  • Ruby에서 Elixir와 유사한 파이프라인 연산자를 AST 변환 기법을 활용하여 구현하는 실험적 접근 방식을 소개합니다.
  • 기존 Ruby의 메서드 체이닝 및 `.then` 사용으로 파이프라인 연산자가 불필요하다는 회의론에도 불구하고, 새로운 관점의 제안과 Python 라이브러리에서 영감을 받아 구현되었습니다.
  • `pipe` 키워드로 메서드를 장식하고 `>>` 연산자를 사용하여 이전 단계의 결과를 `_`로 참조하거나 첫 번째 인자로 자동 전달하는 방식으로 동작합니다.
HackerNews 2024년 11월 16일

Rails에서 Webmock과 Rack을 활용한 외부 서비스 목업 테스트

Mock External Services in Rails with WebMock and Rack

  • Rails 애플리케이션 테스트 시 Webmock을 사용하여 외부 HTTP 요청을 스텁(stub)하여 실제 호출 없이 안정적인 테스트 환경을 구축합니다.
  • Webmock의 `stub_request`는 정적인 응답에 적합하며, Rack과 결합하면 요청 파라미터나 헤더에 따른 동적인 응답 시뮬레이션이 가능하여 테스트 시나리오를 확장합니다.
  • Webmock과 Rack 조합은 VCR과 달리 실제 HTTP 요청 없이 외부 서비스를 완전히 목업하여 불안정한 외부 API에 대한 의존성을 제거하고 테스트의 견고함을 높입니다.
Codemancers 2024년 11월 10일

Rails 애플리케이션에서 웹 푸시 알림 구현 가이드

Joy of Rails | Sending Web Push Notifications from Rails

  • Rails 8에서 기본으로 제공될 웹 푸시 알림 기능을 현재 Rails 애플리케이션에 구현하는 방법을 상세히 다룹니다.
  • 웹 푸시 구현은 PWA 설정, 서비스 워커, VAPID 키 생성 및 권한 요청 등 클라이언트 및 서버 측의 복합적인 설정과 연동을 요구합니다.
  • `web-push` 젬을 활용하여 Rails 백엔드에서 푸시 알림을 트리거하고, 서비스 워커를 통해 사용자에게 알림을 표시하는 전체 과정을 설명합니다.
Ruby Weekly 2024년 10월 23일

Ruby에서 몽키 패치 감지

Tenderlove Making - Monkey Patch Detection in Ruby

  • CRuby는 핵심 메서드의 몽키 패치 여부를 감지하여 성능 최적화를 해제하는 메커니즘을 갖추고 있습니다.
  • 이 감지 시스템은 메서드 재정의 시 `ruby_vm_redefined_flag`라는 전역 변수의 비트맵 플래그를 설정하여 작동합니다.
  • 이를 통해 CRuby는 사용자 정의된 메서드를 존중하며, JIT 컴파일러의 디옵티마이징에도 활용됩니다.
The Awesome Ruby 2024년 10월 16일
  • ViewComponent는 Ruby on Rails 애플리케이션에서 재사용 가능하고 테스트 용이하며 캡슐화된 UI 컴포넌트를 구축하기 위한 프레임워크입니다.
  • 부분 템플릿(partials) 및 헬퍼(helpers) 대비 향상된 모듈성, 성능, 그리고 일관된 UI 요소를 제공하여 개발 효율성을 높입니다.
  • 내장된 제너레이터, 테스트 지원, 그리고 슬롯(slots) 기능을 통해 복잡한 UI 구성 요소를 체계적으로 관리하고 확장할 수 있습니다.
jeff 2024년 08월 01일

더 이상 루비를 좋아하지 않는 걸까?

Do I not like Ruby anymore? (2024)

  • 오랫동안 루비를 사랑하고 파이썬을 싫어했던 저자가 파이썬 환경에서 일하며 파이썬에 대한 인식이 긍정적으로 변화했음을 설명합니다.
  • 파이썬은 타입 힌트, 매치 구문 등 주요 기능이 발전하며 언어의 완성도를 높였고, 이는 저자의 언어 선택 기준 변화에 영향을 주었습니다.
  • 루비는 지난 10년간 큰 변화가 없어 저자는 다른 언어의 기능(특히 파이썬의 기능)을 그리워하게 되었고, 루비와의 결별을 암시합니다.
HackerNews 2024년 05월 28일

Honeybadger Insights: 이벤트 중심의 관측 가능성 플랫폼과 와이드 이벤트의 힘

Observable systems with wide events - Honeybadger Developer Blog

  • Honeybadger Insights는 기존 로그, 메트릭, 트레이스의 분리된 접근 방식을 이벤트 중심 전략으로 통합하여 시스템 관측 가능성을 향상시킵니다.
  • 비정형 로그를 JSON 형식의 구조화된 이벤트로 전환함으로써 BadgerQL을 통한 강력한 쿼리와 심층적인 데이터 분석이 가능해집니다.
  • ‘와이드 이벤트’는 실행에 대한 포괄적인 컨텍스트 데이터를 단일 이벤트에 담아, 미지의 문제 해결에 필수적인 풍부한 진단 정보를 제공합니다.
Ruby Weekly 2024년 04월 16일