728x90
강의 복습
싱글톤 패턴:
클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다.
-> 그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다.
그래서 직접 싱글톤 패턴을 만들어 봤었다. 그런데 여러 문제가 있었다.
싱글톤 패턴 문제점:
싱글톤 패턴을 구현하는 코드 자체가 많이 들어간다.
의존관계상 클라이언트가 구체 클래스에 의존한다.
DIP를 위반한다.
클라이언트가 구체 클래스에 의존해서 OCP 원칙을 위반할 가능성이 높다.
테스트하기 어렵다.
내부 속성을 변경하거나 초기화 하기 어렵다.
private 생성자로 자식 클래스를 만들기 어렵다.
결론적으로 유연성이 떨어진다.
안티패턴으로 불리기도 한다.
...단점이 이렇게 많다고?
하지만 스프링 컨테이너를 쓰면 단점을 모두 없에고 장점만 누릴수있다!
객체를 무상태로 설계해야 한다는것만 조심하면 된다.
근데 이부분은 강의 내용은 잘 이해했는데, 경험이 많이 필요한 부분같다.
나중에 프로젝트 할때 잘 기억해두자.
싱글톤 컨테이너 원리:
@Configuration을 추가하면, 자바 바이트코드를 조작해버린다..!
이렇게 CGLIB가 붙은 코드가 실제로 참조된다.
그 원리는 대~충 이런 원리라고 한다.
728x90
'Dev > Spring' 카테고리의 다른 글
7. 의존관계 자동 주입 (0) | 2021.03.28 |
---|---|
6. 컴포넌트 스캔 (0) | 2021.03.28 |
4. 스프링 컨테이너와 스프링 빈 (0) | 2021.03.27 |
2 & 3. 스프링 핵심 원리 이해 (0) | 2021.03.27 |
1. 객체 지향 설계와 스프링 [스프링 핵심 원리-기본편] (0) | 2021.03.24 |