// ❌ 문제 1: 목록 조회 - 너무 많은 데이터const users = await db.table("users").selectAll();// → 모든 컬럼을 가져옴 (password, bio, 불필요한 정보 포함)// ❌ 문제 2: 상세 조회 - 관계 데이터 로딩 복잡const user = await db.table("users").where("id", 1).first();const employee = await db.table("employees").where("user_id", user.id).first();const department = await db.table("departments").where("id", employee.department_id).first();// → N+1 문제, 코드 중복// ❌ 문제 3: 타입 안전성 부족type UserList = { id: number; username: string; role: string;}; // 수동으로 타입 정의 필요
// ⚠️ Raw Puri (특수한 경우만)const user = await UserModel.getPuri("r") .table("users") .join("employees", "users.id", "employees.user_id") .leftJoin("departments", "employees.department_id", "departments.id") .select({ id: "users.id", username: "users.username", deptName: "departments.name", }) .where("users.id", 1) .first();// - 타입 추론 복잡// - 코드 중복// - Subset으로 표현 안 되는 특수 쿼리만 사용