본문 바로가기
728x90

Spring9

스프링 핵심 원리 기본편 - 챕터 5. 싱글톤 컨테이너 Chapter 5. 싱글톤 컨테이너 웹 애플리케이션과 싱글톤 스프링은 기업용 온라인 서비스 기술을 지원하기 위해서 태어남. 현재 AppConfig는 요청을 할 때 마다 객체를 새로 생성해서 사용하는 방식임. 요청이 많은 웹 애플리케이션의 경우에는 메모리 낭비가 발생하게 됨으로 해당 객체를 딱 1개만 생성하고 공유 할 수 있도록 설계해서 사용한다. 싱글톤 패턴 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴. 스프링 컨테이너를 쓰면 기본적으로 싱글톤으로 객체를 만들어서 사용 할 수 있음. 문제점 - 패턴 구현을 위한 코드가 계속 추가 됨 (getInstacne, private 생성자..) - 클라이언트가 구체 클래스에 의존해서 OCP 원칙을 위반함 - 테스트가 어려움 - 내부 속성을 변경.. 2023. 3. 19.
스프링 핵심 원리 기본편 - 챕터 4 Chapter 4. 스프링 컨테이너와 스프링 빈 스프링 컨테이너 생성 ApplicationContext(인터페이스)를 스프링 컨테이너라 한다. XML 기반으로도 만들 수 있고, 에노테이션 기반의 자바 설정 클래스로도 만들 수 있다. 스프링 컨테이너 생성(AppConfig.class - 구성 정보) -> 스프링 컨테이너 (스프링 빈 저장소) -> 빈 이름, 빈 객체 빈 이름 빈 객체 memberService MemberServiceImpl@x01 orderService OrderServiceImpl@x02 memberRepository MemoryMembmerRepository@03 빈 이름은 항상 다른 이름을 부여 해야 한다. 기존 빈을 덮어버리거나 설정에 따라 오류가 발생한다. 애매한 건 실무에서 사용.. 2023. 3. 12.
스프링 핵심 원리 기본편 - 챕터 3 Chapter 3. 스프링 핵심원리 이해2 - 객체 지향 원리 적용 유연성 없는 이전 예제를 통해서 스프링 컨테이너의 중요성을 이해함 서비스에서 인터페이스를 도입하는 것은 장단점이 있다. 구현체를 변경할 일이 전혀 없다면 인터페이스를 도입하는 것도 비용이 될 수 있다. 변하냐, 변하지 않느냐에 대한 부분에 따라서 결정한다. https://www.inflearn.com/questions/296430/memberservice-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-%EA%B5%AC%ED%98%84-%EC%9D%B4%EC%9C%A0 MemberService 인터페이스 구현 이유 - 인프런 | 질문 & 답변 영한선생님 궁금한게 있습니다. MemberRepository는.. 2023. 3. 10.
스프링 핵심 원리 기본편 - 챕터 1,2 Chapter 1. 객체 지향 설계와 스프링 스프링이란? 자바 언어 기반의 프레임워크 좋은 객체 지향 애플리케이션을 개발 할 수 있게 도와주는 역할을 함 스프링부트는 스프링 프레임워크를 편리하게 사용할 수 있도록 지원함. 단독으로 실행할 수 있는 스프링 애플리케이션을 웹 서버를 내장하여 사용 할 수 있게 함. 좋은 객체 지향 프로그래밍이란? 유연하고 변경이 용이하게 만든다 => 다형성 역할(인터페이스) 구현(객체)로 세상을 구분함으로써 유연하고, 변경이 편리하게 구현 할 수 있음. 클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경 가능함. 인터페이스를 안정적으로 잘 설계하는 것이 필요함 스프링은 다형성을 극대화 하도록 도와준다. 좋은 객체 지향 설계의 5가지 원칙 (SOLID) SRP: 단일.. 2023. 3. 5.
728x90