본문 바로가기

Framework8

[Spring] 스프링 핵심 원리 (기본) - 3. 스프링 컨테이너와 스프링 빈 3. 스프링 컨테이너 & 스프링 빈 3.1 스프링 컨테이너의 생성 과정 3.1.1 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스프링 컨테이너라 하며, 인터페이스이다. 스프링 컨테이너는 어노테이션 기반 또는 XML 기반의 자바 설정 클래스로 만들 수 있다. (자바 설정 클래스 기반 스프링 컨테이너) new AnnotationConfigApplicationContext(AppConfig.class);는 ApplicationContext(인터페이스)의 '구현체'이다. ### 3.1.2 스프링 빈 등록 스프링 컨테이너는 파라미.. 2023. 2. 3.
[Spring] 스프링 핵심 원리 (기본) - 2. 설계와 개발, 객체 지향 원리의 적용 2. 스프링 핵심 원리 - 예제 2.1 주문 도메인 설계 주문 도메인의 협력, 역할, 책임 주문 도메인 전체 주문 클래스 다이어그램 주문 객체 다이어그램 2.2 주문 도메인 개발 public class OrderServiceImpl implements OrderService { private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); // private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); } 위 코드는 OCP와 DIP 원칙을 동시에 어긴다. 기능을 확장하기 위해 클라이언트 코드에 영향을 주기 때문에 OCP를 위반하고, 주문 서비스 클라이언트(OrderServ.. 2023. 2. 2.
[Spring] 스프링 핵심 원리 (기본) - 1. 객체 지향 설계와 스프링 1. 개괄 1.1 스프링부트(Spring Boot)란 스프링은 편하게 사용하기 위한 프레임워크이다. 본질적으로 스프링이란 자바(Java) 기반 프레임워크이기 때문에 '객체 지향' 특징을 잘 살려낼 수 있어 좋은 객체 지향 애플리케이션을 개발할 수 있도록 지원해주는 도구이다. 1.2 객체 지향 특징 객체 지향 프로그래밍의 의미는 컴퓨터 프로그램을 명령어 목록으로 보는 것이 아닌 여러 개의 독립적인 객체 단위로 보는 것을 말한다. 각 객체는 서로 메세지를 주고 받고 데이터를 처리할 수 있도록 '협력'하고, 프로그램을 갈아 끼우듯이 '유연'하고 '변경'이 용이하게 만들어주기 때문에 대규모 소프트웨어 개발에 많이 사용한다. 이를 위해, 가장 중요한 특성으로 추상화, 캡슐화, 상속성, 다형성을 갖는데, 이중에 '.. 2023. 2. 2.