Framework = Frame(틀) + work(동작하다)
쉽게 말해 틀 안에서 동작한다는 뜻이다.
공개된 소스코드를 수정하며 코드 생성을 기여할 수 있다.
IoC : Inversion of Control (제어의 역행)
쉽게 말해, 주도권을 스프링한테 뺏긴 것!
Class 👉 설계도
Object 👉 실체화가 가능한 것
Instance 👉 실체화 된 것 (존재)
A | a | = | new | A(); |
---|---|---|---|---|
클래스 | 객체 | heap 메모리에 넣어라 | 생성자 |
📍 추상적인 것은 실체화가 불가능하다
가구, 과일, 필기구 실체화 불가능! why❓ 추상적 의미이기 때문
의자, 사과, 연필 실체화 가능
Public void make(){
의자 c = new 의자();
}
개발자가 직접 의자라는 Object를 new 해서 실체화 시킨다.
👉 heap 메모리에 띄워지면서 의자의 주소(reference)는 c가 가지고 있다.
❗ 주소 (reference) 는 각각의 메서드가 관리
IoC 쉽게 이해하기
스프링이 개발자가 클래스로 만들어놓은 Object를 읽어서
객체들을 직접 heap 메모리 공간에 띄워줌
의자 Object
가 실체화 되어서 Instance
가 되었다.
heap 메모리 |
---|
의자 |
DI : Dependencey Injection (의존성 주입)
IoC(제어의 역행) 을 통해 모든 class의 메소드에서 공유하여 사용할 수 있다.
👉 Singleton (싱글톤 패턴)
❗ Singleton (싱글톤 패턴)
객체의 인스턴스가 오직 한개만 생성되는 패턴
메모리 낭비 방지 - 고정된 heap 메모리 영역 사용
클래스간 공유 가능 - 전역으로 사용되는 인스턴스 이기 때문