본문 바로가기

Back-end/Spring12

10_스프링 컨테이너는 싱글톤을 준수한다. Summary스프링 컨테이너를 사용하면 객체 인스턴스를 싱글톤으로 관리하고 싱글톤에서 생기는 단점도 모두 해결해준다.스프링 컨테이너를 사용하면 기본적으로 싱글톤 방식을 지원한다. (물론 필요하다면 요청할 때마다 다른 참조를 하는 방식도 지원을 한다.)그래서 스프링 컨테이너를 사용하면 된다.그래서 '스프링 컨테이너'를 '싱글톤 컨테이너' 라고 부르기도 한다. @Configuration 어노테이션 덕분에 스프링 컨테이너에서 싱글톤을 유지할 수 있다. 싱글톤?GOF 디자인 패턴의 싱글톤 패턴클래스의 인스턴스가 1개임을 보장한다. (이미 만들어진 객체를 공유한다.)스프링 컨테이너는 기본적으로 싱글톤 방식을 지원한다.싱글톤이 필요한 이유요청을 할 때마다 new를 통해 객체를 만든다면, 몇 천만명의 사용자가 요청한.. 2025. 4. 27.
9_스프링 컨테이너와 스프링 빈 선수 지식선수 지식 : 스프링 컨테이너와 스프링 빈 기초 이론 이해https://hyeonstone.tistory.com/entry/4IoC-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-DI-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B9%88 4_IoC, 스프링 컨테이너, DI, 스프링 빈참고아래 도서를 일부 각색하였습니다. (이해를 위해 저만의 용어를 사용하고 내용을 일부 추가)스프링 부트 3 백엔드 개발자 되기 - 자바편SummaryIoC : 객체의 생성과 관리를 개발자가 하는 것이hyeonstone.tistory.com SummaryApplicationContext 인터페이스는 스프링 컨테이너를 저장하는 저장소이.. 2025. 4. 26.
8_객체지향의 원리 적용 Summary[4-2] 서비스 구현체(클라이언트)에서 인터페이스 = new 구현 객체() 형태로 사용하면 인터페이스와 구현 객체 둘 다에 의존하게 되므로 OCP, DIP 원칙에 위배된다.[4-3~4-7] 이를 해결하기 위해 객체를 관리할 때 AppConfig를 따로 두어 주입(DI) 하는 방식으로 관리하면 OCP, DIP 원칙을 만족시킬 수 있다. (순수 JAVA 사용)[4-8~4-9] Spring으로 스프링 컨테이너와 스프링 빈을 통해 관리할 수 있다. (Spring 사용)의문점 : 스프링 빈으로 객체를 관리하니까 코드만 더 길어지는 것 같다. 어떤 장점이 있을까? -> 다음 챕터에서 의문 해소4-2. OCP, DIP 원칙을 지키지 않은 사례 위 이미지와 같이 현재 주문 시스템을 개발하고 있다.회원 관.. 2025. 4. 25.
7_스프링과 JAVA 객체 지향 (다형성, 객체지향 5대 설계 원칙, 스프링의 역할) 참고 자료이해를 위해 인프런_김영한님의 '스프링 핵심 원리 - 기본편'의 '섹션 2. 객체 지향 설계와 스프링'을 참고하여 쉬운 예시로 작성하였습니다. Summary객체 지향의 핵심은 다형성다형성 = 인터페이스와 클라이언트에 영향을 주지 않고 무한히 구현체를 확장할 수 있다.그런데, 다형성 만으로는 구현 객체를 변경할 때 클라이언트 코드도 함께 변경이 되어야 한다.OCP, DIP 위반Spring Container로 해결할 수 있다. (IoC, DI 개념)// 다형성은 사용했지만, DIP, OCP를 지키지 않은 사례public class MemberService { private MemberRepository memberRepository = new MemoryMemberRepository();}publ.. 2025. 4. 20.