βπ[Backend Development] κ³μΈ΅ν λκΈ λͺ©λ‘ μ‘°ν μ νμ΄μ§ μ²λ¦¬ λ°©λ²β
π‘ κ°μ :
- κ³μΈ΅λ³ μ€λλ μμΌλ‘ νμ΄μ§λ¨.
- 1νμ΄μ§ λΉ 2κ°μ λκΈμ 보μ¬μ€.
π μ΄ κ°μ μ΄ λ§λμ§ κ²ν νκ³ , μ΄λ»κ² νμ΄μ§μ΄ μ΄λ£¨μ΄μ§λμ§ νμΈν΄λ΄ μλ€.
β 1οΈβ£ κΈ°λ³Έμ μΈ κ³μΈ΅ν μ λ ¬ λ°©μ.
π κ³μΈ΅ν λκΈ μ‘°ν μ μΌλ°μ μΈ μ λ ¬ κ·μΉ.
- 1. μ΅μμ λκΈ(λΆλͺ¨ λκΈ)μ΄ λ¨Όμ μ λ ¬λ¨ (μ€λλ μ).
- 2. κ° λΆλͺ¨ λκΈμ νμ λκΈ(μμ λκΈ)μ΄ μ λ ¬λ¨ (μ€λλ μ).
- 3. κ°μ κ³μΈ΅ λ΄μμλ μ€λλ μμΌλ‘ μ λ ¬λ¨.
π κ³μΈ΅ν μ λ ¬λ λͺ©λ‘.
β 2οΈβ£ 1νμ΄μ§ λΉ 2κ°μ λκΈμ 보μ¬μ€ κ²½μ°.
- κ³μΈ΅ν ꡬ쑰μμλ λ¨μ LIMIT & OFFSETμ μ¬μ©νλ©΄ λ°μ΄ν°κ° λμ΄μ§ μ μμ.
- νΈλ¦¬ ꡬ쑰λ₯Ό μ μ§νλ©΄μ μ λ ¬λ μμλ‘ νμ΄μ§ν΄μΌ ν¨.
π μ 체 νμ΄μ§ μ²λ¦¬ λͺ¨μ΅.
π 1νμ΄μ§ (첫 2κ° λκΈ)
- μ΅μμ λκΈ 1κ°(λκΈ 1) + κ·Έμ λν νμ λκΈ(λκΈ 2)μ ν¬ν¨
- νμ λκΈμ΄ μλ κ²½μ°, λ€μ λκΈμ ν¬ν¨ν μ§ μ¬λΆλ νμ΄μ§ λ‘μ§μ λ°λΌ κ²°μ λ¨.
π 2νμ΄μ§ (λ€μ 2κ° λκΈ)
- 첫 λ²μ§Έ νμ΄μ§μμ λκΈ 1 β λκΈ 2κΉμ§ κ°μ ΈμμΌλ―λ‘, μ΄μ λκΈ 2μ νμ λκΈλΆν° νμ.
- μ¦, λκΈ 3κ³Ό λκΈ 5κ° λ€μ νμ΄μ§μ λ ΈμΆλ¨.
π 3νμ΄μ§ (λ€μ 2κ° λκΈ)
- λκΈ 1 νΈλ¦¬κ° λλ¬μΌλ―λ‘, μ΄μ λκΈ 4λ₯Ό νμ.
- λκΈ 4μ νμ λκΈμΈ λκΈ 6λ κ°μ΄ νμλ¨.
β 3οΈβ£ μ 리
νμ΄μ§ λ²νΈ | μΆλ ₯λλ λκΈ λͺ©λ‘ |
---|---|
1 νμ΄μ§ | λκΈ 1, λκΈ 2 |
2 νμ΄μ§ | λκΈ 3, λκΈ 5 |
3 νμ΄μ§ | λκΈ 4, λκΈ 6 |
- βοΈ μ¦, μ΅μμ λκΈμ κΈ°μ€μΌλ‘ μ λ ¬νλ, κ³μΈ΅ ꡬ쑰λ₯Ό μ μ§νλ©΄μ νμ΄μ§μ΄ μ΄λ£¨μ΄μ§.
- βοΈ κ° λκΈμ νμ λκΈμ 보μ¬μ€ λ, λΆλͺ¨ λκΈμ΄ ν¬ν¨λ μνμμ νμ λκΈμ΄ μμ°¨μ μΌλ‘ μ λ ¬λ¨.
β 4οΈβ£ μΆκ°μ μΈ κ³ λ € μ¬ν.
β νμ΄μ§ μ±λ₯μ κ³ λ €ν SQL 쿼리.
- κ³μΈ΅ν λκΈ νμ΄μ§μ μν CTE(Common Table Expression) λλ Recursive Query νμ© κ°λ₯.
-
ORDER BY parent_id, created_at ASC
μ κ°μ μ λ ¬ λ°©μ μ μ©.
β UIμμμ νμ λ°©μ
- 첫 λ²μ§Έ νμ΄μ§μμ λκΈ 1 β λκΈ 2κΉμ§λ§ νμν μ μκ³ , 첫 λ²μ§Έ νμ΄μ§μμ λκΈ 1 β λκΈ 2 β λκΈ 3 β λκΈ 5κΉμ§ ν λ²μ νμν μλ μμ
- βλ 보기β λ²νΌμ νμ©νμ¬ λμ λ‘λ© λ°©μλ κ³ λ € κ°λ₯.