Spring framework

2021. 10. 10. 09:54Cloud Native

    목차
반응형

 

 

About Spring Framework

 

JAVA enterprise 개발에 사용되는 open source framework

JVM 상에서 Groovy와 Kotlin을 지원함

Spring Framework 5.1의 경우 JDK 8+ (Java SE 8+)을 요구하며 JDK 11 LTS를 지원을 제공함Framework의 주요 component를 container로 지칭

 

cf.

  • JAVA Beans
    • JAVA로 작성된 component
  • JSP (JavaServer Pages)
    • HTML 내 JAVA code를 넣어 HTML page를 동적 생성하는 tool
    • Flask라던가 Django가 HTML 내 Python code를 넣어 HTML page를 생성하는 것과 동일 개념
    • JSP MVC architecture
      • Servlet이 controller
      • JSP가 view를 생성
      • Beans가 model

 

Design Philosophy

 

  • 설계의 결정을 최대한 미룰 수 있다.
    • 무엇이든 교체 가능한 구조를 지향한다.
    • 예를들어 persistence를 개발 도중에 교체할 수 있다. 
  • perspectives
    • 다양한 상황을 고려하여 최대한 flexible한 운용 및 개발이 가능하게 한다.
  • backward compatibility
    • JDK version 및 3rd party libralies의 선택을 최대한 신중하게 하여 호환성을 지원한다. 
  • intuitive API
    • 최대한 직관적이고 사용하기 쉬운 API를 제공하도록 한다. 
  • high code quality
    • clean code structure를 지향한다. 
    • 구조적으로 clean하도록 한다. (e.g., no cirdular dependencies)
    • accurate, current, meaningful한 document를 제공한다. 

 

 

Features of The Spring Framework

 

  • 가벼운 framework
    • 일반 자바 객체인 POJO(Plain Old Java Object)로도 개발이 가능
  • DI (Dependency Injection)
    • 객체간의 static 의존성을 제거하여 framework 수준에서 runtime 의존성만 생성
    • 이로서 각 component 객체 개발 시 독립적으로 개별 개발 할 수 있음 (재사용성 극대화)
    • Framework 내 IoC container들이 이를 지원함
  • IoC (Inversion Of Control)
    • 생성된 객체의 control은 contaner들이 처리
  • AOP (Aspect Oriented Programming)
    • 보안, transaction, logging 등 필수 기능들에 대한 개발을 hooking 방식으로 add-on 하여 개발 할 수 있음
  • Transaction 처리
    • XML, Java, propoerty 등의 설정 및 직접 코딩을 통한 transaction 방식 지원 
  • Spring MVC
    • DispatcherServlet이 controller의 역할 수행; 적절한 서비스에 분산
    • 결과는 다양한 형식의 View 서비스들로 표시됨

 

Spring Modules

 

  • Spring Core
    • Beans의 lifecycle 처리에 대한 기능을 제공: IoC, DI, Factory
  • Spring Context
  • Spring DAO
  • SPring ORM
    • Object Relation Mapping framework인 Hibernate, IBatis, JDO등의 integration
  • Spring AOP
    • Python의 Decorator와 유사하게 annotation을 통한 기능의 decoration
    • 코드의 중복 구현을 제거하는 방법
  • Spring Web
  • Spring Web MVC

 

 

 

 

 

반응형

'Cloud Native' 카테고리의 다른 글

서버호스팅, 웹호스팅  (0) 2022.01.08
PHP ? PHP 기본 문법  (0) 2022.01.04
OAuth 2.0  (0) 2021.12.26
SOAP and REST  (0) 2021.11.30
Cloud native  (0) 2021.11.07