κ°μ
- μ€νλ§ νλ μμν¬λ Java νλ«νΌμ μν κ²½λκΈ μ€ν μμ€ μ΄ν리μΌμ΄μ νλ μμν¬μ΄λ€.
- μ€νλ§ νλ μμν¬λ λ¨μ§ μΉμ±μ λ§λ€κΈ° μν΄μλ§ μ‘΄μ¬νμ§λ μμ§λ§, λμ μΈ μΉ μ ν리μΌμ΄μ μ κ°λ°νκΈ° μν΄ μ¬λ¬ κ°μ§ μλΉμ€λ₯Ό μ 곡νλ€.
- νκ΅μ κ²½μ°, 곡곡 κΈ°κ΄μ μΉ μλΉμ€ κ°λ° μ μ¬μ©μ κΆμ₯νλ μ μμ λΆ νμ€νλ μμν¬μ κΈ°λ° κΈ°μ λ‘ μ°μ΄κ³ μλ€.
- μλ° κ°λ°μ μν νλ μμν¬μΈλ§νΌ μ’ μ κ°μ²΄λ₯Ό μμ±νκ³ , 쑰립ν΄μ£Όλ ν΄μ΄λ€.
- POJO Bean Container. 컨ν μ΄λλΌλ ννμ, μ€νλ§μ΄ μ΄ν리μΌμ΄μ κ°μ²΄μ μλͺ μ£ΌκΈ°μ μ€μ μ ν¬ν¨νκ³ κ΄λ¦¬νλ€λ μ μμ λμ¨ κ°λ . λν, myBatisλ Hibernate κ°μ μμ±λ λμ λ°μ΄ν°λ² μ΄μ€ μ²λ¦¬ λΌμ΄λΈλ¬λ¦¬μ μ°κ²°ν μ μλ μΈν°νμ΄μ€λ₯Ό μ 곡νλ€λ λ§₯λ½λ μ‘΄μ¬νλ€.
- IoC(Inversion of Control; μ μ΄ μν)μ ν΅ν΄ μ΄ν리μΌμ΄μ μ λμ¨ν κ²°ν©μ λλͺ¨νλ€. μ¦, 컨νΈλ‘€μ μ μ΄κΆμ΄ μ¬μ©μκ° μλ μ€νλ§ νλ μμν¬μ μμ΄ νμμ λ°λΌ μ€νλ§μ΄ μμ©μμ μ½λλ₯Ό νΈμΆνλ€.
- DI(Dependency Injection; μμ‘΄μ± μ£Όμ )μ ν΅ν΄ κ°κ°μ κ³μΈ΅μ΄λ μλΉμ€λ€ κ° μμ‘΄μ±μ΄ μ‘΄μ¬ν κ²½μ° μ€νλ§ νλ μμν¬κ° μλ‘ μ°κ²°μ ν΄μ€λ€.
- AOP(Aspect-Oriented Programming; κ΄μ μ§ν₯) νλ‘κ·Έλλ°μ μν νλΆν μ§μμ νλ€. -> Filter, Intercepter, AOP
- νΈλμμ κ΄λ¦¬ νλ μμν¬. μΆμνλ νΈλμμ κ΄λ¦¬λ₯Ό μ§μνκ³ .xml, .java, .property λ±μ μ€μ νμΌμ μ΄μ©ν μ μΈμ μΈ λ°©μ λ° νλ‘κ·Έλλ°μ ν΅ν λ°©μ λͺ¨λλ₯Ό μ§μνλ€.
- MVC ν¨ν΄ : μΉ νλ‘κ·Έλλ° κ°λ° μ MVC(Model-View-Controller) ν¨ν΄μ μ¬μ©νλ€. DispatcherServletμ΄ Controller μν μ λ΄λΉν΄μ κ°μ’ μμ²μ μ μ ν μλΉμ€λ‘ λΆμ°ν΄μ£Όκ³ , μ²λ¦¬ κ²°κ³Όλ₯Ό μμ±ν κ²μ λ€μν νμμ View μλΉμ€λ‘ νλ©΄μ νμνλ€.
- λ°°μΉ νλ μμν¬ : μ€νλ§μ νΉμ μκ°λ μ€ννκ±°λ λμ©λμ μλ£λ₯Ό μ²λ¦¬νλλ° μ°μ΄λ μΌκ΄ μ²λ¦¬(Batch Processing)μ μ§μνλ λ°°μΉ νλ μμν¬λ₯Ό μ 곡νλ©°, κΈ°λ³Έ μ€νλ§ λ°°μΉλ Quartz κΈ°λ°μΌλ‘ λμνλ€.
- μ¦, κ³΅ν΅ λΆλΆμ μμ€ μ½λ©μ΄ μ©μ΄νλ©° νμ₯μ±λ λ§€μ° λλ€. λν, κ°λ¨ν μ»΄ν¬λνΈλ‘ 볡μ‘ν μ΄ν리μΌμ΄μ μ ꡬμ±νκ³ μ€μ νλ μ₯μ μ΄ μλ€.
μ€νλ§μ μ£Όμ μ»΄ν¬λνΈ
- POJO(Plain Object Java Object) : μ¬μ©μκ° λ§λ κ°μ²΄. μ€νλ§μ μ¬μ©μκ° λ§λ€ κ°μ²΄μ λν΄μλ λΌμ΄ν μ¬μ΄ν΄ κ΄λ¦¬λ₯Ό μμν΄ μννλ€. μ΄κ²λ€μ μ‘°ν©μΌλ‘ μ ν리μΌμ΄μ μ΄ λ§λ€μ΄μ§λ€.
- AOP : κ΄μ μ§ν₯ νλ‘κ·Έλ¨μΌλ‘ μ¬μ©μλ€μ΄ νΈλμμ μ²λ¦¬/λ‘κΉ /μμΈ μ²λ¦¬λ€μ λ‘μ§μ 곡ν΅μ μΌλ‘ μ²λ¦¬ν μ μλ κΈ°λ₯μ μ 곡νλ€. AOPλ₯Ό μ μ§ν¨λ€λ©΄, λΉμ¦λμ€ λ‘μ§κ³Ό κΈ°ν κ³΅ν΅ λͺ¨λμ΄ μμ΄λ κ²μ λ°©μ§ν΄ κ°λ°μκ° λμ± λΉμ¦λμ€ λͺ¨λΈμ μ§μ€ν μ μκ² λλ€.
- PSA(Portable Service Abstraction) : μ€νλ§μ λ€λ₯Έ μ¬λ¬ λͺ¨λμ μ¬μ©ν λλ λ³λμ μΆμν λ μ΄μ΄λ₯Ό μ 곡νλ€. μλ₯Ό λ€μ΄, JPAλ₯Ό μ¬μ©νλ€κ³ ν λ Spring JPAλ₯Ό μ¬μ©νλ μμΌλ‘ μΆμννκΈ° λλ¬Έμ μ€μ ꡬν λ¨κ³μμ Hibernateλ₯Ό μ¬μ©νλ , EclipseLinkλ₯Ό μ¬μ©νλ μ¬μ©μλ μ΄ λͺ¨λμ μμ‘΄νμ§ μκ³ λ νλ‘κ·Έλ¨μ μ§μ€ν μ μλ€.
μ€νλ§μ λͺ¨λ
- Spring Core : νλ μμν¬μ κ°μ₯ κΈ°λ³Έμ μΈ μμλ‘ IoC(λλ DI-μμ‘΄μ± μ£Όμ -)λ₯Ό μ΄μ©ν΄μ μ ν리μΌμ΄μ μ κ°λ°ν μ μλ νκ²½μ μ 곡ν΄μ€λ€. λ€λ₯Έ λͺ¨λ κΈ°λ₯λ€μ μ΄μ Core μμ λμ¬μ§κ² λλ€. BeanFactoryλ₯Ό κΈ°λ°μΌλ‘ Bean ν΄λμ€λ€μ μ μ΄νλ κΈ°λ₯μ μ§μνλ€.
- Spring Context : Spring Core λ°λ‘ λ€μ μμΌλ©΄μ Spring Coreμμ μ§μνλ κΈ°λ₯ μΈμ μΆκ°μ μΈ κΈ°λ₯κ³Ό μ’ λ μ¬μ΄ κ°λ°μ΄ κ°λ₯νλλ‘ μ§μνλ€. JNDI, EJB λ±μ μν Adaptorλ€μ ν¬ν¨νλ€.
- Spring DAO : JDBC κΈ°λ° νμ DAO κ°λ°μ μ’ λ μ½κ³ , λ μ μ μ½λλ‘, μΌκ΄λ λ°©λ²μΌλ‘ κ°λ°νλλ‘ μ§μνλ€.
- Spring ORM(Object Relation Mapping) : ORM νλ μμν¬μΈ Hibernate, iBatis, JDOμμ κ²°ν©μ μ§μνκΈ° μν κΈ°λ₯. Spring ORMμ μ΄μ©ν΄ μ΄λ¬ν νλ μμν¬μμ ν΅ν©μ΄ μ¬μμ§λ€.
- Spring AOP : νλ μμν¬κ° κ΄μ μ§ν₯ν νλ‘κ·Έλλ°μ ν μ μλλ‘ ν΄μ€λ€. AOP Alliance κΈ°λ° μλμμ κ°λ°νλ€. μ΄λ₯Ό μν΄ Aspect λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡ν΄μ€λ€. μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ νΈλμμ , λ‘κΉ , μ±λ₯ λͺ¨λν°λ§, μΊμ, λ©μλ μ¬μν, μμΈ μ²λ¦¬λ₯Ό μ½κ² ν μ μλ€.
- Spring Data : ν¨μ¨μ μΌλ‘ μ€νλ§μ΄ Persistance Layerμ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν μ μλ κΈ°λ₯μ μ 곡ν΄μ€λ€.
- Spring Messaging : λ§μ΄ν¬λ‘μννΈ MSMQ λ©μΈμ§ 쿼리 λ―Έλ€μ¨μ΄μ μμ©ν λ μΆμνμ λ¨κ³λ₯Ό λμ¬μ£Όλ λͺ¨λμ΄λ€.
- Spring Messaging NMS : Apache ActiveMQ
- Spring Messaging EMS : Tibco Enterprise Message Service(EMS)
- Spring Web : μΉ μ ν리μΌμ΄μ κ°λ°μ νμν Web Application Contextμ Multipart Request λ±μ κΈ°λ₯μ μ§μνλ€. λν, Struts, Webwork κ°μ νλ μμν¬μ ν΅ν©μ μ§μνλ λΆλΆμ λ΄λΉνλ€. ASP.NET μΉ μ ν리μΌμ΄μ μ μμ±ν λ μΆμν λ¨κ³λ₯Ό λμ¬μ£Όλ λͺ¨λμ΄λ€. λ°μ΄ν° λ°μΈλ©, μ ν¨μ± κ²μ¬, ASP.NET νμ΄μ§/컨νΈλ‘€/λͺ¨λ/provider configuration κ°μ ASP.NET μμ 곡ν΅μ μ·¨μ½μ μ ν¨μ¨μ μΌλ‘ λ€λ£¨λλ‘ λμμ£Όλ λͺ¨λμ΄λ€.
- Spring Web MVC : μ€νλ§ νλ μμν¬μμ λ 립μ μΌλ‘ Web UI Layerμμ MVCλ₯Ό μ§μνκΈ° μν κΈ°λ₯μΌλ‘, μ§κΈκΉμ§ Struts, Webworkκ° λ΄λΉνλ κΈ°λ₯λ€μ Spring Web MVCλ₯Ό μ΄μ©ν΄ λ체νλ κ²μ΄ κ°λ₯νλ€. λν, Velocity, Excel, PDFμ κ°μ λ€μν UI κΈ°μ μ μ¬μ©νκΈ° μν APIλ μ 곡νλ€. Spring Coreμ Spring AOP λͺ¨λμ ASP.NET MVC 2 νλ‘μ νΈ μμμ κΈ°λ₯μ μΌλ‘ μ ν΅ν©λλλ‘ λμμ£Όλ λͺ¨λμ΄λ€.
- Spring Testing JUnit : JUnitκ³Όμ ν μ€νΈ ν΅ν©μ μννκΈ° μν λͺ¨λμ΄λ€.
- Spring Scheduling Quartz : Quartz.NET job μ€μΌμ₯΄λ¬ μΈνλΌμ μμ©νλ κ²μ μ§μνλ λͺ¨λμ΄λ€.
μ΄λ° λͺ¨λμ 보면 μ€νλ§μ΄ λ¨μν μΉμ λ§λ€κΈ° μν λͺ©μ μ΄λΌκΈ°λ³΄λ€λ μμ‘΄μ± μ£Όμ μ μ΄μ©ν΄ Java μ ν리μΌμ΄μ μ λ§λ€ μ μκ² λμμ£Όλ νλ μμν¬μΈ κ²μ νμΈν μ μλ€. μ¬κΈ°μ μΆκ°μ μΌλ‘ μΉ MVC λͺ¨λμ μ κ³΅ν΄ μΉ μ±μ ν¨κ³Όμ μΌλ‘ λ§λ€ μ μκ² λμμ£Όλ κ²μ΄λ€.
μ°Έκ³ μλ£
Spring Framework κΈ°λ³Έ κ°λ
Spring μ μ λ° νΉμ§ μ 리