Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스스쿨
- Java
- 메소드
- Python
- docker
- join()
- c#
- thread
- SpringBoot
- 배열
- 저장소
- event
- StringBuilder
- SSL
- Docker Desktop
- array
- Swing
- GIT
- 자바스크립트
- 자바
- Dict
- 스프링부트
- JS
- synchronized
- AssertJ
- class
- 파이썬
- 클래스
- 객체
- JavaScript
Archives
- Today
- Total
정리노트
[스프링부트] IoC, DI, 빈, 스프링 컨테이너, AOP, PSA 본문
- IoC (Inversion of Control) / 직역: 제어의 역전
1. 자바에서는 객체를 사용하기 위해서 객체를 직접 생성한다.
Public class ExJava() {
CrInstance a = new CrInstance();
}
2. IoC는 직접 생성, 제어를 하는 것이 아니라 외부(스프링 컨테이너)에서 관리하는 객체를 가져와서 사용하는 것
Public class ExJava() {
public CrInstance a; // 쉽게 생각한다면 변수를 생성하는 것과 같다.
}
- DI (Dependency Injection) / 직역: 의존성 주입
어떠한 클래스가 다른 클래스에 의존하고 있다는 것으로 객체를 직접 생성하지 않고 스프링 컨테이너에게 넘겨 받게 되는 것을 의미한다. + IoC 를 위한 것
Public class ExJava() {
@Autowired // 객체를 받는다.
CrInstance a; // 쉽게 생각한다면 변수를 생성하는 것과 같다.
}
- 빈
위의 두번째 코드에서처럼 주입받는 객체, 클래스 를 빈이라고 한다.
빈을 스프링 컨테이너에 등록하고 사용하는데 방법은 다영하게 있다.
그 중 한가지는 클래스 앞에 어노테이션 @Component 를 작성하면 된다.
빈은 쉽게 생각해서 스프링에서 제공해주는 객체라고 생각하면 된다.
@Component
public Class A {
}
- 스프링 컨테이너
빈의 Lifecycle을 관리하고 빈을 넘길 수 있게 DI를 지원한다.
- 관점 지향 프로그래밍
AOP (Aspect Oriented Programming)
핵심 관점, 부가 관점으로 나누어 모듈화 하는 것을 의미.
간단한 예시로, 전화발신을 위한 프로그램이 있을 때,
전화발신은 핵심 관점이고 이를 위한 번호 확인, 통신 연결 은 부가관점이 된다.
- PSA
Portable Service Abstraction / 일관된 서비스 추상화
다양한 기술들을 추상화하고 기술들을 유연하게 사용이 가능하도록 하는 것.
728x90
'프로그래밍 > Spring' 카테고리의 다른 글
[스프링부트] DAO, DTO (0) | 2025.03.27 |
---|---|
[스프링부트] 테스트 도구 .함수 (0) | 2024.10.04 |