Spring이란?
java 웹 어플리케이션을 제작하기 위해 상용되는 엔터프라이즈급 자바 기반 프레임 워크이다.
JAVA 기술들을 더 쉽게 사용할 수 있게 해주는 오픈소스 프레임 워크
[ 개발 환경 ]
- intelliJ IDEA → 자동 완성 기능 제공
- 이클립스
프레임워크란?
어플리케이션을 구축할 때 자주 쓰일 만한 기능들을 한데 모아 놓은 유틸(클래스)들의 모음(집합)
화면 구현, DB연동, 개발 환경 설정 등을 돕는다.
Spring 특징
1)객체 지향성
자바의 특징이라고 할 수 있다.
2)POJO
spring framework 만의 특징
- Plain Old Java Object = 특정 기술에 종속되어 동작하는 것이 아닌 순수한 자바 객체를 의미
- 오래된 방식의 순수한 자바 객체
- 장점 = spring이후에는 다른 기술과 환경에 지나치게 의존하여 객체지향의 장점을 잃어버리지 않아도 된다. → 유연한 코드 작성이 가능하다. 객체 지향성 정신에 부합
- 예시 ) getter , setter 를 가진 단순한 자바 오브젝트는 의존성이 없고 테스트도 용이하며 수정이 편리하므로 pojo로 볼 수 있다.
(1) AOP
Aspect Oriented Programming (관점 지향 프로그래밍)
- 코드를 핵심적, 부가적 관점으로 분류하여 “관점을 기준”으로 각각 모듈화한다.
- 장점 = 핵심 로직에만 집중할 수 있다.
(2) IoC와 DI
a. inversion of Control(제어의 역전)
= 매소드나 객체의 호출 작업을 개발자가 아닌 “프레임워크”가 담당하는 것이다.
[ 기존 ]
(1) 객체 생성
(2) 의존성 객체 생성한다(클래스 내부에서 생성) → 모든 권한은 유저에게 있다.
(3) 의존성 객체 메소드 호출
[Spring ]
(1) 객체 생성
(2) 객체 주입한다(스프링이 만들어 놓은 객체) , 자신의 모든 권한을 스프링에게 맡긴다.
(3) 의존성 객체 메소드 호출
b. Dependency Injection(의존성 주입)
= 객체를 직접 생성하는 것이 아니라 “외부에서” 생성한 후 주입시켜주는 방식이다.
- 방법 = 외부(IOC컨테이너)에서 생성된 B, C객체를 조립(주입)시켜 setter 혹은 생성자를 통해 사용하는 방식
- 장점 = 모듈 간의 결합도가 낮아지므로 쉽게 수정 가능하며 유연성이 높아진다.
3) PSA ( = portable service Abstraction)
환경의 변화와 관계 없이 일관된 접근 환경을 제공하는 추상화 구조
잘 만든 인터페이스
- 대부분의 spring 라이브러리들은 POJO 원칙을 지키게끔 PSA 형식의 추상화가 되어 있다.
- 장점 = 확장성이 좋고 특정 기술에 종속되어 있지 않음
'EFUB' 카테고리의 다른 글
[퍼비톡] Application Context (0) | 2023.09.20 |
---|---|
[세션] 온보딩_프론트엔드 (0) | 2022.03.26 |
[활동] OT (0) | 2022.03.18 |