μ€νλ§ νλ μμν¬λ μλ° νλ«νΌμ μν μμ€ μ ν리μΌμ΄μ νλ μμν¬λ‘μ κ°λ¨ν μ€νλ§(Spring)μ΄λΌκ³ λ νλ€. λμ μΈ μΉ μ¬μ΄νΈλ₯Ό κ°λ°νκΈ° μν μ¬λ¬ κ°μ§ μλΉμ€λ₯Ό μ 곡νκ³ μλ€. λνλ―Όκ΅ κ³΅κ³΅κΈ°κ΄μ μΉ μλΉμ€ κ°λ° μ μ¬μ©μ κΆμ₯νκ³ μλ μ μμ λΆ νμ€ νλ μμν¬μ κΈ°λ° κΈ°μ λ‘μ μ°μ΄κ³ μλ€.
β
μ€νλ§μ λ€λ₯Έ νλ μμν¬μ λΉν΄ λ€μκ³Ό κ°μ νΉμ§μ κ°μ§λ€.
-κ²½λ 컨ν μ΄λλ‘μ μλ° κ°μ²΄λ₯Ό μ§μ κ΄λ¦¬νλ€. κ°κ°μ κ°μ²΄ μμ±, μλ©Έκ³Ό κ°μ λΌμ΄ν μ¬μ΄ν΄μ κ΄λ¦¬νλ©° μ€νλ§μΌλ‘λΆν° νμν κ°μ²΄λ₯Ό μ»μ΄μ¬ μ μλ€.
-μ€νλ§μ Plain Old Java Object λ°©μμ νλ μμν¬μ΄λ€. μΌλ°μ μΈ J2EE νλ μμν¬μ λΉν΄ ꡬνμ μν΄ νΉμ ν μΈν°νμ΄μ€λ₯Ό ꡬννκ±°λ μμμ λ°μ νμκ° μμ΄ κΈ°μ‘΄μ μ‘΄μ¬νλ λΌμ΄λΈλ¬λ¦¬ λ±μ μ§μνκΈ°μ μ©μ΄νκ³ κ°μ²΄κ° κ°λ³λ€.
-μ€νλ§μ μ μ΄ λ°μ (IoC : Inversion of Control)μ μ§μνλ€. 컨νΈλ‘€μ μ μ΄κΆμ΄ μ¬μ©μκ° μλλΌ νλ μμν¬μ μμ΄μ νμμ λ°λΌ μ€νλ§μμ μ¬μ©μμ μ½λλ₯Ό νΈμΆνλ€.
-μ€νλ§μ μμ‘΄μ± μ£Όμ (DI : Dependency Injection)μ μ§μνλ€. κ°κ°μ κ³μΈ΅μ΄λ μλΉμ€λ€ κ°μ μμ‘΄μ±μ΄ μ‘΄μ¬ν κ²½μ° νλ μμν¬κ° μλ‘ μ°κ²°μμΌμ€λ€.
-μ€νλ§μ κ΄μ μ§ν₯ νλ‘κ·Έλλ°(AOP : Aspect-Oriented Programming)μ μ§μνλ€. λ°λΌμ νΈλμμ μ΄λ λ‘κΉ , 보μκ³Ό κ°μ΄ μ¬λ¬ λͺ¨λμμ 곡ν΅μ μΌλ‘ μ¬μ©νλ κΈ°λ₯μ κ²½μ° ν΄λΉ κΈ°λ₯μ λΆλ¦¬νμ¬ κ΄λ¦¬ν μ μλ€.
-μ€νλ§μ μμμ±κ³Ό κ΄λ ¨λ λ€μν μλΉμ€λ₯Ό μ§μνλ€. iBATISλ νμ΄λ²λ€μ΄νΈ λ± μ΄λ―Έ μμ±λκ° λμ λ°μ΄ν°λ² μ΄μ€ μ²λ¦¬ λΌμ΄λΈλ¬λ¦¬μ μ°κ²°ν μ μλ μΈν°νμ΄μ€λ₯Ό μ 곡νλ€.
-μ€νλ§μ νμ₯μ±μ΄ λλ€. μ€νλ§ νλ μμν¬μ ν΅ν©νκΈ° μν΄ κ°λ¨νκ² κΈ°μ‘΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό κ°μΈλ μ λλ‘ μ€νλ§μμ μ¬μ©μ΄ κ°λ₯νκΈ° λλ¬Έμ μλ§μ λΌμ΄λΈλ¬λ¦¬κ° μ΄λ―Έ μ€νλ§μμ μ§μλκ³ μκ³ μ€νλ§μμ μ¬μ©λλ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ³λλ‘ λΆλ¦¬νκΈ°λ μ©μ΄νλ€.
β
β
βΆ μ£Όμ λͺ¨λ
β
-μ μ΄ λ°μ 컨ν μ΄λ
μ μ΄ λ°μ (IoC: Inversion of Control) 컨ν μ΄λλ μ€νλ§μ κ°μ₯ μ€μνκ³ ν΅μ¬μ μΈ κΈ°λ₯μΌλ‘μ μλ°μ λ°μ(reflection)μ μ΄μ©ν΄μ κ°μ²΄μ μλͺ μ£ΌκΈ°λ₯Ό κ΄λ¦¬νκ³ μμ‘΄μ± μ£Όμ (Dependency Injection)μ ν΅ν΄ κ° κ³μΈ΅μ΄λ μλΉμ€λ€κ°μ μμ‘΄μ±μ λ§μΆ°μ€λ€. μ΄λ¬ν κΈ°λ₯λ€μ μ£Όλ‘ νκ²½μ€μ μ λ΄λΉνλ XML νμΌμ μν΄ μ€μ λκ³ μνλλ€.
β
-κ΄μ μ§ν₯ νλ‘κ·Έλλ° νλ μμν¬
μ€νλ§μ λ‘κΉ μ΄λ 보μ, νΈλμμ λ± ν΅μ¬μ μΈ λΉμ¦λμ€ λ‘μ§κ³Ό κ΄λ ¨μ΄ μμΌλ μ¬λ¬ κ³³μμ 곡ν΅μ μΌλ‘ μ°μ΄λ κΈ°λ₯λ€μ λΆλ¦¬νμ¬ κ°λ°νκ³ μ€ν μμ μλ‘ μ‘°ν©ν μ μλ κ΄μ μ§ν₯ νλ‘κ·Έλλ°(AOP)μ μ§μνλ€. κΈ°μ‘΄μ λ리 μ¬μ©λκ³ μλ κ°λ ₯ν κ΄μ μ§ν₯ νλ‘κ·Έλλ° νλ μμν¬μΈ AspectJλ λ΄λΆμ μΌλ‘ μ¬μ©ν μ μμΌλ©°, μ€νλ§ μ체μ μΌλ‘ μ§μνλ μ€νμ(Runtime)μ μ‘°ν©νλ λ°©μλ μ§μνλ€.
β
-λ°μ΄ν° μ‘μΈμ€ νλ μμν¬
μ€νλ§μ λ°μ΄ν°λ² μ΄μ€μ μ μνκ³ μλ£λ₯Ό μ μ₯ λ° μ½μ΄μ€κΈ° μν μ¬λ¬ κ°μ§ μ λͺ ν λΌμ΄λΈλ¬λ¦¬, μ¦ JDBC, iBATIS(MyBatis), νμ΄λ²λ€μ΄νΈ λ±μ λν μ§μ κΈ°λ₯μ μ 곡νμ¬ λ°μ΄ν°λ² μ΄μ€ νλ‘κ·Έλλ°μ μ½κ² μ¬μ©ν μ μλ€.
β
-νΈλμμ κ΄λ¦¬ νλ μμν¬
μ€νλ§μ μΆμνλ νΈλμμ κ΄λ¦¬λ₯Ό μ§μνλ©° XML μ€μ νμΌ λ±μ μ΄μ©ν μ μΈμ μΈ λ°©μ λ° νλ‘κ·Έλλ°μ ν΅ν λ°©μμ λͺ¨λ μ§μνλ€.
β
-λͺ¨λΈ-λ·°-컨νΈλ‘€λ¬ ν¨ν΄
μ€νλ§μ μΉ νλ‘κ·Έλ¨λ° κ°λ° μ κ±°μ νμ€μ μΈ λ°©μμΈ Spring MVCλΌ λΆλ¦¬λ λͺ¨λΈ-λ·°-컨νΈλ‘€λ¬(MVC) ν¨ν΄μ μ¬μ©νλ€. DispatcherServletμ΄ Controller μν μ λ΄λΉνμ¬ κ°μ’ μμ²μ μ μ ν μλΉμ€μ λΆμ°μμΌμ£Όλ©° μ΄λ₯Ό κ° μλΉμ€λ€μ΄ μ²λ¦¬λ₯Ό νμ¬ κ²°κ³Όλ₯Ό μμ±νκ³ κ·Έ κ²°κ³Όλ λ€μν νμμ View μλΉμ€λ€λ‘ νλ©΄μ νμλ μ μλ€.
β
-λ°°μΉ νλ μμν¬
μ€νλ§μ νΉμ μκ°λμ μ€ννκ±°λ λμ©λμ μλ£λ₯Ό μ²λ¦¬νλλ° μ°μ΄λ μΌκ΄ μ²λ¦¬(Batch Processing)μ μ§μνλ λ°°μΉ νλ μμν¬λ₯Ό μ 곡νλ€. κΈ°λ³Έμ μΌλ‘ μ€νλ§ λ°°μΉλ Quartz κΈ°λ°μΌλ‘ λμνλ€.
'곡λΆκ΄λ ¨λ©λͺ¨' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Git] ν°λ―Έλ μ°½μμ Gitμ μ¬μ©νκΈ° μν΄ μ°λ λͺ λ Ήμ 리λ μ€ λͺ λ Ήμ΄μ κ°λ€ (0) | 2021.02.17 |
---|---|
Java κ²½λ‘ μ€μ μ΄ μλλ€ (0) | 2021.02.16 |
μλ£κ΅¬μ‘° 곡λΆλ² (0) | 2021.02.11 |
μλ£κ΅¬μ‘° μ± λ¦¬μ€νΈ (0) | 2021.02.11 |
5-8μ£Όμ°¨ λ©λͺ¨ (0) | 2021.02.04 |
λκΈ