spring15 ocp, di, srp OCP OCP: 소프트웨어 확장에는 열여 있으나, 변경에는 닫혀 있는 것이다. AppConfig환경에서 예시 @Bean public DiscountPolicy discountPolicy() { //return new FixDiscountPolicy(); return new RateDiscountPolicy(); } 위에서 AppConfig가 의존 관계를 FixDiscountPolicy -> RateDiscountPolicy 변경해서 클라이언트에 주입하니 클라이언트는 변경할 필요가 없다( 변경에 닫혀있다) 사용영역(클라이언트 영역)은 변경 할 필요가 없다, 구성영역만 확장하면된다. DI DI 컨테이너 -> 구현 객체를 생성하고, 연결하는 것을 담당한다. @Configuration public class A.. 2021. 12. 2. spring,... intellij 디버그 디버깅을 통해서 값이 제대로 들어가나 확인을 하려고 했는데 벌레가 제대로 작동을 안한다... 왜 이런가 다시 삽질을 해 보니 .. 왼쪽 하단의 mute breakpoint가 눌러져있었다 이것을 해제하니 벌레가 제대로 작동했다... mute breakpoint - > 브레이크 포인트 음소거.. 2021. 11. 30. DisplayName관련 오류 테스트 코드를 쓰다가 @Test밑에 @DisplayName을 적어주면 결과창에 해당 이름이 뜨는데 갑자기 displayName이 적용이 되지않았다 이유를 생각해보니 혹시 한글이 깨지는가 싶어서 구글링을 하여서 help -> Edit Custom VM에서 -Dfile.encoding=UTF-8을 추가하면 된다고 보았다..적용을 하였으나 실패... 이후에 다시 찾아보니 인텔리제이 설정에서 현재 gradel로 되어있는데 intellij로 변경하니 되었다.. settings로 들어가서 build tool을 고치면된다... 출처 : http://jmlim.github.io/intellij/2020/03/02/intellij-junit5-display-name-did-not-show-issue/ https://it.. 2021. 10. 27. 객체지향 유연하고, 변경에 좋다. 컴퓨터를 부품 끼우는 것처럼 사용하는 것(다형성) 다형성 세상을 역할(인터페이스)과 구현(인테페이스를 구현한 객체)로 구분 실세계에 비유 자동차를 바꿔도 운전자에게 영향을 주지않는다. (자동차를 k3 -> 테슬라로 변경할때) 운전자는 자동차의 역할, 자동차 인터페이스에대해서만 의존 자동차역할만 구현하면 어떠한 자동차를 만들 수 있다 (역할과 구현을 구분, 새로운 자동차가 나와도 클라이언트를 변경할 필요가 없다) 클라이언트는 대상의 인터페이스만 알면된다. 클라이언트는 구현 대상의 내부 구조를 몰라도 된다. 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다. 객체는 협력이다. 혼자 있는 개체는 없다,왜냐? 수많은 클라이언트가 서버가 서로 왔다갔다한다. 다형성의 본질.. 2021. 10. 26. 이전 1 2 3 4 다음