인터넷 5

[컴퓨터 네트워크] TCP와 UDP

한양대학교 이석복 교수님 강의를 들으며 작성했습니다. TCP(Protocol)신뢰성 있고 순서가 보장flow control(receiver의 속도에 맞춰 데이터 보냄)congestion control(sender slow down sending rate when network congested)HTTP(Web), FTP(file transfer), Telnet(remote login), SMTP(email)UDP(Protocol)신뢰성 없음connectionlessstreaming media, teleconferencing, DNS, Internet telephony* 패킷은 비트 단위Packet switching VS Circuit switching1Mbps/s linkeach user: 100 kb..

[SPRING 고급] 프록시와 내부 호출, 프록시 기술 한계

프록시와 내부 호출-문제스프링은 프록시 방식의 AOP를 사용한다. 따라서 AOP를 적용하려면 항상 프록시를 통해서 대상 객체(target)을 호출해야 한다. 이렇게 해야 프록시에서 먼저 어드바이스를 호출하고 이후에 대상 객체를 호출한다.만약 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않고 어드바이스도 호출되지 않는다.대상 객체의 내부에서 메서드 호출이 발생하면 프록시를 거치지 않고 대상 객체를 직접 호출하는 문제가 발생한다. AOP proxy는 target.external()을 호출한다. 그런데 여기서 문제는 callServiceV0.external() 안엥서 internal()을 호출할 때 발생한다. 이떄는 CallLogAspect 어드바이스가 호출되지 않는다. 자바 언어에..

스터디/Spring 2025.01.08

[SPRING 고급] 포인트컷 지시자

📍포인트컷 지시자execution: 메서드 실행 조인 포인트를 매칭한다. 스프링 AOP에서 가장 많이 사용하고 기능도 복잡within: 특정 타입 내의 조인 포인트를 매칭args: 인자가 주어진 타입의 인스턴스인 조인 포인트this: 스프링 빈 객체(스프링 AOP 프록시)를 대상으로 하는 조인 포인트target: Target 객체(스프링 AOP 프록시가 가르키는 실제 대상)를 대상으로 하는 조인 포인트@target: 실행 객체의 클래스에 주어진 타입의 애노테이션이 있는 조인 포인트@within: 주어진 애노테이션이 있는 타입 내 조인 포인트@annotation: 메서드가 주어진 어노테이션을 가지고 있는 조인 포인트를 매칭@args: 전달된 실제 인수의 런타임 타입이 주어진 타입의 애노테이션을 갖는 조인..

스터디/Spring 2025.01.07

[SPRING 고급] @Aspect와 스프링 AOP

📍@Aspect 프록시스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저(Advisor)를 만들어서 스프링 빈으로 등록하면 된다. 그러면 나머지는 앞서 배운 자동 프록시 생성기가 모두 자동으로 처리해준다. 자동 프록시 생성기는 스프링 빈으로 등록된 어드바이저를 찾고, 스프링 빈들에 자동으로 프록시를 적용해준다  @Slf4j@Aspectpublic class LogTraceAspect { private final LogTrace logTrace; public LogTraceAspect(LogTrace logTrace) { this.logTrace = logTrace; } @Around("execution(* hello.proxy.ap..

스터디/Spring 2025.01.03

[SPRING 고급] 프록시팩토리와 포인트컷,어드바이스,어드바이저

📍프록시 팩토리프록시 팩토리는 인터페이스가 있으면 JDK 동적 프록시를 사용하고, 구현 클래스만 있다면 CGLIB를 사용한다. 그리고 이 설정을 변경할 수도 있다스프링은 부가 기능을 적용할 때에 Advice라는 새로운 개념을 도입했다.개발자는 InvocationHandler나 MethodInterceptor를 신경쓰지 않고 Advice만 만들면 된다. 결과적으로 InvocationHandler나 MethodInterceptor는 Advice를 호출하게 된다.프록시 팩토리를 사용하면 Advice를 호출하는 전용 InvocationHandler, MethodInterceptor를 내부에서 사용한다. 특정 조건에 맞을 때 프록시 로직을 적용하는 기능도 공통으로 제공하기 위해서 Pointcut 이라는 개념을 ..

스터디/Spring 2024.12.29