@Service public class SimpleEventServeice implemets EventService { @Override public void createEvent() { //로직 }
@Override public void publishEvent() { //로직 }
@Override public void deleteEvent() { //로직 }
}
@Component public class AppRunner implemets ApplicationRunner { @Autowired EventService eventService;
@Override public void run(.....){ eventService.createEvent(); eventService.publishEvent(); eventService.deleteEvent(); }
}
위와같이 클래스가 있을 때 void createEvent(); / void publishEvent(); 두메소드의 내부 동작시간을 확인하고 싶을떄 어떻게 해야할까 SimpleEventServeice 내부에 currentTime 와 endTime를 빼는 로직을 추가할 순 있지만 프록시로 구현가능하다.
@Primary //EventService를 여러곳에서 impl했을 때 활용하는것이었다 @Service public class ProxySimpleEvenService implements EventService {
@Autowired SimpleEventService simpleEventService; //EventService simpleEventService; 도 가능
@Override public void createEvent() { long begin = System.currentTimeMilliis(); simpleEventService.createEvent(); print(System.currentTimeMills()-begin); }
@Override public void publishEvent() { long begin = System.currentTimeMilliis(); simpleEventService.publishEvent(); print(System.currentTimeMills()-begin); }
@Override public void deleteEvent() { simpleEventService.deleteEvent(); }
}
위와같이 할경우 프록시 기반으로 구현가능하다. 하지만 위의경우 중복코드 추가, 해당 클래스를 만드는 비용이 든다. 또한 해당기능(타임을 재는것)을 다른곳에도 추가해야 한다면 모든 클래스에 프록시를 만들고 중복 코드를 추가해야되나????
위의 문제점을 해결한것이 스프링AOP 동적으로 프록시 객체를 생성하는 방법이다. 이는 스프링 IoC컨테이너가제공하는 기반 시설과 다이나믹 프록시를 사용하여 문제를 해결함
Posts
1. 스마트홈 구성 입문 - 필립스 휴, 스마트싱스 활용
스마트 홈 구성필립스 휴 조명을 구매하고, 이를 시리를 통한 호출 또는 자동화를 위해선 필립스 휴 브릿지가 필요하는 사실을 늦게 깨달았다.필립스 휴 조명을 더 살 생각은 없었기에 휴 브릿지를 사기엔 애매했고, 스마트싱스 스테이션이 휴 조명과 연동된다는 사실을 알게되었다
다중모니터 사용시 모니터를 bat파일로 제어
트리플 모니터를 사용 중 하나의 모니터는 필요에 따라 편하게 관리하고 싶었다.dual - triple 로 클릭만으로 전환할 수 있게 적용 1.MultiMonitorTool 설치https://www.nirsoft.net/utils/multi_monitor_tool.htm
premiere pro
premiere pro https://www.youtube.com/watch?v=VDVMGcC1zNU 프로젝트 생성 시퀀스 생성 영상 좌측 하단에 업로드 영상 좌측하단에서 우측으로 끌기 오디오 선택 후 우클릭 - 오디오 게인에서 -10 주면 잔잔하게. 오디오는 우측 창
Spring Reactive
리액티브 선언문https://www.reactivemanifesto.org 위에서 말하는 리액티브 시스템의 특징 4가지Responsive - 응답성Resilient - 유연성Elastic - 탄력성Message Driven 리액티브 스트림즈(Reactive Stream