빠른 참조

Rails 팁과 트릭 치트시트

Rails 성능 향상 팁, 콘솔 디버깅 단축키, 데이터베이스 쿼리 최적화 및 개발 생산성 빠른 참조 가이드.

· 게시일

일반적인 Rails 엔지니어링을 위한 필수 생산성 단축키, 메모리 최적화 패턴 및 디버깅 트릭 모음.

쿼리 및 메모리 최적화

1. pluck 대 map

pluck은 메모리에 ActiveRecord 모델 객체를 인스턴스화하지 않고 데이터베이스 컬럼을 직접 쿼리합니다:

# 느림: 10,000개의 User 객체를 메모리에 인스턴스화
User.all.map(&:email)

# 빠름: email 컬럼만 문자열 배열로 직접 가져옴
User.pluck(:email)

2. find_each를 통한 배치 처리

거대한 테이블을 한 번에 메모리에 로드하는 것을 방지합니다:

# 1,000개 레코드 단위로 배치 로드
User.find_each(batch_size: 1000) do |user|
  user.sync_with_crm
end

콘솔 생산성 단축키

# 마지막으로 평가된 표현식의 결과에 접근
user = User.find(1)
_ # user 객체 반환

# 콘솔에서 실행 시간 벤치마크
Benchmark.ms { 1000.times { User.count } }

# 콘솔 재시작 없이 Rails 애플리케이션 코드 다시 로드
reload!

타임스탬프 갱신 (touch)

하위 연관 관계가 업데이트될 때 상위 모델의 updated_at 타임스탬프를 갱신:

class Comment < ApplicationRecord
  belongs_to :article, touch: true
end

참고 자료

관련 주제