Home > Backend Development > πŸ“š[Backend Development] κ³„μΈ΅ν˜• λŒ“κΈ€ λͺ©λ‘ 쑰회 μ‹œ νŽ˜μ΄μ§• 처리 방법

πŸ“š[Backend Development] κ³„μΈ΅ν˜• λŒ“κΈ€ λͺ©λ‘ 쑰회 μ‹œ νŽ˜μ΄μ§• 처리 방법
Backend Ddevelopment

β€œπŸ“š[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κΉŒμ§€ ν•œ λ²ˆμ— ν‘œμ‹œν•  μˆ˜λ„ 있음
  • β€œλ” 보기” λ²„νŠΌμ„ ν™œμš©ν•˜μ—¬ 동적 λ‘œλ”© 방식도 κ³ λ € κ°€λŠ₯.