Rust

Database Integration

SQLx, Diesel, async 데이터베이스 액세스, connection pooling, 마이그레이션, query builder, ORM 패턴

20 면접 질문·
Senior
1

쿼리 검증 측면에서 SQLx와 Diesel의 주요 차이점은 무엇입니까?

답변

SQLx는 빌드 과정에서 실제 데이터베이스에 연결하여 컴파일 타임에 쿼리를 검증합니다. Diesel은 Rust DSL(Domain-Specific Language)을 사용하여 컴파일 타임에 데이터베이스 연결 없이 type-safe한 쿼리를 구성합니다. 두 접근 방식 모두 타입 안전성을 보장하지만, SQLx는 검증된 raw SQL을 작성할 수 있게 해주는 반면 Diesel은 자체 Rust API 사용을 요구합니다.

2

SQLx에서 쿼리를 실행하고 결과를 Rust struct에 자동으로 매핑할 수 있는 매크로는 무엇입니까?

답변

SQLx의 query_as! 매크로는 SQL 쿼리를 실행하고 결과를 지정된 Rust struct에 자동으로 매핑합니다. 이 매크로는 반환된 컬럼이 struct 필드와 일치하는지 컴파일 타임에 검증하여 타입 안전성을 보장합니다. query! 매크로는 익명 타입을 반환하고, query_scalar!는 단일 값을 추출하는 데 사용됩니다.

3

async PostgreSQL 애플리케이션을 위해 SQLx로 connection pool을 구성하는 방법은 무엇입니까?

답변

SQLx는 PgPoolOptions를 사용하여 비동기 PostgreSQL connection pool을 구성합니다. max_connections 메서드는 최대 연결 수를 정의하고, connect는 데이터베이스 URL로부터 풀을 생성합니다. 풀은 연결의 획득과 해제를 자동으로 관리하며, 구성 가능한 timeout과 retry를 지원합니다.

4

Diesel에서 type-safe한 CRUD 작업을 활성화하기 위해 테이블 스키마를 정의하는 방법은 무엇입니까?

5

테이블에 데이터를 삽입하려면 struct는 어떤 Diesel trait를 구현해야 합니까?

+17 면접 질문

다음 면접을 위해 Rust을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기