스프링 부트3 정리 - 스프링에서 짚고 넘어가야할 개념들!

박경현·2023년 9월 21일
1

스프링 책을 보면서 몇가지 정리를 해보려고 한다!

이번 주에 "파인만 공부법" 이라는 공부법에 꽂혀서 내가 지금까지 공부를 했던
내용들 + 새로운 내용들을 누구나 알기 쉽게 블로그에 작성해보려고 한다!!

시간이 된다면 10월에는 파인만 관련 스터디도 만들어 볼 예정이다!!

스프링에서 어노테이션

자바에서 @ 표시가 있는 어노테이션은 주석이상의 기능을 가진다!
소스코드에 어노테이션을 추가하면 특별한 기능을 사용할 수 있게 된다

클래스와 메서드에 특별한 의미와 기능을 편하게 추가해줘서
코드가 간결해지고 유지보수가 쉬워진다! 생산성++

스프링에서 IoC

IoC는 직역하면 제어의 역전이라고들 직역을 한다!
이런 어려운 단어는 파인만 공부법에 어긋난다! -> 간단하게 내가 관리하던걸 다른 분이 관리 한다! 라고 생각하자!

public class A {
	private B b = new B(); 
    // 이건 내가 직접 new를 적어서 객체를 줬기 때문에 IoC가 아니다!
}

public class IoC_A {
	private B b; // 이렇게 해두면 스프링컨테이너가 객체를 넣어줌!
}

IoC를 왜 사용하고 중요할까를 고민해봤는데 현재 결론이 2가지였다.
1. 내가 매번 각 클래스때마다 객체를 생성해주면 다른 클래스들과 공유하기 어렵다!
2. 소스코드가 복잡해지고 설계를 작성할 때 어려워진다

스프링에서 DI

DI도 영어인데 한국어로 하면 의존성 주입이다! class간 의존성을 클래스 외부에서 주입!
이것도 파인만(?) 스럽게 바꿔보면 "너는 이제부터 애를 의존해!" 라고 말해준거!

@Component
public class A {
	private B b;
}

그렇다면 왜 외부에 의존해야할까?

여기서 의존은 현재 클래스가 바뀌면 다른 클래스도 영향을 가는 것을 말한다!
사실 의존성이 있게 되면 코드를 수정해야할때 다른 클래스의 관련된 코드도 전부 수정해야하는 번거로움이 있다!

그래서 우리는 인터페이스를 이용하여 특정 클래스에 대한 의존성을 유연하게 만들 수 있다

의존성을 더는 우리가 관리 안하고 외부에서 주입 받게 해서 코드를 고칠 필요가 없게 한다!

스프링에서 스프링컨테이너와 Bean

스프링컨테이너는 Bean을 관리해주는 녀석(?)이다.

그렇다면 Bean이 뭘까? 뭔데 관리가 필요할까?

Bean은 스프링컨테이너가 관리하는 객체들 즉 클래스나 메서드를 의미한다!
@Component를 클래스나 메서드에 붙이면 스프링컨테이너가 이제부터 Bean으로 관리!

@Component
public class MyBean {}

차고로 빈으로 등록되면 이름의 첫글자가 소문자로 관리된다 -> myBean 이렇게!!

profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글