Web Back-end/JSP & Spring

Spring Framework란? #1

develop_study 2021. 10. 19. 15:38
반응형

 

1. Spring Framework 개요

Java 플랫폼을 위한 오픈소스 어플리케이션.

 

2002년 로드 존슨이 출판한 저서에서(Expert One-On-One J2EE Design and Development) 선보인 코드를 기반으로 시작

 

 

애플리케이션 프레임워크 : 특정 계층이나 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크.

경량급 프레임워크 : 기존에 사용하던 EJB(Enterprise JavaBeans) 등 이전 세대의 프레임워크에 비해 경량임

 

특징 및 장점

엔터프라이즈 개발에 용이, 오픈소스가 공개 되어있어 유지 및 보수가 용이


 

주요 개념

 

AOP(Aspect-Oriented Programming) : 관점 지향 프로그래밍

- 기능의 관심사를 핵심(종단)/횡단 관심사로 각각 구분하여 핵심(종단)관심에 집중하고 횡단 관심사는 시스템(Framework)에서 담당하도록 함.

- 예를들어 상품 판매 페이지를 제작할 경우 개발자는 상품등록, 상품조회, 결제 기능 개발에 집중하고 프레임워크에서 횡단 관심사인 로깅/보안/트랜잭션 기능을 담당

 

 

IOC(Inversion of Control) : 제어의 역전

- 프로그램의 흐름을 개발자가 아닌 프레임워크(스프링컨테이너) 가 주도함을 의미,

- 스프링 컨테이너가 제어권을 가짐으로서 DI, AOP가 가능해짐

 

DI(Dependency Injection) : 의존성 주입

- 객체간의 의존성을 자신의 내부코드가 아닌 외부의 주입으로 가능하게 하는것, 외부의 설정파일 등을 통해 정의함.

- 의존 관계 설정이 컴파일시가 아닌 실행시에 이루어지기 때문에 모듈간의 결합도를 낮춤

- 코드 재사용을 높여서 작성된 모듈을 여러곳에서 소스코드 수정없이 사용이 가능

 

PSA (Portable Service Abstractions) : 간편한 서비스 추상화

- 환경의 변화와 관계없이 일관된 방식의 기술로 접근 환경을 제공하려는 추상화 구조를 뜻함.

- 추상화란 하위 시스템의 공통점을 뽑아내서 분리시키는 것

- 추상화를 하면 하위 시스템이 어떤 것인지 알지 못하거나 하위 시스템이 변경되어도 일관된 방법으로 접근이 가능하다.

- 예를들면 , 일반적인 Mybatis는 다른 java Framework에서 사용가능한 라이브러리와 Spring에서 지원하는 Mybatis 라이브러리가 다름. Spring에서는 추상화하여 Mybatis라이브러리를 제공하므로 Mybatis가 변경이 되어도 Spring에서 제공되는 라이브러리의 사용법은 변하지 않음.

 

 

POJO (Plain Old Java Object) :

특징

1. 특정 규약에 종속되지 않는다. (EJB, 특정 클래스 등에 종속되지 않는다.)

2. 특정 환경에 종속되지 않는다.

 

장점

자유로운 객체지향적 설계

자동화된 테스트에 유리

 

 

Spring의 실행흐름

 

반응형