스프링은 POJO 프로그래밍을 손쉽게 할 수 있도록 IoC/DI, AOP, PSA 세 가지 기술을 제공한다. 이 세 가지 모두 스프링이 있기 이전에도 여러 가지 형태로 시도됐고, 발전하고 있던 기술이었다. 다만 스프링은 통일성 있고, 세련된 방법으로 자바 엔터프라이즈 개발의 전 영역에 걸쳐 효과적으로 적용될 수 있도록 프레임워크 형태로 제공한다. 제어의 역전 (IoC)과 의존관계 주입 (DI) 왜 두 개의 오브젝트를 분리해서 만들고, 인터페이스를 두어 느슨하게 결합한 뒤, 실제 사용할 대상은 DI를 통해 외부에서 지정하는걸까? DI 방식이 직접 new 연산자를 사용해서 강한 결합을 쓰는 방법보다 나은 점이 무엇일지 의문을 가져본 적이 있을 것이다. 바로 유연한 확장이 가능하게 하기위해서 라고 할 수 있다..
시스템 시스템 제작과 시스템 사용을 분리하라 소프트웨어 시스템은 (애플리케이션 객체를 제작하고 의존성을 서로 ‘연결’하는) 준비 과정과 (준비 과정 이후에 이어지는) 런타임 로직을 분리해야 한다. Main 분리 시스템 생성과 시스템 사용을 분리하는 한 가지 방법으로, 생성과 관련한 코드는 모두 main이나 main이 호출하는 모듈로 옮기고, 나머지 시스템은 모든 객체가 생성되었고 모든 의존성이 연결되었다고 가정한다. 팩토리 객체 생성 시점을 애플리케이션이 결정할 필요가 있을 때 Abstract Factory 패턴을 사용하여 코드를 감춘다. 객체를 생성하는 시점은 애플리케이션이 결정하지만 객체를 생성하는 코드는 애플리케이션이 모른다. 의존성 주입(DI) 사용과 제작을 분리하는 강력한 메커니즘 중 하나이다...
의존성 주입 DI는 디자인 패턴으로 크게 다음과 같이 4가지 방법이 있다. 생성자 주입 setter 주입 필드 주입(@Autowired) 일반 메서드 주입 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법 생성자 호출 시점에 단 1번만 호출되는 것이 보장된다. 불변, 필수 의존 관계에 사용 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepos..
- Total
- Today
- Yesterday
- 코틀린
- 구현
- 김영한
- 노마드
- 문자열
- 정렬
- webflux
- 스프링 부트
- leetcode
- 코테
- MySQL
- 노마드코더
- spring boot
- Algorithm
- 그리디
- 인프런
- 릿코드
- Real MySQL
- 리팩토링
- 알고리즘
- 북클럽
- 스프링부트
- 스프링
- mysql 8.0
- 자료구조
- kotlin
- 데이터베이스
- Spring
- 백준
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |