스프링부트 개념정리 with JPA 1강 - 스프링의 핵심은 무엇인가요?
스프링은 프레임워크
다~
틀 + 동작하다 => 틀 안에서 동작하다. 틀을 제공해줄 테니 틀 안에서 작동할 수 있도록 만들어라.
스프링은 오픈소스
이다~ 직접 뜯어고칠 수가 있음! contribute가 가능
Inversion of Control. 제어
의 역전
. 주도권이 스프링한테 있다!
이게 문제. 오브젝트를 new하면 해당 오브젝트를 new한 메서드 내에서 관리하게 됨.
메서드가 달라질 때 오브젝트들을 공유하기 어려워짐. 인스턴스가 다르기 때문에
이걸 스프링이 공유하기 쉽게 해준다는 거~~
객체의 인스턴스를 한 개만 생성되게 싱글톤 패턴으로 관리해줌.
만들어진 객체들을 스프링이 싹 스캔해서 heap에 올려줌. 내가 올리는 게 아니라 스프링이 올려주고 관리해주는 거! 제어의 역전
IoC
!
class -> 설계도
object -> 실체화가 가능한 것
instance -> 실체화 된 것
https://www.codeit.kr/community/questions/UXVlc3Rpb246NWUzNDUyMjU4MGU1MTMzNzNkOTYyMzZj
설계도(class)를 가지고 object를 만들 수 있다. 만들어진 object 하나 하나를 instance라고 한다.
자동차 설계도(class)를 가지고 자동차(object)를 만들 수 있다. 만들어진 자동차 중 내 자동 차, 다른 자동차 각각을 instance라고 한다.
Dependency Injection. 의존성 주입
스프링은 싱글톤 패턴으로 객체를 구현하는데 구현된 객체를 어느 메서드에서나 사용할 수 있다.
이렇게 필요한 곳에서 가져가서 쓰는 것을 DI
라고 한다.