Spring 이란 Java Application FrameWork라고 할 수 있다.
Open Source 이기 때문에 자유롭게 사용 할 수 있다.
Pojo 기반의 엔터프라이즈 애플리케이션으로 개발을 쉽고 편하게 할 수 있게 해준다.
JAVA Application을 개발하는데 필요한 하부구조를 포괄적으로 제공하므로
개발자는 Application 개발에 집중할 수 있다. -> Simplify Java Enterprise Development.
스프링의 주요 특징으로는 POJO, DI, AOP, PSA가 있다.
POJO란?
POJO는 Plain Old Java Object 의 약자로
특별한 인터페이스가 구현할 필요가 없고 특별한 클래스를 상속할 필요가 없는 순수객체 Simple Java Class를 말한다.
-> 특정한 기술, 기능에 종속되지않고 내가 필요에 따라 만드는 Simple한 Java Class
POJO는 Spring Container에 의해 설정, 관리된다.
Spring에서는 POJO를 Bean이라고 얘기한다.
DI란?
DI는 Dependency Injection 의 약자로
객체를 직접 생성하는 것이 아닌 외부에서 생성한 뒤 필요한 객체에 주입을 시켜주는 것이다.
DI를 통해서 모듈간의 결합도가 낮아지고 유연성이 높아진다.
의존성을 주입하는 방식에는 생성자 주입, 필드 주입, setter 주입이 있는데,
Spring에서는 생성자 주입을 권장한다.
그 이유는 생성자는 객체 생성시 최초 1회만 호출이 되고 이후 다시 생성되지 않기 때문에
불변 객체를 보장하기 때문이다.
AOP란?
AOP는 Aspect-Oriented Programming의 약자로
어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어 각각의 관점을 기준으로 모듈화 하겠다는 것이다.
ex) 회원가입내에 로그출력 코드가 있다면 이것을 -> 회원가입 모듈 / 로그출력 모듈로 분리하여 모듈화를 하는 것이다.
PSA란?
Portable Service Abstraction의 약자로
서비스들을 추상화시킨 객체를 만들어서 사용자는 PSA에서 제공하는 추상화된 서비스만 이용하면 되고
구체적인 서비스에 대해 신경쓰지 않아도 된다.
PSA는 적절한 서비스를 호출하여 사용자에게 제공한다.
추후에 서비스를 교체하더라도 Application Code에는 변화가 없고 PSA만 변경하면 된다.
'Spring Study' 카테고리의 다른 글
Spring 입문 Study - 정적 컨텐츠, MVC, 템플릿 엔진, API방식 (3) | 2024.03.11 |
---|---|
Spring 입문 Study - Spring 프로젝트 생성, Spring 라이브러리, Spring의 동작 (0) | 2024.03.10 |
[Spring] PageNotFound - No mapping for GET (0) | 2023.09.07 |
[Spring] Dependency Injection (0) | 2023.08.31 |