스프링

스프링의 3가지 특징

길용쓰 2023. 1. 6. 13:35

스프링 - 자바 플랫폼을 위한 오픈소스 어플리케이션 프레임워크

 

 

스프링의 3가지 특징

 

0)IOC - 제어 역전

프로그램이 라이브러리를 사용 // 프로그램이 프레임워크에게 객체를 제공

 

1)DI - 의존성 주입

객체 생성 -> 의존성 객체 생성이 아닌

객체 생성 -> 의존성 객체 삽입.

의존성 객체를 스스로 만들지 않고 '스프링'이 만들어 놓은 것을 삽입 = IOC

 

"사과" 클래스와 이를 판매하는 "사과 판매" 클래스가 존재한다면

"물건" 클래스와 "물건 판매" 클래스로 바꾸고

 "물건" 클래스를 상속하여 "사과" 클래스를 생성한다

-> 이후 다양한 물건 클래스를 새롭게 생성, 사용 가능하므로

기존 두 클래스의 결합도는 낮아지고 다형성은 상승한다.

 

불변할 의존 관계라면 생성자로,

선택이나 변경 가능성이 있다면 setter를 사용한다.

 

 

 

 

 

2)AOP - 관점 지향 프로그래밍

메인 요소인 비즈니스 로직 외에 

로그나 성능 측정, 권한 체크 등의 부가적인 인프라 로직은 중복되는 부분이 많다

-> 이를 aspect 모듈로 설계, 개발하는 방법

spring에선 프록시 방식을 사용, target class를 부가 기능을 제공하는 프록시로 감싸 실행

(일종의 di라 볼 수 있음)

*OOP = 객체 지향 = 붕어빵 틀

객체를 각각 생성하지 않고 클래스라는 틀을 만들어 좀 더 간편하게 사용

 

 

 

 

3)PSA

JDBC를 사용하든 JPA를 사용하든 스프링이 알아서 추상화하여

트랜잭션 어노테이션으로 간단하게 수행 가능

 

트랜잭션 기능을 aspect 모듈로 만들어 사용 -> AOP

데이터 베이스 종류와 상관없이 동작 -> PSA

해당 기능을 스프링이 실행 -> IOC / DI

 

 

 

 

 

https://velog.io/@kk1112k/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-%EC%A0%95%EB%A6%AC-Spring-%EC%B6%94%EA%B0%80%EC%A4%91

 

백엔드 개발 기술면접 정리 (Spring 추가중)

: 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 : 동적인 웹 사이트 개발하기 위한 여러 가지 서비스를 제공함 : 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정

velog.io

스프링의 전체적인 특징 요약

 

 

 

https://mangkyu.tistory.com/150

 

[Spring] 의존성 주입(Dependency Injection, DI)이란? 및 Spring이 의존성 주입을 지원하는 이유

1. 의존성 주입(Dependency Injection)의 개념과 필요성 [ 의존성 주입(Dependency Injection) 이란? ] Spring 프레임워크는 3가지 핵심 프로그래밍 모델을 지원하고 있는데, 그 중 하나가 의존성 주입(Dependency Inj

mangkyu.tistory.com

https://velog.io/@skyepodium/Spring-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85-4%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95

 

[Spring] 의존성 주입 4가지 방법

의존성 주입 4가지 방법 알아보기

velog.io

https://velog.io/@gillog/Spring-DIDependency-Injection

 

[Spring] DI, IoC 정리

DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로,객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다.DI(의존성 주입)

velog.io

https://mimah.tistory.com/entry/Spring-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85-Dependency-Injection-DI-%EC%98%88%EC%A0%9C

 

[Spring] 의존성 주입 (Dependency Injection, DI) 예제

의존성 주입 (Dependency Injection, DI) MVC 모델을 사용하여 개발한다고 가정할 때 Controller에서는 Service에 있는 메서드를 호출해야 하고, Service에서는 Repository(or DTO,...)에 있는 메서드를 호출해야 한다.

mimah.tistory.com

의존성 주입의 개념과 방법

 

 

https://www.youtube.com/watch?v=Hm0w_9ngDpM&t=656s 

AOP란 무엇인가

 

 

https://sabarada.tistory.com/127

 

[Spring] Spring의 핵심기술 PSA - 개념과 원리

안녕하세요. 오늘은 오랜만에 Spring에 대해서 이야기 해보고자합니다. [Spring] Spring의 정의와 기본 개념 포스팅에서 Spring의 대표적인 핵심가치 3가지로 IoC, AOP, PSA가 있다고 말씀드렸었습니다. 그

sabarada.tistory.com

PSA 요약