[Spring] #Spring의 개념
2022. 3. 21. 21:49
728x90
반응형
💡 개념
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 |
---|