Home
>
Backend Development
>
π[Backend Development] Path Enumeration λ°©μμμ λκΈμ κ²½λ‘(Path) κ²°μ κ³Όμ .
Backend Ddevelopment
βπ[Backend Development] Path Enumeration λ°©μμμ λκΈμ κ²½λ‘(Path) κ²°μ κ³Όμ .β
π1οΈβ£ μ κ· λκΈμ κ²½λ‘λ₯Ό κ²°μ νλ κ³Όμ
- Path Enumeration(κ²½λ‘ μ΄κ±°) λ°©μμ μ¬μ©ν λ, μλ‘μ΄ λκΈμ΄ μΆκ°λ κ²½μ° ν΄λΉ λκΈμ pathλ₯Ό μ΄λ»κ² κ²°μ ν κ²μΈμ§κ° μ€μν©λλ€.
- μ΄ κΈμμλ μ΄λ―Έ μ‘΄μ¬νλ κ³μΈ΅ν λκΈ νΈλ¦¬μμ μλ‘μ΄ λκΈμ΄ μΆκ°λ λ, pathλ₯Ό μ΄λ»κ² μμ±νλμ§μ λν΄ μ€λͺ
ν©λλ€.
ποΈ2οΈβ£ κΈ°μ‘΄ λκΈ κ΅¬μ‘° νμΈ
β
κΈ°μ‘΄ λκΈ νΈλ¦¬

- μ΄κΈ° λκΈ κ΅¬μ‘°λ μμ κ°μ΅λλ€.
- μ΅μμ λκΈ 00a0z μλμ μ¬λ¬ κ°μ νμ λκΈμ΄ μ‘΄μ¬ν©λλ€.
- κ° λκΈμ path κ³μΈ΅ ꡬ쑰λ₯Ό λ°λΌ λΆλͺ¨ λκΈμ pathλ₯Ό μμλ°μΌλ©°, μλ‘μ΄ λκΈμ΄ μΆκ°λ λλ§λ€ μ«μκ° μ¦κ°νλ λ°©μμΌλ‘ μ λ ¬λ©λλ€.
- κ°μ₯ μ΅κ·Όμ νμ λκΈμ 00a0z 00002μ΄λ©°, 00a0z 00002μ νμ λκΈλ‘ 00a0z 00002 00000μ΄ μ‘΄μ¬ν©λλ€.
ποΈ3οΈβ£ μ κ· λκΈ μΆκ° μμ².
β
μλ‘μ΄ λκΈ μμ²

- μ΄λ€ μ¬μ©μκ° 00a0z λκΈμ νμμ μλ‘μ΄ λκΈμ μμ±νλ €κ³ ν©λλ€.
- νμ§λ§, νμ¬ 00a0zμ νμ λκΈλ€μ μ΄λ―Έ μ‘΄μ¬νκ³ μμΌλ―λ‘, μλ‘μ΄ λκΈμ΄ λ€μ΄κ° μ¬λ°λ₯Έ pathλ₯Ό κ²°μ ν΄μΌ ν©λλ€.
ποΈ4οΈβ£ νμ¬ μ‘΄μ¬νλ νμ λκΈ μ€ κ°μ₯ ν° path μ°ΎκΈ°
β
childrenTopPath μ°ΎκΈ°

- μλ‘μ΄ λκΈμ μΆκ°ν λλ, νμ¬ μ‘΄μ¬νλ νμ λκΈ μ€ κ°μ₯ ν° path(childrenTopPath)λ₯Ό μ°Ύμμ κ·Έ κ°μ +1μ νμ¬ μλ‘μ΄ λκΈμ pathλ₯Ό μμ±ν©λλ€.
- νμ¬ 00a0zμ νμ λκΈ μ€μμ κ°μ₯ ν° pathλ 00a0z 00002μ
λλ€.
- λ°λΌμ, μλ‘μ΄ λκΈμ pathλ 00a0z 00003μ΄ λ©λλ€.
ποΈ5οΈβ£ λͺ¨λ μμ λκΈμ κ³ λ €ν descendantsTopPath μ°ΎκΈ°
- νμ§λ§, λ¨μν childrenTopPathλ§ κ³ λ €νλ©΄ μλ©λλ€. μμ λκΈμ΄ μλ κ²½μ°, κ°μ₯ κΉμ depthμ μλ μμ λκΈκΉμ§ κ³ λ €νμ¬ pathλ₯Ό κ²°μ ν΄μΌ ν©λλ€.
- descendantsTopPathλ λΆλͺ¨ λκΈμ ν¬ν¨ν λͺ¨λ μμ λκΈ μ€ κ°μ₯ ν° pathλ₯Ό μλ―Έν©λλ€.
- μ¦, 00a0zμ λͺ¨λ νμ λκΈ μ€ κ°μ₯ κΉμ depthλ₯Ό κ°μ§λ©΄μλ κ°μ₯ ν° pathλ₯Ό μ°Ύμ΅λλ€.
ποΈ6οΈβ£ descendantsTopPathμμ μ κ· λκΈμ depthμ λ§λ childrenTopPath κ³μ°
β
descendantsTopPathλ₯Ό κΈ°λ°μΌλ‘ path μμ±

- κΈ°μ‘΄ λκΈ μ€ κ°μ₯ κΉμ depthλ₯Ό κ°μ§λ descendantsTopPathλ₯Ό μ°Ύκ³ , μ κ· λκΈμ΄ λ€μ΄κ° depthλ§νΌμ pathλ₯Ό λ¨κΈ°κ³ λλ¨Έμ§λ μλΌλ
λλ€.
- descendantsTopPath = 00a0z 00002 00000
- νμ§λ§ μ κ· λκΈμ΄ λ€μ΄κ° depthλ 2μ΄λ―λ‘, (depth * 5)λ§νΌμ λ¬Έμλ§ λ¨κΉλλ€.
- κ²°κ³Όμ μΌλ‘ childrenTopPath = 00a0z 00002κ° λ©λλ€.
ποΈ7οΈβ£ μ΅μ’
μ μΌλ‘ childrenTopPathλ₯Ό μ°Ύμ μ κ· λκΈμ path μμ±
β
μ΅μ’
path κ²°μ
- 1. parentPathλ₯Ό κ°μ§λ λͺ¨λ μμ λκΈμ μ‘°ν
- 2. κ°μ₯ ν° descendantsTopPathλ₯Ό μ°Ύμ
- 3. μ κ· λκΈμ΄ λ€μ΄κ° depthλ§νΌ pathλ₯Ό λ¨κΈ°κ³ μλ¦ β childrenTopPath μμ±
- 4. λ§μ§λ§ μ«μμ +1μ νμ¬ μ΅μ’
path κ²°μ
- π κ²°κ³Όμ μΌλ‘, μλ‘μ΄ λκΈμ pathλ 00a0z 00003μ΄ λ©λλ€.
π8οΈβ£ κ²°λ‘ .
- β
Path Enumeration λ°©μμ μ¬μ©νλ©΄, λκΈμ κ³μΈ΅ ꡬ쑰λ₯Ό λͺ
ννκ² μ μ§νλ©΄μλ μ λ ¬ λ° μ‘°νλ₯Ό λΉ λ₯΄κ² μνν μ μμ΅λλ€.
- β
μ κ· λκΈμ΄ μΆκ°λ λλ, νμ¬ μ‘΄μ¬νλ νμ λκΈ μ€ κ°μ₯ ν° path(descendantsTopPath)λ₯Ό μ°Ύμμ μλ‘μ΄ pathλ₯Ό κ²°μ ν©λλ€.
- β
μ΄ λ°©μμ 무ν Depth λκΈμμλ μ λ ¬ μμλ₯Ό μ μ§νλ©΄μ λΉ λ₯΄κ² λκΈμ μΆκ°ν μ μλλ‘ λμμ€λλ€.