일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DIP
- jdbc
- 생성자 주입
- 스프링 프레임워크
- 필드 주입
- JPA
- @Configuration
- springboot
- SQL
- 스프링 컨테이너
- spring
- 싱글톤
- db
- 스프링 부트 입문
- assertThat
- 스프링부트
- resultMap
- Javascript
- thymeleaf
- kafka
- 스프링 빈
- java
- sqld
- assertThrows
- mybatis
- DI
- Effective Java
- 스프링 부트
- 스프링
- 스프링 부트 기본
- Today
- Total
목록스프링 프레임워크 (5)
선 조치 후 분석
어노테이션(@) 만드는 방법 + 스프링이 어노테이션을 읽어오는 원리 어노테이션 직접 만들기 @Qualifier("mainDiscountPolicy") 이렇게 문자를 적으면 컴파일 시 타입 체크가 안된다. 예를 들어, "mainnDiscountPolicy"으로 써도 동작 은하지만, 오류가 발생한다. 그래서 다음과 같은 어노테이션을 만들어서 문제를 해결할 수 있다. 1. 필요한 어노테이션들을 얻어오자. Qualifier의 어노테이션들을 그대로 따와서 적용해주자. @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE}) @Retention(Retention..
IOC, DI, 컨테이너 + 프레임워크 vs 라이브러리 차이점 + 제어의 역전 제어의 역전, IOC 이런 단어를 많이 들어봤을 것이다. 이것은 '스프링'에만 국한되는 것이 아니다. 보통은 개발자가 원하는 대로 객체를 생성하고, 그 안에서 생성하고 호출하고 이런 식으로 진행한다. 즉, 개발자가 직접 제어한다. 하지만 제어의 역전의 개념은 내가 호출하는 게 아니라, 프레임워크 같은 게 나 대신에 코드를 호출해주는 것. 제어의 역전 IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 개발자 입장에서는 자연스러운 흐름이다. public class Ord..
전체 흐름 정리 지금까지의 흐름을 정리해보자. 새로운 할인 정책개발 새로운 할인 정책 적용과 문제점 관심사의 분리 AppConfig 리팩터링 새로운 구조와 할인 정책 적용 새로운 할인 정책개발 다형성 덕분에 새로운 정률 할인 정책 코드를 추가로 개발하는 것 자체는 아무 문제가 없음 새로운 할인 정책 적용과 문제점 새로 개발한 정률 할인 정책을 적용하려고 하니 클라이언트 코드인 주문 서비스 구현체도 함께 변경해야 함 주문 서비스 클라이언트 가 인터페이스인 DiscountPolicy 뿐만 아니라, 구현체 클래스인 FixDiscountPolicy도 함께 의존 => DIP 위반 관심사의 분리 애플리케이션을 하나의 공연으로 생각 기존에는 클라이언트가 의존하는 서버 구현 객체를 직접 생성하고, 실행함 비유를 하면 ..
관심사의 분리 + DIP + 객체 지향 + DI 관심사의 분리 애플리케이션을 하나의 공연이라 생각해 보자. 각각의 인터페이스를 배역(배우 역할)이라 생각하자. 그런데! 실제 배역 맞는 배우를 선택하는 것은 누가 하는가? 로미오와 줄리엣 공연을 하면 로미오 역할을 누가 할지 줄리엣 역할을 누가 할지는 배우들이 정 하는 게 아니다. 이전 코드는 마치 로미오 역할(인터페이스)을 하는 레오나르도 디카 프리오(구현체, 배우)가 줄리엣 역할(인터페이스)을 하는 여자 주인공(구현체, 배우)을 직접 초빙하는 것과 같다. 디카 프리 오는 공연도 해야 하고 동시에 여자 주인공도 공연에 직접 초빙해야 하는 다양한 책임을 가지고 있다. public class OrderServiceImpl implements OrderServ..

스프링 종류 이것 이외에도 엄청 많은 프로젝트가 있다. https://spring.io/projects Spring | Projects Spring Framework Provides core support for dependency injection, transaction management, web apps, data access, messaging, and more. spring.io 스프링 프레임워크 핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술 : 스프링 MVC, 스프링 WebFlux 데이터 접근 기술 : 트랜잭션, JDBC, ORM지원, XML 지원 기술 통합 : 캐시, 이메일, 원격 접근, 스케쥴링 테스트 : 스프링 기반 테스트 지원 언어 : 코틀린, 그루비 최근에는 스프..