λͺ©λ‘λΆλ₯ μ 체보기 (124)
DevLog πΆ
π¬ λͺ¨λ μλ° μΈ μ‘μ μ±ν° 4μ μ½κ³ μ 리ν κΈμ λλ€. βοΈ μ€νΈλ¦Όμ΄λ? μλ° 8μ μλ‘κ² λ€μ΄μ¨ κΈ°λ₯ μ€, κ°μ₯ ν΅μ¬μ μΈ κΈ°λ₯μ΄λΌκ³ λ§ν΄λ 무방νλ€. 컬λ μ λ°μ΄ν°μ λ°λ³΅μ λμμ£Όκ³ , λ©ν° μ€λ λ μ½λ μμ΄ λ³λ ¬μ±μ ꡬνν μ μλ μμ£Ό μ μ©ν μΉκ΅¬μ΄λ€. λν, filterλ sorted, map, collect κ°μ μ°μ°μ ‘high-level building block’μ΄λΌκ³ νλλ°, μ€νΈλ¦Όμ λ§μΉ λΈλ‘μ²λΌ μκ³ , 쑰립ν μ μλ€λ μ μ΄ ν° νΉμ§μ΄λ€. βοΈ stream λ©μλ π± μ€νΈλ¦Όμ΄λ, λ°μ΄ν° μ²λ¦¬ μ°μ°μ μν΄ μμ€μμ μΆμΆλ μ°μλ μμμ΄λ€. 1) μ°μλ μμ 컬λ μ μ λ°μ΄ν°μ λν μλ£κ΅¬μ‘°μλ€λ©΄, μ€νΈλ¦Όμ μ΄λ₯Ό μ΄λ€ μμΌλ‘ κ³μ°ν μ§μ λν΄ λ€λ£¬λ€. λ κ°μ§ λͺ¨λ, μ°μλ κ° μ§ν©μ μΈν°ν..
π¬ λͺ¨λ μλ° μΈ μ‘μ μ±ν° 3μ μ½κ³ μ 리ν κΈμ λλ€. βοΈ λ©μλ μ°Έμ‘° λ©μλ μ°Έμ‘°λ₯Ό μ¬μ©ν΄μ λ μ½λλ₯Ό κ°κ²°νκ² λ§λ€μ΄λ³΄μ. // Before inventory.sort((a1, a2) -> a1.getCourse().compareTo(a2.getCourse())); // After inventory.sort(comparing(Crew::getCourse)); λ©μλ μ΄λ¦μ νμ©νλ, 'λ©μλ μ°Έμ‘°'λ₯Ό νμ©νλ©΄ λλ€λ₯Ό λ κ°κ²°νκ² ννν μ μλ€. λ©μλ μ°Έμ‘°λ₯Ό νκΈ° μν΄μλ ꡬλΆμ(::)λ₯Ό νμ©νλ€. π± λ©μλ μ°Έμ‘°λ₯Ό λ§λλ λ°©λ² 1. μ μ λ©μλ μ°Έμ‘° (args) -> ClassName.staticMethod(args) ==> ClassName::staticMethod 2. λ€μν νμμ μΈμ€ν΄..
βοΈ λ 벨 μΈν°λ·°λ?λλμ΄ λ 벨 1 λ°©ν κΈ°κ° λμ λ°λ Έλ λΈλ‘κ·Έ ν¬μ€ν μ λ§μ§λ§, λ 벨λ‘κ·Έλ₯Ό μ 리νκ³ μ νλ€. μ°ν μ½μμλ 맀 λ λ²¨μ΄ λλλ©΄ μ‘°λ³λ‘ 'λ 벨 μΈν°λ·°'λΌλ κ²μ μ§ννλ€. λ 벨 μΈν°λ·°λ κ° λ 벨μμ νμ΅ν λ΄μ©μ μΈν°λ·° νμμΌλ‘ μ§ννλ λ§νκΈ° νλμΌλ‘μ, μμ μ΄ μκ³ μλ μ§μμ λ§λ‘ νννλ μ°μ΅μ ν΅ν΄ λ©νμΈμ§λ₯Ό κΈ°λ₯Ό μ μλ€. (μΆν κΈ°μ μ κΈ°μ λ©΄μ , μΈν°λ·°μ λν λλΉλΌκ³ λ΄λ μ’λ€ π) κ·Έλ£ΉλΉ 6-7λͺ μ΄ μ§ννλ©°, 1λͺ μ μΈν°λ·°μ΄, 3λͺ μ μΈν°λ·°μ΄, 2-3λͺ μ μ΅μ λ²μ ν¨κ» μ§ννλ€. ν μ¬λλΉ μ΄ μΈν°λ·° 20λΆ, κ·Έλ¦¬κ³ νΌλλ°± 10λΆμ© μ§ννλλ° μκ°λ³΄λ€ μ΄ μκ°μ΄ λκ² λΉ λ₯΄λ€. λ 벨 μΈν°λ·°λ μ΄ 2μΌκ° μ§νλμμΌλ©°, λλ λ λ²μ§Έ λ μ μ§ννκΈ° λλ¬Έμ 첫 λ μ μ¬νμ νλ€...
π± λ€μ΄κ°κΈ° μ λ³Έ μ± μμλ μ΄μν λλΌμ μ¨λ¦¬μ€ μ΄μΌκΈ°μ κ°μ²΄μ κ°λ μ μ λͺ©μμΌ μ€λͺ νλ€. μ¨λ¦¬μ€λ μ’μ μμ μ§λ§, μ§λ μκ°μ μκ°νλ "κ³ μμ΄ μ€λ΅λ°" κ²μμ λ§μΆ°μ μ΄λ² μ±ν°λ νμ΄λκ° μμ μ΄λ€. βοΈ κ°μ²΄μ νλκ³Ό μν κ³ μμ΄ μ€λ΅λ° κ²μμμ, κ°κ°μ λ₯λ₯μ΄λ€μ μ½μ€ν¬μ μ μ μ μλ€. κ·Έλ¦¬κ³ μ΄λ€ μ½μ€ν¬μ μ λμ§μ λ°λΌμ μ»μ μ μλ ν¨κ³Όκ° λ¬λΌμ§λ€. λ§μ½, μλ°λ₯μ΄ μ΄ν₯ μνΈλ₯Ό μ μλ€κ³ μκ°ν΄λ³΄μ. μλ°λ₯μ μ΄ν₯ μνΈλ₯Ό μ μμΌλ‘μ μμ°μλκ° μ¦κ°νκ² λλ€. μλ°λ₯μ κΈ°μ‘΄ μμ° μλλ 10μ΄λΌκ³ κ°μ νμ λ, μ΄ν₯ μνΈλ₯Ό μ μΌλ©΄ μμ° μλκ° 20μ΄ λλ κ²μ΄λ€. μ΄λ° μμΌλ‘ μλ°λ₯μ μμ° μλλ μ΄λ€ μ½μ€ν¬μ μ λλμ λ°λΌμ λ¬λΌμ§λ€. = μ¦, μλ°λ₯μ΄ μ΄λ€ νλμ νλμ§μ λ°λΌμ μλ°λ₯μ ..
π¬ μ΄ν©ν°λΈμλ° μμ΄ν 4μ μ½κ³ μ 리ν κΈμ λλ€. βοΈ μ νΈλ¦¬ν° ν΄λμ€ μΈμ€ν΄μ€ λ©μλμ λ³μκ° μμ΄, μ μ λ©μλμ μ μ λ³μλ§ μ 곡νλ ν΄λμ€λ₯Ό μλ―Ένλ€. κ°μΈμ μΈ μ견μ΄μ§λ§, μ νΈλ¦¬ν° ν΄λμ€λ κ°μ²΄μ§ν₯μ κ΄μ μμ λ΄€μ λ μ’λ€κ³ λ 보기 νλ€ κ² κ°λ€. μλ°μμ μ 곡νλ μ νΈλ¦¬ν° ν΄λμ€ μ€μ λνμ μΈ κ²λ€μ λͺ κ°μ§ μ΄ν΄λ³΄μ. public class Arrays { private Arrays() {} ... } μ μ½λλ java.utilμ μ‘΄μ¬νλ Arrays ν΄λμ€μ΄λ€. μ΄ ν΄λμ€λ λ°°μ΄μ μ‘°μνκΈ° μν΄ μ λ ¬μ΄λ κ²μ λ±μ ν μ μλ λ€μν μ μ λ©μλλ€μ μ 곡νλ€. (λλΆλΆμ λ©μλλ μ€λ²λ‘λ©λμ΄ μμ΄μ μ€μ λ‘ νλ μν μ κ²μ, 볡μ¬, μ±μ°κΈ°, μ λ ¬... λ±λ±μ΄ μλ€) μ νΈλ¦¬ν° ν΄λμ€λ‘ μ¬..
μ λλ ν¨κ»ν λ€ λ²μ§Έ νμ΄ νλ‘κ·Έλλ°μ΄λ€. λ―Έμ μ μ§νν λΉμμλ λμ΄λκ° ν λ΄ λλμ΄λΌ μ΄λ ΅λ€λ μκ°, κ·Έλ¦¬κ³ μκ°μ΄ λ무 μ΄λ°νλ€λ μκ°λΏμ΄μλλ° λ€ λλκ³ λμ λμ보λκΉ λλ¦λλ‘ μ ν΄λΈ κ² κ°λ€. (λ¬Όλ‘ ... μ½λκ° λ§μμ λ λ€λ λ§μ μλλ€ π₯Ή μ λ§ λ§μ΄ λΆμ‘±νλ€...) κ·Έλλ λ 벨 1 λ§μ§λ§ λ―Έμ κΉμ§ μ΄λ»κ²λ μ¨ λ΄ μμ μ΄ λ견νλ€! μμΌλ‘λ νλ΄μ πͺ βοΈ μμ±ν μ½λ GitHub - Cl8D/java-chess: μ²΄μ€ κ²μ ꡬνμ μν μ μ₯μ μ²΄μ€ κ²μ ꡬνμ μν μ μ₯μ. Contribute to Cl8D/java-chess development by creating an account on GitHub. github.com βοΈ 1μ°¨ PR [1, 2λ¨κ³ - 체μ€] μ Έλ(μ΄μ§μ) λ―Έ..
π± λ€μ΄κ°κΈ° μ κ°μ¬μ€, μΌλͺ ν λΌμ± μ΄λΌκ³ λΆλ¦¬λ μ± μ΄λ€. λ 벨 1μ΄ λλκΈ° μ μ μ½κ³ μΆμλλ° κ·Έλ¬μ§ λͺ»ν΄μ λ°©ν κΈ°κ° λμ κ°λ¨νκ² μ½κ³ μ 리ν΄λ³΄μλ€. κ°μ²΄μ§ν₯μ λν΄ κ³΅λΆνκΈ° μ μλ ‘λ΄κ° μ κ°μ²΄μ§ν₯μ μΌλ‘ μ½λλ₯Ό μμ±ν΄μΌ νμ§…? μ μΊ‘μν μ΄λ° κ±Έ μ§μΌμΌ νμ§?’λΌλ μκ°μ λ§μ΄ νμλλ°, κ°μ²΄μ§ν₯μ μ€κ³κ° μ μ½λμ μ μ§λ³΄μμ±μ μ¦κ°μν€λμ§, μ΄λ€ μΈ‘λ©΄μμ μ’μμ§ λ΄ λλ¦λλ‘ λ¨Έλ¦Ώμμμ μ μκ° λλ κ² κ°μμ μ¬λ°λ€. μλ° κ°λ°μλ‘μ λͺ¨λ μ€κ³μ κΈ°λ³Έμ κ°μ²΄μ§ν₯μ λν μ΄ν΄κ° μλκΉ… λΌλ μκ°μ΄ λ€μλ€! κ° μ₯μ λν΄μ λ΄ λλ¦μ 견ν΄λ₯Ό λ΄μ μ 리ν΄λ³΄κ³ μ νλ€. βοΈ νλ ₯ κ΄κ³ νν κ°μ²΄μ§ν₯ μΈκ³λ₯Ό λ§ν λ μ€μΈκ³λ₯Ό λͺ¨λ°©νκΈ° μν¨μ΄λΌκ³ λ§μ΄λ€ λ΅νλ€. (λ μμ μ΄ μ± μ μ½κΈ° μ μ κ·Έλ¬λ€) ..
π¬ μ΄ν©ν°λΈμλ° μμ΄ν 3μ μ½κ³ μ 리ν κΈμ λλ€. βοΈ μ±κΈν΄ μΈμ€ν΄μ€ μΈμ€ν΄μ€λ₯Ό μ€μ§ νλλ§ μμ±ν μ μλ ν΄λμ€. λ©λͺ¨λ¦¬ λλΉλ₯Ό μ€μΌ μ μκ³ , λ°μ΄ν°λ₯Ό 곡μ ν μ μλ€. λ€λ§, κ²°ν©λκ° μ¦κ°νλ©° ν΄λΌμ΄μΈνΈμ ν μ€νΈκ° μ΄λ €μμ§ μ μλ€λ μ μ΄ μ‘΄μ¬νλ€. -> μΈμ€ν΄μ€λ₯Ό ꡬνν΄μ λ§λ μ±κΈν΄μ΄ μλλΌλ©΄, μ±κΈν΄ μΈμ€ν΄μ€λ₯Ό mock κ°μ²΄λ‘ λ체νκΈ°κ° νλ€κΈ° λλ¬Έμ΄λ€. π¬ μμ±νλ λ°©λ² 1. μμ±μλ₯Ό λͺ¨λ privateλ‘ λ§λ€κ³ , μΈμ€ν΄μ€μ μ μΌν μ κ·Όμλ₯Ό public staticμΌλ‘ μμ±νκΈ° public class Crew { public static final Crew INSTANCE = new Crew(); private Crew() { ... } public void hello() {...} }..
μ§ν λ μ§νν μΈ λ²μ§Έ νμ΄ νλ‘κ·Έλλ°μ΄λ€. μ¬μ€ λλ μ§ νμ°Έ λμ§λ§... λ€λ¦κ² νκ³ λ₯Ό μμ±ν΄λ³΄κ³ μ νλ€. λΈλμλΆν° λ―Έμ μ λμ΄λκ° νμ€ν κΉλ€λ‘μμ‘λ€λ μκ°μ΄ λ€μλ€... γ γ κ·Έλλ λ°°μ΄ κ² λ§μμ μ’λ€. βοΈ μμ±ν μ½λ GitHub - Cl8D/java-blackjack: λΈλμ λ―Έμ μ μ₯μλΈλμ λ―Έμ μ μ₯μ. Contribute to Cl8D/java-blackjack development by creating an account on GitHub.github.com βοΈ 1μ°¨ PR [1λ¨κ³ - λΈλμ κ²μ μ€ν] μ Έλ(μ΄μ§μ) λ―Έμ μ μΆν©λλ€. by Cl8D · Pull Request #452 · woowacourse/java-bμλ νμΈμ, μ½μΌ! μ°ν μ½ 5κΈ° λ°±μλ ν¬λ£¨ μ Έλμ λλ€ βοΈ..
π¬ μ΄ν©ν°λΈμλ° μμ΄ν 2μ μ½κ³ μ 리ν κΈμ λλ€. βοΈ ν΄λμ€μ λ©€λ² λ³μκ° λ§μ κ²½μ°, κ°μ²΄λ₯Ό μ΄λ»κ² μμ±ν μ μμκΉ? - μμ±μλ₯Ό μ¬λ¬ μ’ λ₯λ‘ λμ΄μ, νμν 맀κ°λ³μλ§μ μ¬μ©νλ μμ±μ μ¬λ¬ κ°λ₯Ό λ§λ€ μ μλ€ - κ·Έλ¬λ, μ΄ λ°©λ²μ νλκ° λμ΄λλ©΄ κ·Έλ§νΌ κ΄λ¦¬ν΄μΌ νλ μμ±μκ° λ§μμ§κΈ° λλ¬Έμ μ’μ§ μλ€. - λν, 맀κ°λ³μλ‘ μ λ¬νλ©΄ (μΈν 리μ μ΄μ νλΌλ―Έν° ννΈλ₯Ό μ¬μ©νμ§ μλ μ΄μ) κ° κ°μ μλ―Έλ₯Ό νλμ μμλ³΄κΈ°κ° νλ€κ³ , λ²κ·Έκ° λ°μν νλ₯ μ΄ λμμ§ μ μλ€. public class Crew { private String name; private int age; private String course; private String nickname; } μμλ‘, ν¬λ£¨μ λν μ 보λ₯Ό λνλ΄λ..