이 기사에서는 Ruby on Rails 애플리케이션에서 Capistrano를 구성합니다. 그런 다음 호스팅 공급자와 관계없이 Ubuntu를 운영 체제로 실행하는 클라우드 인스턴스에 앱을 배포합니다. 어떤 클라우드 서비스나 온프레미스 서버를 사용하여 우리가 취할 단계를 테스트하거나 복제할 수 있습니다. 앱을 배포한 후에는 AppSignal을 사용하여 앱 배포를 모니터링할 수 있는 방법을 간략하게 살펴보겠습니다. 하지만 먼저 다음과 같은 질문을 하실 수도 있습니다:애초에 왜 Capistrano를 사용해야 합니까? Ruby on Ra
메모리 누수는 의도하지 않고, 통제할 수 없으며, 메모리 사용량이 끝없이 증가하는 것입니다. 아무리 작더라도 결국에는 누수로 인해 프로세스의 메모리가 부족해지고 충돌이 발생하게 됩니다. 이러한 충돌을 피하기 위해 주기적으로 앱을 다시 시작하더라도(판단할 필요는 없습니다. 그렇게 했습니다!) 여전히 메모리 누수로 인해 성능에 영향을 받습니다. 메모리 누수에 관한 두 부분으로 구성된 시리즈 중 첫 번째인 이 게시물에서는 Ruby가 메모리를 관리하는 방법, GC(가비지 수집) 작동 방식, 누수를 찾는 방법부터 살펴보겠습니다. 두 번째
MRI VM 통계용 Magic Dashboard를 추가하는 Ruby gem 3.1용 AppSignal을 출시하게 되어 매우 기쁩니다. 최신 Ruby gem으로 업그레이드하면 새 프로브의 데이터가 유입되기 시작하자마자 AppSignal에 이 대시보드가 자동으로 생성됩니다. 표시되는 내용은 다음과 같습니다. Magic Dashboard는 아무런 설정 없이 사람들에게 애플리케이션에 대한 놀라운 통찰력을 제공합니다. Puma, Sidekiq, ActiveJob, ActionMailer 등과 같은 주요 기능에 대한 팀 성과 통찰력을
오늘 우리는 Alpine Linux를 실행하는 컴퓨터에 대한 ARM 지원을 시작합니다. 이 기능은 Ruby 및 Elixir 사용자가 사용할 수 있습니다! 앞으로 Node.js 패키지에 Alpine Linux ARM에 대한 지원을 추가할 수 있기를 바랍니다. ARM CPU 아키텍처는 점점 더 대중화되고 있습니다. 사람들의 개발 시스템과 프로덕션 서버를 강화하기 때문에 우리는 지원하는 운영 체제 목록에 이를 추가하기로 결정했습니다. 설치 절차 이전과 동일한 방법으로 패키지를 설치할 수 있습니다. ARM 머신이 자동으로 감지되고 시스
메모리 누수에 관해 두 부분으로 구성된 이 시리즈의 첫 번째 부분에서는 Ruby가 메모리를 관리하는 방법과 가비지 수집(GC)이 작동하는 방식을 살펴보았습니다. 더 많은 메모리를 갖춘 강력한 시스템을 구입할 수 있으며 사용자가 눈치채지 못할 정도로 앱이 자주 다시 시작될 수도 있지만 메모리 사용량은 중요합니다. 할당 및 가비지 수집은 무료가 아닙니다. 누출이 있는 경우 앱을 구축한 작업을 수행하는 대신 가비지 수집에 더 많은 시간을 소비하게 됩니다. 이 게시물에서는 메모리 누수를 발견하고 진단하는 데 사용할 수 있는 도구에 대
애플리케이션 팀은 고객 경험이 어떤 것인지 이해해야 합니다. 이는 일반적인 관점(사용성 및 반응성 측면)뿐만 아니라 일상적인 관점에서도, 분 단위로도 마찬가지입니다. 특히 분산 시스템을 사용하면 오류가 불가피합니다. 사이트 트래픽은 하루 종일 변동이 심하며 시스템 종속성 중 하나라도 언제든지 문제가 발생할 수 있습니다. 이 문서에서는 매직 대시보드를 사용하여 Ruby on Rails 애플리케이션 내 성능 문제를 모니터링하고 해결하는 데 도움을 드립니다. 하지만 매직 대시보드에 대해 알아보기 전에 앱을 디자인할 때 무엇을 주의해
프로그램은 실행 전 컴파일과 다른 방법을 사용하여 런타임에 컴파일됩니다. 이 프로세스를 적시 컴파일 또는 동적 번역이라고 합니다. 이 게시물에서는 사용 가능한 옵션(YJIT, MJIT, TenderJIT)과 설치 방법을 살펴보기 전에 JIT 컴파일이 Ruby on Rails 앱에 적합한 선택이 될 수 있는 이유를 살펴보겠습니다. 하지만 먼저 JIT 컴파일은 어떻게 작동하나요? JIT 컴파일러 작동 방식 JIT(Just-In-Time) 컴파일은 프로그램을 실행하는 동안 컴파일이 필요한 컴퓨터 코드를 실행하는 방법입니다. 소스
RubyCritic은 Ruby 애플리케이션의 코드 냄새, 코드 구조, 테스트 용이성 및 테스트 범위를 강조하는 시각적 보고서를 제공합니다. 새로운 코드 분석 도구가 종종 새로운 기능으로 도입되면서 활발한 개발이 진행되고 있습니다. RubyCritic의 릴리스를 추적해 볼 가치가 있습니다. 이 문서에서는 RubyCritic의 일부 이점, 종속성 및 코드 보고서를 읽는 방법을 다룰 것입니다. 가자! Ruby on Rails 애플리케이션으로 RubyCritic을 선택하는 이유는 무엇입니까? 프로젝트의 코드 개선 사항을 한 곳에서
이 게시물에서는 Rails 애플리케이션을 위한 기본 ActionText 테이블 편집기를 구현합니다. 그 방법은 다음과 같습니다: ActionText 및 Trix가 첨부 파일을 처리합니다. 자체 Attachable 구현 입력하고 이를 활용하여 기본 테이블 편집기를 구축합니다. 터보 프레임을 사용하여 표를 편집할 수 있습니다. 터보는 도움이 되는 동시에 방해가 됩니다 이 기사는 2020년에 게시된 뛰어난 Stimulus.js를 사용하여 ActionText에 테이블 추가 블로그 게시물에서 영감을 얻었습니다. 하지만 이는 Turbo가
오늘은 Ruby on Rails 애플리케이션을 대규모 사용자 기반으로 확장하는 데 사용할 수 있는 몇 가지 전략에 대해 알아보겠습니다. 애플리케이션을 확장하는 한 가지 확실한 방법은 애플리케이션에 더 많은 돈을 투자하는 것입니다. 그리고 놀라울 정도로 잘 작동합니다. 서버를 몇 개 더 추가하고, 데이터베이스 서버를 업그레이드하면, 짜잔, 많은 성능 문제가 그냥 폭발됩니다. ! 그러나 서버를 추가하지 않고도 애플리케이션을 확장할 수 있는 경우도 많습니다. 오늘 우리가 논의할 내용은 바로 이것입니다. 가자! Rails 애플리케이션
이 기사는 저자의 Advanced CableReady 책의 다음 장에서 부분적으로 영감을 받았으며 AppSignal의 이번 게스트 게시물에 맞게 조정되었습니다. 알림은 많은 웹 애플리케이션에서 공유하는 일반적인 공통 관심사입니다. Noted gem은 Ruby on Rails 애플리케이션을 위한 데이터베이스 지원 모델과 플러그형 전달 방법을 제공하여 알림 개발을 놀랍도록 쉽게 만듭니다. 메일러, 웹소켓 및 기타 몇 가지 전달 방법에 대한 지원이 내장되어 있습니다. 또한 Ruby on Rails 애플리케이션에서 시스템 알림을 트리
휴일이 다가오면서 AppSignal 팀은 Ruby 게시물 게시를 중단하고 짧은 겨울 방학을 보내고 있습니다. 2023년에는 더 많은 작품을 선보이길 바랍니다. 🍵 ❄️ 그동안 2022년 가장 많은 좋아요를 받은 Ruby 블로그 게시물 상위 5개를 살펴보겠습니다! Ruby의 상태 머신:소개 상태 기계는 가능한 모든 상태와 이러한 상태 사이에 허용되는 전환을 보유할 수 있습니다. 예를 들어 문의 상태 머신에는 두 가지 상태(open)만 있습니다. 그리고 closed ) 및 전환이 2개(opening)뿐입니다. 그리고 closing
Ruby는 인간을 먼저, 기계를 위해 만들어진 훌륭한 언어입니다. 읽고 쓰기가 쉽습니다. 무엇이든 작성하는 방법은 다양하며 자신이 선택한 방법의 이름을 입력하여 표준 라이브러리를 추측할 수 있는 경우가 많습니다. 이 때문에 Ruby의 인수는 매우 유연하여 API를 매우 명확하게 표현할 수 있습니다. 그러나 여기에는 단점이 있습니다. Ruby는 Cextension 개발자가 구문 분석하기가 매우 어렵습니다! 이 글에서는 C로 작성된 복잡한 Ruby API를 설정하는 두 가지 방법을 살펴보겠습니다. rb_define_method와
메모리 누수는 gem 사용자에게 골칫거리입니다. 추적하기 어렵고 인프라 비용이 많이 들 수 있습니다. C 확장 내의 메모리 누수는 더욱 심각합니다. Ruby에서 누수를 찾는 방법에 대한 많은 도구와 기사를 볼 수 있습니다. 그러나 C에서는 내부에 동일한 액세스 권한이 없습니다. rb_funcall의 순진한 사용법 메모리 누수가 발생할 수 있습니다. rb_protect를 사용하는 것이 훨씬 좋습니다. 대신. 따라서 C 확장 작성자라면 gem을 사용할 개발자를 위해 읽어보시기 바랍니다. 시작해 보세요! rb_funcall의 문제
Kredis(Keyed Redis)는 최근 Rails 개발자 툴킷에 추가되었습니다. Redis에서 구조화된 데이터의 저장과 액세스를 단순화하기 위해 노력하고 있습니다. 두 부분으로 구성된 시리즈 중 첫 번째 부분에서는 Kredis의 작동 방식부터 살펴보겠습니다. 그런 다음 맞춤형 Redis 키를 사용하여 임시 UI 상태를 저장하는 사용 사례 예시를 살펴보겠습니다. 시작해 보세요! Rails용 Kredis 소개 Kredis는 세 가지 방법으로 사용을 간소화할 수 있는 편리한 래퍼를 제공하는 Railtie입니다: Ruby와 유사
대부분의 사람들은 로그가 가장 필요할 때만 로그의 필요성을 깨닫습니다. 하지만 애플리케이션이 중단되고 사용자 불만이 넘쳐나기 시작하면 이를 해결하는 방법을 전혀 모르므로 도움이 될 만한 로그 메시지를 추가하기에는 너무 늦습니다. 좋은 통나무는 그 자체로 10배의 가치를 지닙니다. 까다로운 버그를 쉽게 진단할 수 있으며, 로그를 올바르게 작성하면 사용자가 알기 전에도 문제에 대해 경고할 수 있습니다. 그런데 로깅을 제대로 한다는 게 무슨 뜻인가요? 로깅은 시작하기 쉽지만 마스터하기는 어렵습니다. 이 게시물에서는 Rails 애플리케
오늘날 많은 웹 애플리케이션에는 홈페이지와 같이 공개적으로 사용할 수 있는 페이지와 사용자가 액세스하려면 로그인해야 하는 보다 안전한 페이지가 포함됩니다. 사용자 등록, 로그인, 사용자 세션 상태 추적 과정을 인증이라고 합니다. 동시에 로그인한 사용자를 처리할 때는 사용자 역할에 따라 사용할 수 있는 작업과 리소스를 분리해야 합니다. 예를 들어, 관리자는 일반적으로 일반 사용자보다 더 많은 액세스 권한을 갖습니다. 이렇게 인증된 사용자 액세스를 분리하는 과정을 인증이라고 합니다. 이 게시물에서는 지금까지 Ruby에서 가장 인기
예외를 사용자 정의하는 것은 일반적으로 소프트웨어 개발 중에 일반적인 문제가 아닙니다. 그러나 관찰 도구에서 오류를 포착하고 문제를 정확하고 신속하게 식별할 수 없는 경우 예외에 대한 추가 정보와 세부정보가 필요할 수 있습니다. 이 문서에서는 Ruby에서 예외를 사용자 정의하고 오류 정보 부족으로 인해 발생할 수 있는 향후 문제를 완화하는 방법을 보여줍니다. 바로 들어가 보겠습니다! 간단한 참고사항 이 게시물은 AppSignal을 사용한 Ruby 디버깅에 대한 자연스러운 진행이므로 디버깅 개요 및 사용자 정의 예외에 대한 소개
NGINX의 성능을 이해하는 것은 매우 어려울 수 있습니다. 따라야 할 데이터 포인트가 많으며 어떤 것이 귀하와 관련이 있고 어떤 것을 무시할 수 있는지 아는 것이 까다로울 수 있습니다. 이 기사에서는 AppSignal을 사용하여 NGINX를 모니터링하고 애플리케이션 성능에 대한 가시성을 확대하는 방법을 설명합니다. 모든 측정항목을 마법처럼 만들기 AppSignal을 사용하면 처리량부터 응답 시간까지 성능 지표를 갖춘 맞춤형 대시보드를 생성할 수 있습니다. 대시보드를 수동으로 생성하는 데는 시간이 걸리며 어떤 측정항목이 실제로
사용자 정의 지표를 설정하면 (로그 라인을 살펴보거나 복잡한 보고 도구를 사용하지 않고도) 필요한 정보에 대한 즉각적인 통찰력을 얻을 수 있는 쉬운 방법입니다. 잠재적인 문제를 신속하게 식별하고 해결하려면 의미 있는 지표를 추적하여 애플리케이션의 중요한 모니터링 데이터를 보완하세요. 이 블로그 게시물에서는 사용자 정의 지표를 설정하고 사용하여 모니터링 사각지대를 제거하는 방법을 보여 드리겠습니다. 애플리케이션의 성능을 더 잘 이해하기 위해 모니터링 도구 제품군과 함께 사용자 정의 지표를 사용할 수 있는 방법을 보여드리겠습니다. 맞