프록시란?실제 객체를 감싸고 그 객체에 대한 접근을 제어하는 대리자 역할을 하는 객체다프록시는 실제 객체 대신 클라이언트와 상호 작용하며, 필요할 때 실제 객체에 요청을 전달한다스프링은 프록시로 트랜잭션 관리, 로깅, 보안 등 다양한 부가 기능을 제공한다프록시는 스프링 AOP를 구현하는 핵심 기술이다당연한 얘기지만, 빈으로 등록된 객체에만 프록시를 사용할 수 있다프록시의 기본 개념대리자 역할클라이언트의 요청을 받아서 실제 객체에 전달한다이 과정에서 요청을 가로채고, 추가적인 작업을 수행할 수 있다투명성클라이언트는 프록시를 통해 실제 객체와 소통하지만 프록시 뒤에 실제 객체가 있다는 걸 모를 수도 있다프록시는 실제 객체와 동일한 인터페이스를 구현한다프록시 종류JDK 동적 프록시인터페이스를 구현하는 프록시 ..
3가지 방법이 있다@Autowired에 required false 옵션을 준다false 옵션을 주면 해당 빈이 없는 경우에는 아래 메서드를 아예 실행 시키지 않는다@Autowired(required = false)public void setNoBean1(Member noBean1) { 콘솔 출력}주입 받아야하는 빈에 @Nullable 어노테이션을 달아준다빈이 없는 경우에는 null을 반환한다@Autowiredpublic void setNoBean1(@Nullable Member noBean1) { 콘솔 출력}빈을 Optional로 감싸준다빈이 없는 경우 Optional.empty를 반환한다@Autowired(required = false)public void setNoBean1(Optional noBea..
병렬처리란?여러 개의 작업을 동시에 수행해서 전체 처리 시간을 단축하는 방법을 말한다주로 멀티코어 프로세서를 활용하여 하나의 작업을 여러 부분으로 나누고 나눈 부분을 동시에 처리하는 방식이다자바에서는 주로 java.util.stream 패키지의 parallel stream이나 java.util.concurrent 패키지의 여러 클래스나 인터페이스를 사용해서 구현한다장점성능 향상여러 코어를 사용해서 순차적 처리보다 더 빠르게 완료할 수 있다대량의 데이터나 복잡한 계산을 처리할 때 좋다효율적인 자원 활용모든 코어를 효율적으로 사용해서 시스템 자원을 최대한 활용할 수 있다단일 코어에서 작업이 병목 현상을 일으키는 걸 방지한다응답 시간 단축병렬 처리로 작업을 나누어 동시에 처리하면 작업의 응답 시간이 줄어든다스..
람다란 ?익명 함수를 의미한다함수형 프로그래밍을 지원하기 위해 Java 8에서 도입되었다사용하면 코드가 간결해진다는 장점이 있다컬렉션과 Stream API를 사용할 때 매우 유용하다주로 [[함수형 인터페이스]]와 함께 사용한다왜 람다를 사용하나?코드 간결성 및 가독성 향상특히 컬렉션 요소를 처리하는 데 유용하다익명 클래스나 반복적인 코드없이 간단하게 기능을 정의할 수 있다함수형 프로그래밍 지원[[병렬 처리]] 및 스트림 API 강화람다 표현식은 스트림 API를 간결하게 작성할 수 있게 도와준다이벤트 처리 및 콜백 메커니즘 간소화비동기식 프로그래밍에서 콜백을 간단하게 정의할 수 있다함수형 인터페이스Consumerjava.util.function 패키지void accpet(T t)를 가지고 있다주어진 입력 ..