ν μ€ μμ½ : μ’μ μν€ν νΈλ μμ€ν μ μ μ€μΌμ΄μ€ / μ΄μ / κ°λ° / λ°°ν¬λ₯Ό μ§μν΄μΌνλ€. λν λ°μ΄λ μν€ν νΈλΌλ©΄ μ΄λ¬ν λ³κ²½μ μμΈ‘νμ¬ ν° λ¬΄λ¦¬ μμ΄ λ°μν μ μλλ‘ λ§λ€μ΄μΌ νλ€.νμλ₯Ό λͺ νν νκ³ μΈλΆλ‘ λλ¬λ΄λ©°, μμ€ν μ μλλ₯Ό μν€ν μ² μμ€μμ μμλ³Ό
ν μ€ μμ½ : μν€ν μ²μ κΆκ·Ήμ μΈ λͺ©νλ μμ€ν μ μλͺ κ³Ό κ΄λ ¨λ λΉμ©μ μ΅μννκ³ , νλ‘κ·Έλλ¨Έμ μμ°μ±μ μ΅λννλλ°μ μλ€.μμ€ν μν€ν μ²λ κ°λ°νμ΄ μμ€ν μ μ½κ² κ°λ°ν μ μλλ‘ ν΄μΌνλ€.μννΈμ¨μ΄ μν€ν μ²λ μ½κ² λ°°ν¬ν μ μλλ‘ λ§λ€μ΄μΌ νλ€. λ°°ν¬ λΉμ©μ΄
μ»΄ν¬λνΈ μμ‘΄μ± κ·Έλνμ μνμ΄ μμ΄μλ μλλ€.λμΌν μμ€μ½λλ₯Ό μ¬λΏμ΄ 건λ리면, μλ‘μ μ½λμ μμ‘΄μ±μ΄ μκΈΈ μ μλ€. μ΄λ, ν΄κ²°μ± μΌλ‘λ λκ°μ§κ° μλ€.μ€κ°κ·λͺ¨ νλ‘μ νΈμμ νν μ¬μ©μ-λͺ©μ κ°μ μ½λ©, κΈ - ν΅ν© λ° λΉλμ₯μ : λΉ λ₯Έ νΌλλ°± λ° μλ‘ μ κ²½μμ°κ³
μ¬μ¬μ© λ¨μλ λ¦΄λ¦¬μ€ λ¨μμ κ°λ€μν€ν μ²μ κ΄μ μμ λ¨μΌ μ»΄ν¬λνΈλ μμ§μ± λμ ν΄λμ€&λͺ¨λλ‘ κ΅¬μ±λμ΄μΌ νλ€.μ¦, 곡μ νλ μ€μν ν λ§λ λͺ©μ μ΄ κ°μ κ²λΌλ¦¬ ꡬμ±λμ΄μΌνλ€λ λ»μ΄λ€.λ°λΌμ, νλμ μ»΄ν¬λνΈλ‘ λ¬ΆμΈ ν΄λμ€μ λͺ¨λμ λ²μ λ²νΈκ° κ°κ³ , λμΌν 릴리μ€λ‘ μΆ
μ»΄ν¬λνΈ : μμ€ν μ κ΅¬μ± μμλ‘ λ°°ν¬ν μ μλ κ°μ₯ μμ λ¨μμ μ€κ³λ μ»΄ν¬λνΈλ λ°λμ λ 립μ μΌλ‘ λ°°ν¬κ° κ°λ₯ν΄μΌ νλ©°, λ 립μ μΌλ‘ κ°λ° κ°λ₯ν λ₯λ ₯μ κ°μΆ°μΌνλ€.κ°λ° μ΄μ°½κΈ°μλ νλ‘κ·Έλ¨μ΄ λ‘λλ μ£Όμλ₯Ό μ§μ μ μ΄ν΄μΌ νκΈ°μ, λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ μ λμ΄λ¬λ€.μ¬λ°°μΉ
μμ‘΄μ± μμ μμΉμ΄λ, μμ‘΄μ±μ΄ μΆμμ μμ‘΄νκ³ κ΅¬μ²΄μ μΈ κ²μ μμ‘΄νμ§ μμμΌ νλ€λ μμΉμ΄λ€.μ΄λ, 100νλ‘ μ§μΌμ§κΈ°λ νλ€λ€. μλ₯Ό λ€μ΄, JAVAμμ stringμ ꡬ체μ μΈ ν΄λμ€μ΄λ, μμ νκΈ° λλ¬Έμ μΆμν΄λμ€λ‘ λ§λ€μ§ μλλ€.λ°λΌμ, μμ‘΄μ±μ νΌν΄μΌ νλ κ²
User1μ op1λ©μλλ§, User2μ op2λ©μλλ§, User3μ op3λ©μλλ§ μ¬μ©νλ€κ³ κ°μ νμ.op2λ₯Ό μμ μ¬λ°°ν¬λ₯Ό ν κ²½μ°, User1κ³Ό User3μ op2λ₯Ό μ¬μ©νμ§ μμμλ λΆκ΅¬νκ³ , μ¬ μ»΄νμΌ ν λ€μ λ°°ν¬ν΄μΌνλ€.μ΄λ μμ‘΄μ± λ¬Έμ μΈλ°, λΆνμν μμ‘΄
μλ£νSκ° μλ£νTμ νμνμ΄λΌλ©΄ νμν νλ‘κ·Έλ¨μ μμ±(μ νμ±, μννλ μ 무 λ±)μ λ³κ²½ μμ΄ μλ£νTμ κ°μ²΄λ₯Ό μλ£νSμ κ°μ²΄λ‘ κ΅μ²΄(μΉν)ν μ μμ΄μΌ νλ€λ μμΉμ΄λ€.BilingλΌλ μ ν리μΌμ΄μ μμλ λ¨μν calcFee()λΌλ λ©μλλ₯Ό νΈμΆνλ€κ³ νμ.Bil
ν΄λμ€μ κ΄κ³λ 7κ°μ§ μ λκ° μ‘΄μ¬νλ€.μνΌ(λΆλͺ¨)ν΄λμ€μ μλΈ(μμ)ν΄λμ€κ°μ μμκ΄κ³λ₯Ό λνλΈλ€. λΆλͺ¨ν΄λμ€λ μμν΄λμ€λ₯Ό μΌλ°νν λ°©μμ΄κ³ , μμν΄λμ€λ λΆλͺ¨ν΄λμ€λ₯Ό ꡬ체νν λ°©μμ΄λΌκ³ μκ°νλ©΄ λλ€.μμμ μνΌν΄λμ€μ νλ λ° λ©μλλ₯Ό μ¬μ©ν΄ ꡬ체ννκ³ , νμν
κ°λ°©-νμ μμΉμ νμ₯μλ μ΄λ € μμ΄μΌνκ³ , λ³κ²½μλ λ«ν μμ΄μΌ νλ€.μννΈμ¨μ΄ μν€ν μ²κ° νλ₯νλ€λ©΄, λ³κ²½λλ μ½λμ μμ΄ κ°λ₯ν ν μ΅μν λ κ²μ΄λ€. μ΄μμ μΈ λ³κ²½λμ 0 μ΄λ€.λ³κ²½λλ μμλ₯Ό μ μ νκ² λΆλ¦¬νκ³ (SRP), μ΄λ€ μ¬μ΄μ μμ‘΄μ±μ 체κ³ννλ©΄(DIP
SRP λ¨μΌ μ± μ μμΉμ λ¨ νλμ μΌλ§ ν΄μΌνλ€λ μμΉμ΄ μλλ€.β νλμ λͺ¨λμ μ€μ§ νλμ μ‘ν°μ λν΄μλ§ μ± μμ ΈμΌ νλ€.κ·Έλ¦Ό 7.1μ 보면, Employee ν΄λμ€μ calculatePay(), reportHours(), save() μ΄ μΈ κ°μ λ©μλκ° μλ€.
ν΄λ‘μ λ₯Ό μ΄μ©ν μ κ³±ν¨μλ₯Ό μ€λͺ νλ€.μ¬κΈ°μ νΉμ§μ, μλ°μ λ€λ₯΄κ² , κ°λ³λ³μλ₯Ό νμ©νμ§ μλλ€λ μ μ΄λ€.μν€ν μ²λ λ³μμ κ°λ³μ±μ μΌλ €νλ€.κ·Έ μ΄μ λ κ²½ν© μ‘°κ±΄, κ΅μ°©μν 쑰건, λμ μ λ°μ΄νΈ λ¬Έμ κ° λͺ¨λ κ°λ³ λ³μλ‘ μΈν΄ λ°μνκΈ° λλ¬Έμ΄λ€.κ²½ν©μ‘°κ±΄ / κ΅μ°©μν 쑰건
\--- μμ λ§μΆκΈ° μν μμ μΆκ° ---
λ°μ΄ν¬μ€νΈλ μνμ μΌλ‘ μ¦λͺ νλ €κ³ νλ€. μΈκ°μ§ λ°©λ²μ μ΄μ©ν΄μ μ¦λͺ νλ €κ³ νλλ°,μμ°¨ ꡬ문 (μ΄κ±°λ²)λΆκΈ°λ°λ³΅ - κ·λ©λ² μ¬μ©μ΄ μΈ κ°λ₯Ό μ΄μ©ν΄μ νλ‘κ·Έλλ°μ μ ν΄λ¦¬λ κ³μΈ΅κ΅¬μ‘°λ‘ λ§λ€λ €κ³ νλ€.gotoλ¬Έμ ν΄λ‘μμ μλ Έλ€. κ·Έλ¬λ©΄μ νλ‘κ·Έλλ° μ±μ₯μ μ΄λ€λ€. gotoλ¬Έ
gotoλ¬Έμ΄ ν΄λ‘λ€λ κ²μ νμ νκ³ , if/then/elseλ do/while/until κ΅¬μ‘°λ‘ λ체νλ€.ꡬ쑰μ νλ‘κ·Έλλ°μ μ μ΄νλ¦μ μ§μ μ μΈ μ νμ λν΄ κ·μΉμ λΆκ³Όνλ€.κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μ μ΄νλ¦μ κ°μ μ μΈ μ νμ λν΄ κ·μΉμ λΆκ³Όνλ€.ν¨μν νλ‘κ·Έλλ°μ ν λΉλ¬Έ
λͺ¨λ μννΈμ¨μ΄ μμ€ν μ λκ°μ§ κ°μΉλ₯Ό μ 곡νλ€ - νμμ ꡬ쑰νμ - μννΈμ¨μ΄μ λ΄κΈ΄ μ΄ν΄κ΄κ³μμ μꡬμ¬νμ΄ νμλ₯Ό ꡬννλ κ²μ΄ νλ‘κ·Έλλ¨Έκ° ν΄μΌνλ μ λΆκ° μλꡬ쑰 - μν€ν μ²νμ₯μ±μ΄ μ€μνλ€.λ³κ²½νκΈ° μ¬μμΌ νλ€μμ€ν μ ννμ μꡬμ¬νμ ννκ° λ§μμΌνλ€.κΈ΄κΈ
μν€ν μ²μ μ€κ³λ ν¬κ² λ€λ₯΄μ§ μλ€. λ€λ₯΄λ€κΈ° λ³΄λ¨ μ°μμ±μ κ°μ§κ³ μ΄μ΄μ Έμλ€κ³ 보λ κ²μ΄ μ³λ€.μ μμ€μ μΈλΆμ¬ν(μ€κ³)λ‘ μ΄λ£¨μ΄μ§ κ³ μμ€μ κ²°μ μ¬ν(μν€ν μ²)μ΄λ€.μννΈμ¨μ΄ μν€ν μ²μ λͺ©νλ νμν μμ€ν μ λ§λ€κ³ μ μ§λ³΄μ νλ λ° ν¬μ λλ μΈλ ₯μ μ΅μννλ λ° μλ€
ν΄λΉ λ¬Έμ μ μμΈλ, 4(IV),9(IX), 40(XL)κ³Ό κ°μ μμ μμ μκ° λμ€κ³ λ κ°μ λ¬Έμλ‘ λμ΄μλ μ λ€μ΄μλ€. κ·Έλμ λλ dictμμ λ£μ΄λ²λ Έλ€. κ·Έλ¦¬κ³ , ν΄λΉ μ‘°κ±΄μ΄ λ§μ‘±νλ©΄, μλ₯Ό λΉΌκΈ°λ‘ νλ€. 2λ₯Ό κ³±ν건 κ·Έ μμ νλ² λ£μ΄μ€¬κΈ° λλ¬Έμ, λλ² λΉΌ
λ¨Όμ forλ¬Έμ μ΄μ©ν΄ μ€κ°κΉμ§λ§, μ«μκ° λ°μΉΌμ½λ§λκ° λλ©΄ λ§μκ±°λΌκ³ μκ°νλ€. κ·Έλμ μ΄λ ΅μ§ μκ² νμ΄λ₯Ό μμ±νλ€. κ·Έλ¬λ μλκ° μ€κ°μ΄νμ μλκ° λμμ λ€μ 곡λΆλ₯Ό ν΄λ³΄κΈ°λ‘ νλ€.μ΄ μ½λλ 무μ무μνκ² μΆ©κ²©μ μΈ μ½λμλ€. fotλ¬Έμ λ리λκ² μλ λ¨μν x::-