Database Layer Logic μ κ°λ₯Ό ν΅ν Flutter λ€νΈμν¬ μ€λ²ν€λ μ΅μ ν
π How to Create and Use RPC Functions in Supabase with Flutter (Step-by-Step Guide)
AI μμ½
Context
ν΄λΌμ΄μΈνΈ μ¬μ΄λμμ 볡μ‘ν νν°λ§ λ° λ°μ΄ν° κ°κ³΅ λ‘μ§μ μνν¨μ λ°λ₯Έ λΉν¨μ¨μ μν€ν μ² λ°μ. λ€λμ Raw Data μ μ‘μΌλ‘ μΈν λ€νΈμν¬ λΆν μ¦κ° λ° λΉμ¦λμ€ λ‘μ§ λΆμ°μΌλ‘ μΈν μ μ§λ³΄μμ± μ ν μ§λ©΄.
Technical Solution
- SQL Function κΈ°λ°μ RPC(Remote Procedure Call) μΈν°νμ΄μ€λ₯Ό ν΅ν λΉμ¦λμ€ λ‘μ§μ Database Layer μ΄μ
- Client-side Filteringμ μ κ±°νκ³ Server-sideμμ μ λ°νκ² κ°κ³΅λ κ²°κ³Όμ λ§ λ°ννλ ꡬ쑰 μ€κ³
- Supabase Flutter SDKμ
.rpc()λ©μλλ₯Ό νμ©νμ¬ SQL ν¨μμ μ± μΈν°νμ΄μ€ κ°μ μ§μ μ μΈ λ°μΈλ© ꡬν - Row Level Security(RLS) μ μ± μ μ©μ ν΅ν DB μμ€μ λ°μ΄ν° μ κ·Ό μ μ΄ λ° λ³΄μ κ³μΈ΅ κ°ν
- λ€μ€ API νΈμΆμ λ¨μΌ RPC νΈμΆλ‘ ν΅ν©νμ¬ Network Round-trip νμ μ΅μν
μ€μ² ν¬μΈνΈ
1. SQL ν¨μ μ μ μ νλΌλ―Έν° λͺ μΉκ³Ό Flutter SDKμ params ν€ κ°μ΄ μ νν μΌμΉνλμ§ κ²μ¦
2. RLS(Row Level Security) μ€μ μ¬λΆλ₯Ό νμΈνμ¬ ν¨μ μ€ν κΆν λ° λ°μ΄ν° μ κ·Ό μ μ± μ립
3. 볡μ‘ν Joinμ΄λ μ§κ³ μ°μ°μ΄ νμν κ²½μ° Client-side κ°κ³΅ λμ RPC ν¨μ λμ κ²ν
4. λκ·λͺ¨ λ°μ΄ν°μ λμ RPC ν¨μ μ€ν μ μ±λ₯ μ ν λ°©μ§λ₯Ό μν μ μ ν Index μ€μ νμΈ