[Spring] #Spring의 개념

2022. 3. 21. 21:49
728x90
반응형

💡 개념


Spring은 엔터프라이즈급 애플리케이션을 만들기 위한 모든 기능을 종합적으로 제공하는

경량화된 설루션으로 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다.

동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있으며 대한민국 공공기관의 웹 서비스 개발 시

사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다. 

 

💡 구조


Spring 삼각형 : Enterprise Application 개발 시 복잡함을 해결하는 Spring의 핵심이라고 할 수 있다.

- POJO (Plain Old Java Object)

  • 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트이다.

- PSA (Portable Service Abstraction)

  • 환경, 세부 기술의 변경과 관계없이 일관된 방식으로 기술에 접근할 수 있게 해주는 설계 원칙이다.

- IoC/DI (Inversion Of Control / Dependency Injection) 

  • IoC : 기존 사용자가 모든 작업을 제어하던 것을 특별한 객체에 모든 것을 위임하여 객체의 생성부터 생명주기 등 모든 객체에 대한 제어권이 넘어간 것을 IOC, 제어의 역전이라고 한다.
  • DI : 객체가 서로 의존하는 관계가 되게 의존성을 주입하는 것이다. 즉, 각 클래스 사이에 필요로 하는 의존관계를 Bean 설정 정보를 바탕으로 Container가 자동으로 연결해 주는 것이다.

IoC/DI는 중요한 개념인 만큼 나중에 따로 포스팅을 할 예정입니다.

- AOP (Aspect Oriented Programming)

  • 핵심기능과 공통기능을 분리시켜 핵심 로직에 영향을 끼치지 않게 공통기능을 끼워 넣는 개발 형태이다.
  • 이렇게 개발함에 따라 무분별하게 중복되는 코드를 한 곳에 모아 중복되는 코드를 제거할 수 있고, 공통기능을 한 곳에 보관해 공통 기능 하나의 수정으로 모든 핵심기능들의 공통기능을 수정할 수 있어 효율적인 유지보수가 가능하다.
  • Advice, JoinPoint, PointCut, Weaving, Aspect, Advisor가 있다.

 

💡 특징


Spring의 대표적인 특징으로는 MVC(Model - View - Controller) 패턴 기반이라는 것이다.

- Controller

  • 사용자가 접근한 URL에 따라 요청을 파악하고 그에 맞는 Method를 호출하여 Service와 함께 비즈니스 로직을 처리한다.
  • 비즈니스 로직 처리 후 생성된 결과를 Model에 저장하고, View에 던져준다.

- Model

  • Model은 Controller에서 받은 데이터를 저장하는 역할을 한다.
  • 데이터 교환을 위한 Java beans로 DTO(Data Transfer Object)를 사용하는데, MVC 흐름 속에서 데이터가 교환될 수 있도록 하는 객체라고 할 수 있다.

- View

  • Controller로부터 받은 Data를 사용자 화면에게 뿌려주는 역할을 한다.
  • 대표적으로 HTML, JSP 등이 이에 해당된다.
728x90
반응형

'Backend > Spring' 카테고리의 다른 글

[SpringBoot] #SpringBoot와 MyBatis를 이용한 REST API  (0) 2022.03.28

BELATED ARTICLES

more