★ 이 글은 김영한 님의 스프링 핵심 원리 - 기본편을 학습하면서 작성하였습니다.
SPRING FRAMEWORK
자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션
핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타
웹 기술 : 스프링 MVC, 스프링 WebFlux
데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원
기술통합 : 캐시, 이메일, 원격접근, 스케줄링
테스트 : 스프링 기반 테스트 지원
언어 : 코틀린, 그루비
핵심 컨셉
자바 언어(객체 지향 언어) 기반의 프레임워크
좋은 객체 지향 어플리케이션을 개발할 수 있도록 도와주는 프레임워크
스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.
다형성이란??
✓ 다형성(확장 가능한 설계)
하나의 객체가 여러 가지 타입을 가질 수 있는 것, 유연하고 변경이 용이하다.
운전자(객체) - 자동차(객체) 관계에서 자동차가 바뀌어도 운전자가 운전을 하는 데 영향이 가지 않는다.
public class A1Repository implements ARepository {
...
}
public class A2Repository implements ARepository {
...
}
public class AService {
private ARepository aRepository = new A1Repository();
}
public class AService {
private ARepository aRepository = new A2Repository();
}
위 코드를 살펴보면, A1Repository를 사용하던 프로젝트에서 기능이 변경되어 A2Repository를 사용할 때, AService의 기능을 변경하지 않고 의존하는 객체를 변경하는 것으로 기능의 변경을 할 수 있다.
즉, Service(클라이언트)를 변경하지 않고, Repository(서버)의 기능을 유연하게 변경할 수 있다.
⚡︎ 다형성의 한계 - 역할 자체(인터페이스)가 변하면, 클라이언트와 서버 모두 큰 변경이 발생한다.(운전자와 자동차 관계에서 자동차가 비행기로 바뀌는 경우)
SPRING BOOT
스프링을 편리하게 사용할 수 있도록 지원, 모든 프로젝트에서 대부분 기본으로 사용
단독으로 실행할 수 있는 스프링 어플리케이션을 쉽게 생성(Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨)
손쉬운 빌드 구성을 위한 starter 종속성 제공(spring-boot-starter-* 를 통해 빌드에 필요한 라이브러리들을 한 번에 가져옴)
스프링과 외부 라이브러리 자동 구성(버전에 대해 사용자가 신경쓰지 않고 자동으로 구성됨)
메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공
* 피드백이나 문의사항은 댓글로 남겨주세요.
'프로그래밍 언어 > JAVA, SPRING' 카테고리의 다른 글
[JPA] 데이터 암/복호화를 위한 @Converter (0) | 2023.10.27 |
---|---|
SPRING 파헤치기 #2 - SOLID (0) | 2023.09.22 |
어노테이션 @Valid와 @Validated (3) | 2023.09.11 |
[SPRING] EXCEL 업로드하여 데이터 처리하기 #2 (12) | 2023.08.22 |
[SPRING] EXCEL 업로드하여 데이터 처리하기 #1 (0) | 2023.08.22 |