오픈소스 : 소스코드가 공개 되어 있다.
-> 내부를 뜯어 고칠 수 있다.
IOC (Inversion of Controll)
제어를 역전한다. 주도권이 스프링한테 있다 !
ex) 누누는 실체화
가 가능
캐릭터
는 추상적인것이기 때문에 실체화가 불가능하다
instance -> 실체화가 된 것
누누가 게임속에서 눈덩이를 굴리고있다 -> 실체화됨
ex)
가구는 실체화가 불가능하다
의자나 침대는 실체화가 가능하기때문에 object다
이게 현실로 튀어나오면 instance가 된다 !
: 개발자가 의자를 new해서 메모리 heap에 올리게 되면
public void make(){
chair s = new chair();
}
s는 그 메서드가 실행되는 순간에만 있음
다른 메서드에서 사용하려면 아래처럼 해야한다.
public void use(){
chair s = new chair();
}
하지만 이렇게 하면 새로운 s가 또 추가됨
두 s는 서로 같지 않음
이 주소를 관리하는것은 각각의 메서드이고
공유 로직을 짜기 힘들다.
그래서 Spring이 IOC를 해줌
Object를 읽어서 직접 메모리에 올려준다.
원래는 new를 해서 그 객체의 주소를 내가 관리했다
이제는 Spring이 스캔해서 오브젝트를 메모리에 띄움 (IOC)
Spring이 관리하는 이 객체를 내가 원하는 모든곳에서 가져와서 사용할 수 있다 (DI)
의자를 사용하고 싶으면 그대로 가져가서 사용할 수 있다 !
이 글은 인프런에서 최주호 강사님의 스프링부트 개념정리(이론)을 보고 정리한 글입니다.