[RubyOnRails Guides] Active Record Query Interface - 1편


• RubyOnRails의 Active Record Query Interface는 데이터베이스에서 데이터를 조회하고, 검색하며, 모델을 반환하는 방법에 대해 설명한다. 이는 Model.find(options)의 특징을 통해 SQL 쿼리를 시작하고, 데이터베이스에서 결과를 검색하며, 모든 결과 행에 대한 적절한 모델의 Ruby Instance를 생성한다.
• 다양한 메서드를 통해 데이터를 조회할 수 있으며, 이에는 기본키(PK) 기반의 id 값으로 조회하는 find, 순서없이 레코드를 검색하는 take, 기본키로 정렬된 첫번째 데이터를 찾는 first, 마지막 데이터를 찾는 last, 일부 조건과 일치하는 첫 번째 레코드를 반환하는 find_by, 모든 레코드를 가져오는 all 등이 있다.
• Rails에서는 데이터를 배치로 분할하여 처리하는 find_each와 find_in_batches 메소드를 제공하며, 이를 통해 전체 컬렉션이 사용 가능한 메모리 양을 초과하는 것을 방지할 수 있다. find_each는 각 레코드의 객체 데이터를 개별적으로 생성하고, find_in_batches는 컬렉션 형태로 모델의 배열을 생성한다.
• Rails에서는 SQL WHERE절과 동일한 방식으로 데이터를 검색할 수 있으며, 이를 위해 배열, key/value hash, 범위 조건, IN 표현식, NOT 표현식, OR 표현식 등 다양한 방법을 제공한다. 이때 SQL Injection 공격에 취약할 수 있으므로 prepared Statement의 parameterized query를 사용해야 한다.

북마크
공유하기
신고하기