
μμ£Ό κ°μ‘°νμ§λ§ κ°μ²΄μ§ν₯ μ ν리μΌμ΄μ μ κ°μ₯ μ€μν μ¬λ£λ ν΄λμ€κ° μλ κ°μ²΄λ€μ΄ μ£Όκ³ λ°λ λ©μμ§λ€.
μ ν리μΌμ΄μ μ ν΄λμ€λ‘ ꡬμ±λμ§λ§ λ©μμ§λ₯Ό ν΅ν΄ μ μλλ€.
κ°μ²΄κ° μμ νλ λ©μμ§λ€μ΄ κ°μ²΄μ νΌλΈλ¦ μΈν°νμ΄μ€λ₯Ό ꡬμ±νλ€. νλ₯ν νΌλΈλ¦ μΈν°νμ΄μ€λ₯Ό μ»κΈ° μν΄μλ μ±
μ μ£Όλ μ€κ³ λ°©λ²μ λ°λ₯΄λ κ²λ§μΌλ‘λ λΆμ‘±νλ€.
μ μ°νκ³ μ¬μ¬μ© κ°λ₯ν νΌλΈλ¦ μΈν°νμ΄μ€λ₯Ό λ§λλ λ° λμμ΄ λλ μ€κ³ μμΉκ³Ό κΈ°λ²μ μ΅νκ³ μ μ©ν΄μΌ νλ€. μ΄λ° μμΉκ³Ό κΈ°λ²λ€μ μ΄ν΄λ³΄λ κ²μ΄ μ΄λ² μ₯μ μ£Όμ μ΄λ€.
νλ ₯μ μ΄λ€ κ°μ²΄κ° λ€λ₯Έ κ°μ²΄μκ² λ¬΄μΈκ°λ₯Ό μμ²ν λ μμλλ€. λ©μμ§λ κ°μ²΄ μ¬μ΄μ νλ ₯μ κ°λ₯νκ² νλ λ§€κ°μ²΄μ΄λ€.
νλ ₯ μμμ λ©μμ§λ₯Ό μ μ‘νλ ν΄λΌμ΄μΈνΈ, λ©μμ§λ₯Ό μμ νλ μλ²λΌκ³ νννλ ν΄λΌμ΄μΈνΈ - μλ² λͺ¨λΈμ΄ μλ€.

Switcκ° Hitterμ μ¨λλ₯Ό λμ΄λΌκ³ μμ²νλ©΄ Hitterλ μ΄μλμ§λ₯Ό μ£Όκ² λλ€.
μ΄ κ°μ κ²½μ°λ μ°λ¦¬κ° Rest API ν΅μ μ ν΅ν΄ λ§μ΄ κ²ͺκ² λλ μν©μΈλ°, νλ‘ νΈμ λ°±μλκ° λΆλ¦¬λ μλ²μμ μμ£Ό λ§μ£ΌμΉ μ μλ μν©μ΄λ€.
Hitterλ λ λ€λ₯Έ κ°μ²΄μκ² ν΄λΌμ΄μΈνΈ μ
μ₯μΌλ‘ μ‘΄μ¬ν μ μλ€. κ°λ Ή μ κΈ° μλμ§λ₯Ό μ»κΈ° μν΄ λ€λ₯Έ κ°μ²΄λ₯Ό μ°Ύμ μ μλ€.
λ©μμ§(message)
λ©μμ§λ₯Ό μμ νμ λ μ€μ λ‘ μ€νλλ ν¨μ λλ νλ‘μμ λ₯Ό λ©μλλΌκ³ λΆλ₯Έλ€.
λ©μμ§μ λ©μλμ ꡬλΆμ λ©μμ§ μ μ‘μμ λ©μμ§ μμ μκ° λμ¨νκ² κ²°ν©λ μ μκ² νλ€. λ©μμ§ μ μ‘μλ μμ μ΄ μ΄λ€ λ©μμ§λ₯Ό μ μ‘ν΄μΌ νλμ§λ§ μλ©΄ λλ€. μμ μκ° μ΄λ€ ν¬λμ€μ μΈμ€ν΄μ€μΈμ§, μ΄λ€ λ°©μμΌλ‘ μμ²μ μ²λ¦¬νλμ§ λͺ¨λ₯΄λλΌλ μνν νλ ₯μ΄ κ°λ₯νλ€. λ©μμ§ μμ μ μμ λκ° λ©μμ§λ₯Ό μ μ‘νλμ§ μ νμκ° μλ€. λ¨μ§ λ©μμ§κ° λμ°©νλ€λ μ¬μ€λ§ μλ©΄ λλ€.
νΌλΈλ¦ μΈν°νμ΄μ€
μκ·Έλμ²(signature)
μ’μ μΈν°νμ΄μ€
μ΅μμ£Όμλ₯Ό λ°λ₯΄λ©΄μλ μΆμμ μΈ μΈν°νμ΄μ€λ₯Ό μ€κ³ν μ μλ κ°μ₯ μ’μ λ°©λ²μ μ± μ μ£Όλ μ€κ³ λ°©λ²μ λ°λ₯΄λ κ²μ΄λ€. κ·Έλ¬λ μ± μ μ£Όλ μ€κ³ λ°©λ²μ΄ νλ₯ν μΈν°νμ΄μ€λ₯Ό μ»μ μ μλ μ§μΉ¨μ μ 곡νλ€κ³ νλλΌλ μ¬λ°λ₯Έ μ€κ³μ λλ¬νκΈ° μν΄μλ νλ₯ν μΈν°νμ΄μ€κ° κ°μ§λ 곡ν΅μ μΈ νΉμ§μ μμμΌ νλ€.
νΌλΈλ¦ μΈν°νμ΄μ€μ νμ§μ μν₯μ λ―ΈμΉλ μμΉκ³Ό κΈ°λ²
screening.getMovie().getDiscountConditions();μ€κ³λ νΈλ μ΄λμ€νμ μ°λ¬Όμ΄λ€. μ μ©νλ €λ μμΉκ³Ό κΈ°λ²λ€μ λͺ¨λ μ¬λ‘μ μ΅μ§λ‘ λΌμλ§μΆλ €κ³ νλ€λ©΄ λΆμ ν©ν μν©μμλ 무μ§μν μ½λκ° μμ±λ μ μλ€. μμΉμ μ΄λλΆλΆμμ μ μ©νκ³ μ μ©νμ§ μμκΉ, μ΄λλΆλΆμμ μ μ©νλ©΄ μ μ©νκ²λ κΉλ₯Ό κ³ λ―Όνμ.
λλ―Έν°μ λ²μΉμ€. νλμ λνΈλ§μ μ¬μ©νλΌλ κ²μ list.stream.filter.~~~ μ κ°μ κ³³μμλ μ μ©νλΌλ κ²μ΄ μλλ€.
μ΄ λ©μλ 체μ΄λμ λμΌν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ°ννλ€. builderν¨ν΄μ κ²½μ°μλ λμΌνλ€.
μ΄μ²λΌ κΈ°μ°¨ μΆ©λκ³Ό κ°μ μ½λμ¬λ μΈλΆμ μ 보λ₯Ό λ
ΈμΆνμ§ μλλ€λ©΄ λλ―Έν° λ²μΉμ μ€μν κ²μ΄λ€.
묻μ§μκ³ μμΌλΌκ° μ μ© λ κ²½μ°κ° μλλ° μλ£κ΅¬μ‘°μ κ°μ²΄μ κ²½μ° λ΄λΆλ₯Ό λ
ΈμΆν΄μΌνλλ°, κ²°κ΅μ λ΄λΆμ 보λ₯Ό Publicνκ² κ³΅μ ν΄μΌνλ€.
κ°μ²΄μ μν€λ κ²μ΄ νμ κ°λ₯νμ§ μλ€. κ°λμ λ¬Όμ΄λ³΄μμΌνλ€.
νμμ λ°λΌ λ¬Όμ΄μΌ νλ€λ μ¬μ€μ μ΄ν΄νλ€λ©΄ λͺ λ Ή-쿼리 μμΉμ μμ보μ.
μ©μ΄
λͺ λ Ή - νλ‘μμ μ λμΌν κ°λ μΌλ‘ λ³΄κ³ μΏΌλ¦¬ - ν¨μμ λμΌν κ°λ μΌλ‘ λ³Έλ€.
λͺ
λ Ήκ³Ό 쿼리λ₯Ό λΆλ¦¬ν΄μ μ»λ μ₯μ μ΄ λ¬΄μμΌκΉ??
κ°μ₯ ν° μ₯μ μ μ½λκ° μμΈ‘νκΈ° μ¬μμ§λ€λ κ²μ΄λ€.
κ°λ Ή μ½λλ₯Ό 보면
public int findItemNo(Someclass someclass) {
someClass.setItemNo(5);
return someClass.getItemNo();
}
λΆλͺ μμ΄ν μ΄λ¦μ μ°ΎμΌλΌκ³ λ©μλλ₯Ό λͺ λͺ ν΄λκ³ νλΌλ―Έν°λ₯Ό λ°λ κ°μ²΄μ μνλ₯Ό λ³κ²½ν ν μ΄ κ°μ 리ν΄νλ€.
κ·Έλ λ€λ©΄ μ΄ someClass μ무λ λͺ¨λ₯΄κ² μνλ³κ²½μ΄ λμ΄λ²λ¦° κ²μ΄λ€.
μ΄μ²λΌ λ©μλλ₯Ό ν΅ν΄ μμΈ‘ν μ μλ κ²°κ³Όκ° λμ¨λ€λ©΄ λ²κ·Έκ° λ°μν μλ μκ³ λλ²κΉ νκΈ° μν΄ λ©μλλ€μ μ μ ν μ°Ύμ보μμΌ νλ€.
λΆλ¦¬λ₯Ό νμ
public void changeItemNo(SomeClass someClass, int itemNo) {
someClass.itemNo = itemNo;
}
public int changeItemNo(SomeClass someClass) {
return someclass.getItemNo();
}
λ¬Όλ‘ μμ μ½λλ€μ λ΄λΆ ꡬνμ ν΅ν΄ getterμ setterλ°©μμΌλ‘ μ§€ μ μκ² μ§λ§. μμ μ λ©μλκ° κ΅¬ννλ κΈ°λ₯μ λν΄μ λͺ λ Ή μΏΌλ¦¬λ‘ λΆλ¦¬νλ κ²μ΄λ€.
μ»΄ν¨ν°μμ λͺ λ Ήμ λΆμν¨κ³Ό(μ€κ°μ μνκ° λ³νλ)λ₯Ό κ°μ Έλ€ μ£Όλλ°, μ΄ λΆμν¨κ³Όκ° μμ μ‘΄μ¬νμ§ μλ€λ©΄ λΆλ³μ±(μνκ° λ³νμ§ μμ)μ μ‘±νλ©° μ°Έμ‘° ν¬λͺ μ± μ¦, ν΄λΉ κΈ°λ₯μ μ΄λμ μ λ ₯λμ΄λ κ°μ κ²°κ³Όλ₯Ό λ°ννλ κ²°κ³Όλ₯Ό μ£Όκ²λλ€.
κ°μ²΄μ§ν₯μ μνλ³κ²½μ΄λΌλ λΆμν¨κ³Όλ₯Ό κΈ°λ°μΌλ‘ μκ°νκΈ° λλ¬Έμ μ°Έμ‘°ν¬λͺ μ±μ μμΈμ κ°κΉλ€.
κ·Έλ¬λ, λͺ λ Ή-쿼리 μμΉμΌλ‘ μ΄ κ°κ·Ήμ μ΅λν μ€μΌ μ μλ€.
μΆμ²
μ€λΈμ νΈ - μ½λλ‘ μ΄ν΄νλ κ°μ²΄μ§ν₯ μ€κ³
https://github.com/eternity-oop/object