Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

Ruby

  1. AppSignal Ruby 젬 3.1 출시 – MRI VM 매직 대시보드로 즉각적인 성능 인사이트 확보

    AppSignal이 Ruby 젬(Ruby Gem) 3.1을 공개했습니다. 이번 버전의 핵심은 바로 MRI VM 통계를 위한 매직 대시보드(Magic Dashboard) 추가입니다. 최신 버전의 Ruby 젬으로 업그레이드하기만 하면, 새로운 프로브에서 데이터가 수집되는 즉시 AppSignal에 해당 대시보드가 자동으로 생성됩니다.대시보드에서 확인할 수 있는 내용은 다음과 같습니다.설정 없이 자동으로 제공되는 매직 대시보드매직 대시보드는 별도의 설정 작업 없이도 애플리케이션에 대한 깊이 있는 인사이트를 제공합니다. Puma, Sidek

  2. AppSignal, 이제 Alpine Linux ARM 공식 지원 — 어떤 환경에서도 자신 있게 서버 모니터링

    오늘 우리는 Alpine Linux가 실행되는 ARM 머신에 대한 지원을 정식 출시합니다. 이 기능은 현재 Ruby와 Elixir 사용자에게 제공되며, 앞으로 Node.js 패키지에도 Alpine Linux ARM 지원을 추가할 계획입니다. ARM CPU 아키텍처는 개발용 머신부터 프로덕션 서버까지 그 활용 범위가 빠르게 확대되고 있습니다. 이러한 흐름에 발맞춰, AppSignal은 ARM을 지원 운영체제 목록에 추가하게 되었습니다. 설치 방법 패키지 설치 방식은 기존과 동일합니다. ARM 머신은 자동으로 감지되며, 시스템에 맞는

  3. Ruby 메모리 누수 이해와 해결: 완벽 가이드

    메모리 누수를 다루는 두 부분으로 구성된 시리즈의 첫 번째 글에서는 Ruby가 메모리를 관리하는 방식과 가비지 컬렉션(GC)의 동작 원리를 살펴봤습니다. 충분한 메모리를 갖춘 고성능 서버를 사용할 수 있고, 앱이 자주 재시작되어 사용자가 눈치채지 못할 수도 있습니다. 그래도 메모리 사용량은 중요한 문제입니다. 메모리 할당과 가비지 컬렉션은 공짜가 아닙니다. 누수가 발생하면 앱이 원래 해야 할 일 대신 점점 더 많은 시간을 가비지 컬렉션에 소비하게 됩니다. 이번 글에서는 메모리 누수를 발견하고 진단하는 데 활용할 수 있는 도구들을 더

  4. Ruby와 Rails를 위한 JIT 컴파일러 완벽 가이드: YJIT, MJIT, TenderJIT으로 성능 극대화하기

    프로그램을 실행 전에 미리 컴파일하는 방식과 달리, 실행 시점에 코드를 컴파일하는 방법이 있습니다. 이를 JIT(Just-In-Time) 컴파일 또는 동적 번역(Dynamic Translation)이라고 부릅니다.이 글에서는 먼저 JIT 컴파일이 어떻게 작동하는지 살펴보고, Ruby on Rails 애플리케이션에 JIT 컴파일이 좋은 선택이 될 수 있는 이유를 알아본 뒤, 현재 사용 가능한 세 가지 옵션(YJIT, MJIT, TenderJIT)과 설치 방법까지 자세히 다뤄보겠습니다.JIT 컴파일러의 작동 원리JIT(Just-In-T

  5. RubyCritic으로 Ruby 코드 품질 높이기: 시각적 분석과 지속적인 개선

    RubyCritic은 Ruby 애플리케이션의 코드 스멜(code smell), 코드 구조, 테스트 용이성, 테스트 커버리지를 한눈에 파악할 수 있는 시각적 리포트를 제공하는 도구입니다. 이 도구는 현재도 활발하게 개발되고 있으며, 새로운 코드 분석 기능이 꾸준히 추가되고 있습니다. 따라서 RubyCritic의 릴리스 소식을 지속적으로 확인해 두는 것이 좋습니다. 이 글에서는 RubyCritic의 장점, 내부 의존성, 그리고 코드 리포트를 읽는 방법까지 살펴보겠습니다. 그럼 시작해 보겠습니다! Ruby on Rails 애플리케이션에서

  6. Rails에서 Trix와 Turbo 프레임으로 동적 테이블 편집기 만들기

    이번 포스트에서는 Rails 애플리케이션에 기본적인 ActionText 테이블 편집기를 구현해 보겠습니다. 이 과정에서 다음 내용들을 배우게 됩니다. ActionText와 Trix가 첨부(attachment)를 처리하는 방식 자체 Attachable 타입을 구현하고 이를 활용해 기본 테이블 편집기를 만드는 방법 Turbo Frame으로 테이블을 편집하는 방법 Turbo가 도움이 되면서 동시에 걸림돌이 되는 지점 이 글은 2020년에 발표된 훌륭한 블로그 포스트 Adding Tables to ActionText With Stimu

  7. 대규모 사용자 성장을 위한 Ruby on Rails 확장 전략 완벽 가이드

    오늘은 Ruby on Rails 애플리케이션을 대규모 사용자 기반까지 확장할 때 활용할 수 있는 다양한 전략을 자세히 살펴보겠습니다. 애플리케이션을 확장하는 가장 확실한 방법은 돈을 더 쓰는 것입니다. 그리고 이 방법은 놀라울 정도로 효과적입니다. 서버를 몇 대 추가하고 데이터베이스 서버를 업그레이드하면, 많은 성능 문제가 순식간에 사라지죠. 하지만 서버를 추가하지 않고도 애플리케이션을 확장하는 것이 가능합니다. 오늘 우리가 다룰 내용이 바로 그 부분입니다. 그럼 시작해 보겠습니다! AppSignal로 Rails 애플리케이션 모니터

  8. Noticed와 CableReady로 구현하는 Rails 강력한 시스템 알림 완벽 가이드

    이 글은 필자의 『Advanced CableReady』 책의 다가오는 한 챕터에서 영감을 받아, AppSignal 게스트 포스트에 맞춰 다듬은 내용입니다.알림 기능은 수많은 웹 애플리케이션이 공유하는 대표적인 횡단 관심사(cross-cutting concern)입니다.Noticed 젬(gem)은 데이터베이스 기반 모델과 플러그인 방식의 전달 메서드를 제공하여 Ruby on Rails 애플리케이션에서 알림 개발을 놀랍도록 쉽게 만들어 줍니다. 메일러, 웹소켓 등 여러 전달 방식이 기본으로 내장되어 있습니다.이번 글에서는 CableRe

  9. AppSignal이 선정한 2022년 최고 인기 Ruby 아티클 TOP 5

    연말연시가 다가오면서 AppSignal 팀은 잠시 겨울 휴식에 들어가며 Ruby 관련 포스팅 발행을 잠시 중단합니다. 2023년에는 더 알찬 글로 다시 찾아뵙겠습니다. 🍵 ❄️그동안 2022년 한 해 동안 독자들의 사랑을 가장 많이 받았던 Ruby 블로그 포스트 TOP 5를 함께 살펴보겠습니다!Ruby의 상태 머신(State Machine): 입문 가이드상태 머신은 어떤 대상이 가질 수 있는 모든 상태와 그 상태 사이에 허용되는 전환을 정의합니다. 예를 들어 문(door)의 상태 머신은 open(열림)과 closed(닫힘)라는 두

  10. Ruby C 확장 인수 파싱 완전 정복하기: 단계별 가이드

    Ruby는 사람을 먼저, 기계를 나중에 생각하며 만든 훌륭한 언어입니다. 읽고 쓰기가 쉬울 뿐 아니라, 같은 동작을 구현하는 방법이 다양하고, 스스로 지었을 법한 메서드 이름을 입력해 보면 표준 라이브러리에 실제로 존재하곤 합니다.덕분에 Ruby의 인수 체계는 매우 유연해서 API를 아주 명확하게 표현할 수 있습니다. 하지만 여기에는 단점이 따릅니다. 바로 C 확장 개발자 입장에서 Ruby는 파싱하기 상당히 까다롭다는 것입니다!이 글에서는 C로 작성된 복잡한 Ruby API를 구성하는 두 가지 방법을 살펴보겠습니다.rb_define

  11. C 확장에서 Ruby 메서드 호출 시 메모리 누수 방지하는 방법

    메모리 누수는 gem 사용자에게 큰 고민거리입니다. 원인을 추적하기 어렵고, 방치하면 값비싼 인프라 비용으로 이어질 수 있습니다.C 확장 내부에서 발생하는 메모리 누수는 더욱 다루기 까다롭습니다. Ruby 코드에서 누수를 찾는 도구와 글은 많지만, C 레벨에서는 내부 구조에 접근하기가 훨씬 어렵기 때문입니다.특히 rb_funcall을 무분별하게 사용하면 메모리 누수가 발생할 수 있습니다. 대신 rb_protect를 사용하는 것이 훨씬 안전합니다. C 확장을 개발하신다면, 여러분의 gem을 사용할 개발자들을 위해 끝까지 읽어보시길 권

  12. Kredis로 Rails 앱의 임시 UI 상태 손쉽게 저장하기

    Kredis(Keyed Redis)는 최근 Rails 개발자 도구 모음에 합류한 라이브러리입니다. Redis에 구조화된 데이터를 저장하고 조회하는 과정을 크게 단순화해 주는 것이 목표입니다. 이 두 편으로 구성된 시리즈의 첫 번째 글에서는 먼저 Kredis의 동작 원리를 살펴보겠습니다. 이어서 맞춤형 Redis 키를 활용해 일시적인 UI 상태를 저장하는 실전 예제를 진행해 보겠습니다. 그럼 바로 시작해 보겠습니다! Rails를 위한 Kredis 소개 Kredis는 세 가지 방식으로 개발 편의성을 높여 주는 래퍼(wrapper)를 제

  13. Ruby에서 사용자 정의 예외 마스터하기: 오류 처리와 관찰 가능성 향상

    소프트웨어 개발 과정에서 예외를 커스터마이징하는 일은 흔히 신경 쓰지 않는 부분입니다. 하지만 관찰 가능성(Observability) 도구에서 오류를 포착했는데 문제를 빠르고 정확하게 파악할 수 없다면, 예외에 대한 더 많은 정보와 세부 사항이 필요하다는 신호입니다. 이 글에서는 Ruby에서 예외를 커스터마이징하는 방법과, 오류 정보 부족으로 인해 발생할 수 있는 잠재적 문제를 미리 예방하는 방법을 소개합니다. 바로 시작해 보겠습니다! 간단한 참고 사항 이 글은 AppSignal로 Ruby 디버깅하기 시리즈의 자연스러운 연장선에 해

  14. AppSignal로 NGINX 성능 모니터링 자동화하기: 실시간 인사이트와 매직 대시보드 활용법

    NGINX의 성능을 제대로 파악하는 일은 생각보다 어려울 수 있습니다. 추적해야 할 데이터 포인트가 너무 많고, 어떤 지표가 중요하고 어떤 지표를 무시해도 되는지 판단하기가 쉽지 않기 때문입니다. 이 글에서는 AppSignal을 활용해 NGINX를 모니터링하고 애플리케이션 성능에 대한 가시성을 높이는 방법을 소개합니다. 모든 지표를 마법처럼 만들기 AppSignal은 처리량(Throughput)부터 응답 시간까지 다양한 성능 지표를 담은 커스텀 대시보드를 만들 수 있게 해줍니다. 하지만 대시보드를 직접 구성하려면 시간이 많이 들고,

  15. AppSignal 커스텀 메트릭 추적로 즉각적이고 실행 가능한 인사이트 확보하기

    커스텀 메트릭을 설정하면 로그 라인을 일일이 뒤지거나 복잡한 리포팅 도구와 씨름할 필요 없이, 필요한 정보를 즉시 파악할 수 있습니다. 의미 있는 메트릭을 추적해 애플리케이션의 핵심 모니터링 데이터를 보완하고, 잠재적인 문제를 신속하게 식별하고 해결하세요.이번 포스트에서는 커스텀 메트릭을 설정하고 활용해 모니터링 사각지대를 없애는 방법을 소개합니다. AppSignal의 다양한 모니터링 도구와 함께 커스텀 메트릭을 사용하면 애플리케이션 성능을 한층 더 깊이 이해할 수 있습니다.커스텀 메트릭이란?메트릭과 관련해 AppSignal은 기본

  16. Rails Action Mailbox로 인바운드 이메일 통합하고 트러블슈팅하기: 완벽 실전 가이드

    이메일 발송과 수신과 관련된 RFC(Request for Comments) 문서를 한 번이라도 들여다본 적이 있다면, 메일함에서 보내기 버튼을 누르는 단순해 보이는 동작 뒤에 얼마나 복잡한 기술이 숨어 있는지 실감하게 됩니다. 다행히도 개발자를 위해 SMTP(Simple Mail Transfer Protocol) 서비스를 제공해 주는 도구가 이미 많이 존재합니다. 직접 운영하는 Postfix 서버부터 SendGrid, Amazon SES, Postmark처럼 확장성이 뛰어난 발송 서비스까지 선택지는 다양합니다. 하지만 전송 성공률(

  17. AppSignal 3.4.1로 더욱 간편해진 레일즈 예외 보고

    애플리케이션에서 발생하는 예외를 파악하고 싶지만, 코드에 장황한 로직을 추가할 시간이 없다면 좋은 소식이 있습니다. AppSignal for Ruby 젬 3.4.1 버전부터 Rails Error Reporter를 공식적으로 지원합니다.이번 업데이트를 통해 AppSignal 연동 과정을 크게 단순화하고, 코드를 깔끔하게 유지하면서도 에러 페이지를 띄우거나 사용자의 작업 흐름을 방해하지 않고 실시간으로 오류를 보고할 수 있게 되었습니다.이 글에서는 Rails Error Reporter를 활용해 AppSignal로 오류를 보고하는 방법을

  18. Ruby 메소드 위임 완벽 정복: 실전 가이드

    프로그래밍에서 위임(delegation)은 프로그램의 한 부분에서 다른 부분으로 작업을 넘겨 처리하는 것을 의미합니다. 객체 지향 프로그래밍(OOP)에서 필수적인 기법으로, 각 객체나 메소드가 특정 작업과 책임만 담당하도록 하여 깔끔하고 유지보수하기 좋은 코드를 만들 수 있게 해줍니다. 위임을 이해하고 활용하는 것은 Ruby를 비롯한 객체 지향 언어를 마스터하는 핵심입니다. 위임은 관심사의 분리(separation of concerns)를 촉진하여 코드를 더 모듈화하고, 이해·테스트·리팩토링하기 쉽게 만들어 줍니다. 이 글에서는 R

  19. Rails Devise 완벽 가이드: OmniAuth 소셜 로그인부터 API 인증과 Authtrail까지

    이 시리즈의 첫 번째 글에서는 예제 앱을 통해 Devise의 모듈, 헬퍼, 뷰, 컨트롤러, 라우트 등 기본 개념을 살펴보았습니다.이번 두 번째 파트에서는 Devise의 고급 활용법을 다룹니다. 구체적으로 OmniAuth를 이용한 소셜 로그인, API 인증, 그리고 Authtrail을 활용한 로그인 추적 방법까지 알아보겠습니다.바로 시작해 보겠습니다!OmniAuth를 활용한 Ruby 인증요즘 거의 모든 웹 애플리케이션은 트위터, 페이스북 같은 소셜 네트워크는 물론 Google, GitHub 등 다양한 인증 제공자를 통해 로그인할 수

  20. Ruby on Rails 백그라운드 작업 처리, Sidekiq 완벽 활용 가이드

    Sidekiq은 시간이 오래 걸리는 작업을 백그라운드로 이관함으로써 Ruby 개발자가 빠르고 반응성 좋은 웹 애플리케이션을 유지할 수 있도록 도와주는 도구입니다. Sidekiq은 멀티스레딩을 핵심으로 하여 여러 잡(job)을 동시에 처리할 수 있습니다. 덕분에 높은 부하를 감당하거나 이메일 발송, 파일 처리 같은 작업을 수행하는 Ruby 또는 Rails 애플리케이션에서 Sidekiq은 필수적인 요소로 자리 잡았습니다. 백그라운드 처리가 없다면 오래 실행되는 작업이 애플리케이션의 메인 스레드를 차단하게 되고, 그 결과 응답 속도가 느

Total 598 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:2/30  20-컴퓨터/Page Goto:1 2 3 4 5 6 7 8