
고급 ActiveRecord 쿼리
Query interface, where, joins, includes, eager loading, N+1 문제, transactions, locking(optimistic/pessimistic)
28 면접 질문·
Mid-Level
1기본 키로 레코드를 조회하고 찾을 수 없을 때 예외를 발생시키는 ActiveRecord 메서드는 무엇인가요?
1
기본 키로 레코드를 조회하고 찾을 수 없을 때 예외를 발생시키는 ActiveRecord 메서드는 무엇인가요?
답변
find 메서드는 기본 키로 레코드를 조회하며, 레코드가 존재하지 않으면 ActiveRecord::RecordNotFound 예외를 발생시킵니다. 이를 통해 코드가 nil 값으로 계속 진행하는 대신 명시적으로 실패하도록 보장합니다. 예외를 피하고 대신 nil을 반환하려면 find_by(id: value)를 사용하세요.
2ActiveRecord에서 find_by와 where.first의 주요 차이점은 무엇인가요?
2
ActiveRecord에서 find_by와 where.first의 주요 차이점은 무엇인가요?
답변
find_by는 단일 레코드 또는 nil을 직접 반환하는 반면, where.first는 ActiveRecord relation을 반환한 후 first를 호출하여 첫 번째 결과를 가져옵니다. 실제로 find_by는 LIMIT 1로 최적화된 쿼리를 생성하지만, where는 첫 번째 요소를 선택하기 전에 더 많은 데이터를 로드할 수 있습니다.
3ActiveRecord에서 where 메서드에 여러 조건을 전달하려면 어떻게 해야 하나요?
3
ActiveRecord에서 where 메서드에 여러 조건을 전달하려면 어떻게 해야 하나요?
답변
where 메서드는 여러 키를 가진 해시를 받아 AND로 결합될 여러 조건을 지정합니다. 예를 들어, User.where(status: 'active', role: 'admin')는 WHERE status = 'active' AND role = 'admin'을 생성합니다. OR 조건의 경우 or 또는 원시 SQL 쿼리를 사용하세요.
4
ActiveRecord에서 N+1 문제란 무엇인가요?
5
연관을 미리 로드하여 N+1 문제를 해결하려면 어떤 메서드를 사용해야 하나요?
+25 면접 질문
기타 Ruby on Rails 면접 주제
Ruby 기초
Junior
25개 질문Ruby 객체 지향 프로그래밍
Junior
20개 질문Rails 기초
Junior
18개 질문Routing & Controllers
Junior
22개 질문ActiveRecord 기초
Junior
25개 질문Views와 ERB 템플릿
Junior
20개 질문ActiveRecord 연관 관계
Mid-Level
24개 질문Rails 폼
Mid-Level
20개 질문인증과 인가
Mid-Level
22개 질문최신 Asset Pipeline 및 프런트엔드
Mid-Level
18개 질문Rails API 모드
Mid-Level
20개 질문RSpec를 사용한 테스트
Mid-Level
24개 질문ActiveJob & Background Jobs
Mid-Level
20개 질문ActionCable & WebSockets
Mid-Level
18개 질문ActionMailer
Mid-Level
18개 질문ActiveStorage
Mid-Level
20개 질문캐싱 전략
Mid-Level
20개 질문고급 마이그레이션
Mid-Level
20개 질문Rails Engines 및 모듈식 앱
Senior
18개 질문성능 최적화
Senior
26개 질문Rails 디자인 패턴
Senior
22개 질문Ruby 메타프로그래밍
Senior
20개 질문Rails 보안
Senior
22개 질문Rails에서의 GraphQL
Senior
20개 질문배포 및 프로덕션
Senior
20개 질문Monitoring & Logging
Senior
20개 질문Rails 업그레이드 전략
Senior
18개 질문