π4μ£Όμ°¨ λͺ©ν
- 1, 2, 3μ£Όμ°¨μ νμ΅ν λͺ¨λ κ²λ€μ μ½λμ λ Ήμ¬λ΄μ μμ¬μμ΄ λ¨μ§ μλλ‘ μ΅μ μ λ€νκΈ°!
π4μ£Όμ°¨ λͺ©ν
β μ½λμ μ λ¬Έμ λλ€.
β μ΄λ €μΈ μλ‘ λΉλ¬λ ν μ€νΈ μ½λ
μ΄λ² μ£Όμ°¨λ <ꡬν → ν μ€νΈμ½λ → 컀λ°> μ μ§ν€λ©΄μ ν μ€νΈ μ½λμ μ₯μ μΈ μ½λμ λν νΌλλ°±μ 빨리 λ°κ³ μ νλ€.
κ·Έλ κ² λ€μκ³Ό κ°μ κ²λ€μ λλ¦¬κ² λμλ€.
- λλ€μμΌλ‘ μμΈλ₯Ό ν°λ¨λ¦¬κ±°λ map μ μννλ λλ€μμ μ¬λ°λ₯΄κ² μ¬μ©ν μ μμλ μ΄λ©΄μλ μ΄λ‘λΆμ΄ λ€μ΄μ¬ λκΉμ§ ν μ€νΈ μ½λλ₯Ό λλ €λ΄€κΈ° λλ¬Έμ΄μλ€.
- ν μ€νΈ μ½λλ₯Ό μ²μ νμ΅νλ 2μ£Όμ°¨μμ μκ²λ "μ½λλ₯Ό μμ±νλ©΄μ 'μ΄λ»κ² ν μ€νΈλ₯Ό ν κ²μΈκ°?' λ₯Ό μλ¬ΈνκΈ°" λ₯Ό μ§ν€κ² λμλ€. ꡬν μ μ μ΄λ»κ² ν μ€νΈλ₯Ό μμ±ν μ§ λ―Έλ¦¬ μκ°νκ² λμκ³ , μ΄λ ν μ€νΈ μ½λλ₯Ό μμ±νκΈ° μ΄λ €μ΄ κΈ°λ₯μ λ μμ λ¨μμ κΈ°λ₯μΌλ‘ μΈλΆνν μ μμκ³ , μ΄λ μ΄μμλ READMEλ‘λ μ΄μ΄μ‘λ€.
- μλͺ»λ μΌμ΄μ€λ₯Ό κ²μ¬νλ ν μ€νΈμ½λλ₯Ό λ°κ²¬ν΄μ μ¬λ°λ₯΄κ² μμ ν μ μμλ€.
- ν¨μλΆλ¦¬μ ν μ€νΈμ½λμ μ½λκ° λ§μμ§μλ‘ νλμ ν μ€νΈκ° μ΄λ€ κΈ°λ₯μ ν μ€νΈνλμ§ κ΅¬λΆνκΈ°κ° μ΄λ €μμ‘λ€. μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°ν μ μκ² λ¦¬ν©ν λ§μ μλ ꡬν λ‘μ§κ³Ό ν μ€νΈ μ½λμκ² μ μ ν μ΄λ¦μ λΆμ¬ν μ μλλ‘ μΆ©λΆν μκ°μ κ°κ² λμλ€.
- μꡬμ¬νμ μλͺ» μ΄ν΄ν΄μ μ΄ λ©λ΄μ κ°μλ₯Ό ꡬνλ κΈ°λ₯μμ λμ νΈ λ©λ΄λ§ ꡬνλ κΈ°λ₯μΌλ‘ λ³κ²½ν΄μΌνλ€. μ΄ λ, 미리 μμ±νλ ν μ€νΈ μ½λλ€ λλΆμ μ¬μ¬μ©ν μ μλ ν¨μλ₯Ό ꡬλ³ν΄λΌ μ μμμ΅λλ€.
- μꡬμ¬νμ μλͺ» μ΄ν΄νλ λ°λμ λ―Έμ μ μ§ννλ©° νμμλ νλλ₯Ό ꡬννμλ€. μλ₯Ό λ€λ©΄ Orderκ°μ²΄μλ Map<String, Integer> μ μλ£κ΅¬μ‘° λΏλ§ μλλΌ Map<MenuBoard, Integer> λ μμλ λ§νΌ μ€μ€λ‘ ꡬν λμ΄λλ₯Ό μ¬λ €λ²λ Έμλ€..γ κ·Έλλ, ν μ€νΈ μ½λλ₯Ό μμ±ν λλΆμ ꡬνν μ½λλ₯Ό μ λ’°νλ©° λ―Έμ μ μννκ² μ§νν μ μμλ€.
β κ°μ²΄ λΆλ¦¬ : ν μ€νΈ μ½λμλ μν₯μ λΌμΉλ€
μ΄λ² 4μ£Όμ°¨λ₯Ό ν΅ν΄ κ°μ²΄ λΆλ¦¬λ λͺ νν ν μ€νΈ μ½λλ₯Ό μμ±νλλ°μλ λ§€μ° μ μ©νλ¨ μ¬μ€μ μκ² λμλ€.
μ¬μ©μ μ λ ₯ (ex.μ΄μ½μΌμ΄ν¬-3,μ λ‘μ½λΌ-4) λ₯Ό μ΄μ©ν΄ μ£Όλ¬Έμ μμ±νλ Order κ°μ²΄μ μμ±μμλ - μ , λ₯Ό μ΄μ©ν΄ λ©λ΄μ κ°μλ₯Ό λλκ³ , λλ κ°λ€μ΄ μ€λ₯λ μΌμΌν€μ§ μλμ§ κ²μ¦νκ³ , νμ λ λ³ννλ λ± λ³μλ³ κΈ°λ₯μ΄ λ€ μμλ€.
μ΄ κΈ°λ₯λ€μ ν μ€νΈ νλ μ½λμμλ @DisplayNameμ μ΄μ©ν΄μ μ΄λ€ κΈ°λ₯μ ν μ€νΈ νλμ§λ§ λνλΌ λΏ,
@DisplayNameμ΄ μλ€λ©΄ μ΄λ€ κΈ°λ₯μ ν μ€νΈ νλμ§ μ μκ° μμλ€.
κ·Έλ¬λ, Order(λ©λ΄μ κ°μλ₯Ό νλλ‘ κ°κ³ μμ)λ₯Ό κ°μ²΄λΆλ¦¬νμ OrderValidator(μ¬μ©μ μ λ ₯μ κ²μ¦), OrderGenerator( Order κ°μ²΄λ₯Ό μμ±), OrderCalculator(Stringνμ μμ MapμΌλ‘ λ³ν) λ‘ κΈ°λ₯μ λ°λΌ λΆλ¦¬λμλ€.
κ·Έλ¬μ private λ©μλκ° public μΌλ‘ λ°λκ² λμκ³ , μ΄λ ν μ€νΈ μ½λμμ νΈμΆν μκ° μμλ€.
μ΄λ¬ν κΉ¨λ¬μμ λ§μ§λ§ λ μ μ¬λ¬ κ°μ ν μ€νΈλ μΆκ°νκ³ , ν μ€νΈ νμ§ μλ κΈ°λ₯λ€μ μ°Ύλ μ μ ν μ¬λ―Έλ₯Ό μ£Όμλ€.
β μ€λ³΅μ κ±°λ₯Ό μν μΆμν΄λμ€ μ¬μ©
ν¬λ¦¬μ€λ§μ€ λλ°μ΄, νμΌ, μ£Όλ§, νΉλ³ ν μΈλ€μ μ£Όλ¬Έ κΈμ‘μ΄ 10000μ μ΄μμΌ λλ§ ν μΈλλ 쑰건μ κ°κ³ μμλ€.
곡ν΅λ 쑰건μ κ°μ§κ³ μμκΈ° λλ¬Έμ μ½λμ μ€λ³΅μ΄ μκ²Όκ³ , λλ μ΄ μ€λ³΅μ μμ κ³ μΆμλ€.
λΏλ§ μλλΌ ννλ΄μμ λ΄λΉνλ ν λ©μλμκ² μ λ¬λλ 맀κ°λ³μκ° 6κ°μλλ°, μ΄λ₯Ό μ€μ΄κ³ μΆμλ€.
κ·Έλμ, μ€λΈμ νΈ μ± μ μ½μΌλ©° λ΅μ μ°Ύκ³ μ νκ³ , μΆμν΄λμ€μ μΈν°νμ΄μ€λ₯Ό μ΄μ©νλ λ°©λ²μ΄ μλ€λ κ²μ μκ² λμλ€.
μ΄ 2κ°μ§ λ°©λ²μ μ΄μ©νλ©΄ μ μ°νκ³ , μ½κ² μ¬μ¬μ© νκ³ , μΆκ° μꡬμ¬νμ΄ μμ λ, νμ₯μ΄ κ°λ₯ν κ°μ²΄ μ§ν₯ μ€κ³λ₯Ό ν μ μλ€λ κ²μ΄μλ€. λλ μ€κ³ν λ, ν μΈννλ€μ΄ μ΄λ²€νΈ κΈ°κ°μ€μ λ³λλ κ°λ₯μ±μ΄ μλ€κ³ μκ°νλ€.
κ·Έ μ΄μ λ 12μμ μ΄λ²€νΈ λͺ©νλ 5λ μ΄λ κΈ°κ°μμ μ΅κ³ μ£Όλ¬Έ κΈμ‘μ λ¬μ±νκ³ , 12μμ μ°Έμ¬ κ³ κ°μ 5%κ° 1μμλ μ°Έμ¬νλλ‘ νλκ²μ΄μλ€.
μ΄ λͺ©νλ₯Ό λ¬μ±νκΈ° μν΄μ μ΄λ²€νΈ κΈ°κ° μ€μ ν μΈννλ€μ λ³λ μν¬ κ°λ₯μ±μ΄ μλ€κ³ μκ°νκ³ , ν μΈ ννλ€μ λ³λμμΌμΌ νλμ§μ λν΄ κΈ°μ€μ μΈμΈ μ μλλ‘ μλμ κ°μ νλλ₯Ό μΆκ°νμλ€.
μ¦, λλ νμ₯μ΄ κ°λ₯ν μ€κ³λ₯Ό νμλ€.
λλ μΈν°νμ΄μ€μ μΆμν΄λμ€ μ€ μΆμν΄λμ€λ₯Ό λ€μκ³Ό κ°μ μ΄μ λ‘ μ ννκ³ , μ΄ κΈ(μΆμν΄λμ€ vs μΈν°νμ΄μ€)μ λ§μ λμμ λ°μλ€.
1. μ€λ³΅λ©€λ²ν΅ν©
- ν μΈμ‘°κ±΄λ€μ ν μΈννμ΄λΌλ λ΄μ(κΈμ‘)μ μΆλ ₯νκΈ° μν΄ ν¬ν¨νκ³ μμ΄μΌ νλ€.
2. μλ―Έμ μΈ κ΄κ³
- ν΄λμ€μ μλ―Έμλ μ°κ΄κ΄κ³λ₯Ό ꡬμΆν λ, μ¦ λ¨μ΄ κ·Έ μ체μ λ Όλ¦¬μ±κ³Ό μλ―Έμ±μ΄ μλ μ°κ΄κ΄κ³μ΄λ©΄ μΆμν΄λμ€λ₯Ό μ¬μ©νλ€. νΉλ³ν μΈ, νμΌν μΈ,μ£Όλ§ν μΈ, 보ν΅ν μΈμ "λ μ§μ λν ν μΈ"μ΄λΌλ 곡ν΅λ λ Όλ¦¬μ±κ³Ό μλ―Έμ±μ΄ μ°κ΄μλ€κ³ μκ°νλ€.
β 3μ£Όμ°¨ νΌλλ°± μ μ©
[@ParameterizedTest νμ΅]
4μ£Όμ°¨μμλ 3μ£Όμ°¨ νΌλλ°±μμ ν μ€νΈ μ½λλ μ½λμ΄λ νλΌλ―Έν°λ§ λ°λ³΅λλ κ²½μ°λ μλ μ½λ μ²λΌ ν μ€νΈ ν μ μλ€κ³ νλ€.
κ·Έλμ λλ Parameterized, ValueSource, CsvSourceλ₯Ό μ¬μ©νκΈ° μν΄ μ΄ κΈμ κ³μ 보며 μ¬μ©λ²μ μ΅νμ μ μ©μμΌ°λ€.
[κ·Έ μΈ]
- νλμ μλ₯Ό μ€μ΄κ³ μ λ Έλ ₯νλ€.
- κ°μ²΄λ κ°μ²΄μ€λ½κ² μ¬μ©νκΈ° μν΄ View μμ λλ©μΈμ κ°μ κ°μ Έμ¬ λ λΉΌκ³ λ get μ μ¬μ©νμ§ μκ³ , κ°μ²΄μκ² λ©μμ§λ₯Ό 보λλ€!
- get μ μν΄ κ°μ΄ κΊΌλ΄μ§λ λ³μλ€μ final ν€μλλ₯Ό μ΄μ©ν΄ κ°μ λ³μ λ§μκ³ , 2μ£Όμ°¨μ 미리 μκ² λμλ λΆλ³μ»¬λ μ λ μ΄μ©ν΄μ κ°μ λ³κ²½μ λ§μ보μλ€!
πνλ¬ κ°μ ν리μ½μ€λ₯Ό λ§μΉλ©° : μ£Όκ°μ λ Έλ ₯λ€μ΄ λͺ¨μ¬ λ§λ€μ΄λΈ μ±μ₯
λ―Έμ μ μ§ννλ λ λ€μ 볡기νλ©° μ§λ νλ¬μ λλμ 보μλ€.
νλ‘μ νΈ κ²½νλ μκ³ , λ°±μ€μ΄λ νλ‘κ·Έλλ¨Έμ€μμλ§ λ¬Έμ λ₯Ό μ νλ λ΄κ² ν리μ½μ€ λ―Έμ μ€ μ¬μ΄ λ―Έμ μ λ¨ νλλ μμλ€.
κ°μ²΄μ§ν₯? MVC? ν μ€νΈ μ½λ? κΉ? README? λͺ¨λ κ²μ΄ μ²μμ΄μλ€. λΏλ§ μλλΌ λ§€μ£Όμ λͺ©νμ νΌλλ°±λ μ²μμ΄μλ€.
κ·Έλ μ§λ§, ν리μ½μ€μμ λ°°μ΄ λͺ¨λ κ²μ 체ννκ³ μΆμλ€. μ½λμ λ€ μ μ©νκ³ μΆμλ€.
1,2,3μ£Όμ°¨λ§λ€ λ°°μ΄ κ²μ μμ² λ§μμ§λ§ λͺ¨λ κ²μ 체ννμ§ λͺ»ν΄ νμ μμ¬μμ΄ λ¨μμλ€.
맀 μ£Όλ§λ€ μ΅μ μ λ€νμμλ μμ¬μμ΄ λ¨μ ν리μ½μ€λ 체ννμ§ λͺ»νλλ° λ³Έ μ½μ€ κ°λλΌλ μ ν μ μμκΉλ μκ°λ νκ² λμλ€.
κ·Έλμ, 4μ£Όμ°¨ λͺ©νλ₯Ό μ΄λ€ μμ¬μλ λ¨κΈ°μ§ μλ κ²μΌλ‘ μ€μ νμλ€.
κ·Έλ κ² 4μ£Όμ°¨λ μ΅μ μ λ€ νκ³ , λ―Έμ μ μ μΆνλ©΄μ λλ κ²μ κ·Έ λμμ λ Έλ ₯λ€μ΄ μ ν νλμ§ μμμμ λκΌλ€.
μ λ§ κ·Έ λμ νλ λ Έλ ₯μ λν΄ λ³΄μλ°λ κΈ°λΆμ΄ λ€μ΄ λ무λ무 λΏλ―νλ€.
[첫 λ²μ§Έ 보μ]
1μ£Όμ°¨μ λμ μ½λλ κ°μ²΄μλ μνκ° μκ³ , λͺ¨λ λ©μλλ staticμ΄μλ€. μμΈμ μ°Ύκ³ μ 4μΌμ ν¬μνκ³ , μ΄ λμ κ°μ²΄λΌλ μ‘΄μ¬μ μΉν΄μ§ μ μμλ€. κ°μ²΄λ λ©μμ§λ₯Ό ν΅ν΄ νλ ₯νκ³ , λ©μμ§μ μλ΅νκΈ° μν΄ μ€μ€λ‘ μΌμ νλ μ‘΄μ¬μμ΄λ κ²μ κΈ°μ΅ νκ² λμλ€.
μ΄ κΈ°μ΅μ 3μ£Όμ°¨μ μΌκΈμ»¬λ μ μ μ΄ν΄νκ³ , κ°μ²΄μμ λ λ€λ₯Έ κ°μ²΄κ° ν¬ν¨λμ΄μλ κ°μ²΄λ₯Ό μ΄ν΄νλλ° ν° νμ΄ λμλ€.
λν, μ΄κ²μ κΉ¨λ¬μ λκΉμ§ ꡬννλ μ½λλ€μ 3λ²μ΄λ λ€μμλ κ²½νμ κ°μ²΄λ₯Ό λ€λ£° μ μλ€λ(μμ ν μ μλ€λ) μμ κ°μ΄ λμλ€.
μ΄ μμ κ°μ 4μ£Όμ°¨μμ κ°μ²΄λ₯Ό λΆλ¦¬νλλ° λμμ΄λμλ€.
1μ£Όμ°¨μλ static λ©μλλ₯Ό μ§μ°λ€κ° μλ¬λ₯Ό λ§λμ λ―Έμ μ μ€ν¨ν κ²κ°μ λλ €μ λλ¬Έμ κΈ°μ‘΄ μ½λλ 보쑴νκ³ λ€λ₯Έ κ³³μ μ²μλΆν° λ€μ ꡬννμ§λ§ 4μ£Όμ°¨λ κΈ°μ‘΄ μ½λλ₯Ό λ°λ‘ μμ ν μ μμκ³ , μ±κ³΅μ μΌλ‘ κ°μ²΄ λΆλ¦¬λ₯Ό ν μ μμλ€.
[λ λ²μ§Έ 보μ]
2μ£Όμ°¨μμ μΊ‘μνμ μλ°λλ λ‘μ§μΈ κ°μ κΊΌλ΄μ€λ μ½λλ₯Ό λ°κ²¬νμκ³ , μ΄λ₯Ό ν΄κ²°νκ³ μ νλ€.
μ΄ κ³Όμ μμ λΆλ³μ»¬λ μ μ μκ² λμ΄ λΆλ³μ μν μ 미리 μμ μμκ³ , κ°μ μ λ¬νλ€λ μλ―Έλ₯Ό λͺ ννκ² νμ νκ² λμλ€.μ΄λ 3μ£Όμ°¨μ λλ©μΈ λ‘μ§κ³Ό UI λ‘μ§μ λΆλ¦¬λ₯Ό μν΄ μ½μλ κΈκ³Ό MVCν¨ν΄μ μ΄ν΄νλ λ°μλ ν° λμμ΄ λμλ€.
κ²°κ΅ κ°λ€μ λΆλ³μΌλ‘ λ§λ€λΌλ 3μ£Όμ°¨ νΌλλ°±μ ν° μ΄λ €μ μμ΄ μμ©νκ³ , 4μ£Όμ°¨μ μ μ©μμΌ°λ€.
[μΈ λ²μ§Έ 보μ]
1μ£Όμ°¨μ ν μ€νΈ μ½λμ μ₯μ μ μκ² λμκ³ , μ΄ μ₯μ μ λλ¦¬κ³ μ ꡬνκ³Ό ν μ€νΈ μ½λλ₯Ό ν¨κ» μμ±νλ κ²μ 2μ£Όκ°(2, 3μ£Όμ°¨) λ Έλ ₯νλ€.
μ΄ λμ 4μ£Όμ°¨ λ―Έμ μ ꡬνκ³Ό ν μ€νΈ μ½λλ₯Ό ν¨κ» μμ±νλλ° μ΄λ €μμ΄ μμκ³ , λ―Έμ μ μννκ² μ§νν μ μμλ€κ³ μκ°νλ€.
λΏλ§ μλλΌ 2μ£Όμ°¨μλ @Test λ§μ νμ©ν ν μ€νΈ μ½λ μμ±μλ λ²κ±°μ μ§λ§, 4μ£Όμ°¨μλ JUnitμ λ€μν μ΄λ Έν μ΄μ μ μ μ§μ μΌλ‘ μ¬μ©ν΄μ ν μ€νΈ μ½λλ₯Ό μμ±ν μ μμλ€κ³ μκ°νλ€.
[λ€ λ²μ§Έ 보μ]
2μ£Όμ°¨μ 3μ£Όμ°¨μ ν¨μλΆλ¦¬λ₯Ό νλ €κ³ λ Έλ ₯νλ λλΆμ ν¨μλ₯Ό μͺΌκ°κ³ , μ΄λ€ κ²μ κΈ°λ₯μΌλ‘ λ΄μΌν μ§λ₯Ό μκ² λλ λμ΄ μκ²Όλ€.
μ΄λ λ€μν μꡬμ¬νμ΄ λ§μ 4μ£Όμ°¨ README λ₯Ό μμ± ν λ, ꡬνν΄μΌ ν κΈ°λ₯λ€μ μ΄μ κ³Ό λ€λ₯΄κ² μμ±ν μ μκ² λμκ³ , λ°λ README λλΆμ μ΄λ €μ΄ ꡬν μμμλ κΈΈμ μμ§ μκ³ λ―Έμ μ μμ£Όν μ μμλ€κ³ μκ°νλ€.
μ΄λ κ² λ§€ μ£Όλ§λ€ λ Έλ ₯νλ νλλ€μ΄ νλ λ λͺ¨μ¬ 4μ£Όμ°¨ λ―Έμ μ μμ±μν€λ λ° λμμ 쀬λ€.
μ§κΈ μ΄ κΈμ μ°λ©΄μ λ―Έμ μ λν΄ μμ¬μμ΄ μ ν μλ€. μ λ§ μ΄ν λ‘ νλ ¨ν μ μμκΉ μΆλ€. λ무 νλ ¨νλ€.
μ΄ κΈμ λ³Ό λλ§λ€ λ΄κ° λλΌκ³ μλ μ΄ κ°μ μ κΈ°μ΅νκ³ μΆκΈ°μ μ€κΈκ±°λ¦΄ μ μκ² μ§λ§ λ¨κ²¨λ³Έλ€.
μ΄λ€ λ§μμΌλ‘ λ ν ν΄μκ³ , ν리μ½μ€μ μ°Έμ¬νλμ§ μ€μ€λ‘κ° μκΈ°μ λλ μ§κΈμ λ΄κ° μλμ€λ½λ€.
νλ ¨νλ©° λ² μ°¨λ€.
πμμΌλ‘μ κ³ν
3μ£Όμ°¨ μ½μνμμ μ½μΉλμ΄ λ§μνμ ν΅μ¬ κΈ°λ₯μ νμ ν΄μ ν΅μ¬ κΈ°λ₯λΆν° ꡬννκΈ°λ₯Ό 4μ£Όμ°¨μ μ μ©νκ³ μ 2μΌ λμ λ Έλ ₯νμΌλ, μ€λ ₯ λΆμ‘±μΌλ‘ μΈν΄ κΈ°μ‘΄μ νλ λ°©μμΈ μ λ ₯λΆν° ꡬνν΄ λκ°λ€.
κ·Έλμ, 1~4μ£Όμ λ―Έμ λ€μ ν΅μ¬ κΈ°λ₯λΆν° λ€μ ꡬνν΄ λ³΄λ €κ³ νλ€.
ν리μ½μ€μ μꡬμ¬νμ μ§ν¬λ λ§λ€ μ±μ₯κ³Ό λ°°μμ μ»μμκΈ°μ μ΄ κ°λ₯΄μΉ¨μλ λΆλͺ ν μ±μ₯ν μ μλ λ°νμ΄ μλ€κ³ νμ νλ€.
μ±μ₯νκ³ νκΈ°λ₯Ό λ¨κ²¨λ³΄λλ‘ νκ² λ€π -> ν΄λ¦
'κΈ°ν > μ°μνν ν¬μ½μ€ > ν리μ½μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ν리μ½μ€ 3μ£Όμ°¨] λ‘λ κ²μ νκ³ (1) | 2023.11.09 |
---|---|
[ν리μ½μ€ 3μ£Όμ°¨] - μ’μ λ€μ΄λ°μ μν κ·μΉ (0) | 2023.11.09 |
[ν리μ½μ€ 2μ£Όμ°¨] 1μ£Όμ°¨ κ³΅ν΅ νΌλλ°± νμ΅ (0) | 2023.11.02 |
[ν리μ½μ€ 2μ£Όμ°¨] μλμ°¨ κ²½μ£Ό κ²μ νκ³ (0) | 2023.11.01 |
[ν리μ½μ€ 1μ£Όμ°¨] μλ° μ½λ© 컨벀μ (ν΄μ€) (1) | 2023.10.26 |