프로그래밍 언어/JAVA, SPRING

SPRING 파헤치기 #1 - SPRING FRAMEWORK

doomole 2023. 9. 22. 15:59
728x90

★ 이 글은 김영한 님의 스프링 핵심 원리 - 기본편을 학습하면서 작성하였습니다.

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-* 를 통해 빌드에 필요한 라이브러리들을 한 번에 가져옴)

스프링과 외부 라이브러리 자동 구성(버전에 대해 사용자가 신경쓰지 않고 자동으로 구성됨)

메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공

 

 

* 피드백이나 문의사항은 댓글로 남겨주세요.