• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 포스트글 썸네일 이미지
        Spring에서 프록시 사용 2
        starryeye:
        이번 포스팅에서는 JDK 동적 프록시에 대해 알아보겠다. 이전 포스팅까지는.. 적용 대상의 숫자 만큼 프록시 클래스를 직접 만들어 줘야 했다.. -> 프록시의 코드는 동일하지만... 적용 대상이 다르기 때문에 적용 대상 갯수 만큼 모두 만들어줘야 했다.. 이를 해결하는.. 동적 프록시 기술! 동적 프록시 기술을 사용하면 개발자가 직접 프록시 클래스를 만들지 않아도 된다.. (런타임에 객체를 동적으로 만들어준다...) 그 중.. JDK 동적 프록시는 인터페이스 기반으로 프록시를 동적으로 만들어준다. -> 따라서 인터페이스가 필수이다. JDK 동적 프록시에 적용할 로직은 위 캡쳐 사진의... InvoationHander 인터페이스를 구현하여 개발하면 된다. 즉, 프록시의 proxy/decorate 로직과 실..
        • 2022-11-14 20:07:57
      • 포스트글 썸네일 이미지
        Spring에서 프록시 사용 1
        starryeye:
        이전 포스팅에서 프록시 개념을 사용한.. 프록시 패턴과 데코레이터 패턴에 대해 알아보았다.. 프록시 개념 : https://starryeye.tistory.com/106 프록시 패턴 : https://starryeye.tistory.com/107 데코레이터 패턴 : https://starryeye.tistory.com/108 이제 실제로 스프링 프레임워크에서 스프링 컨테이너에 프록시를 도입할 경우의... 3가지 상황별로 알아 보자.. 1. 등록될 스프링 빈의 인터페이스가 있고.. 그 구현체가 수동 등록되어 있을 경우 2. 등록될 스프링 빈의 인터페이스가 없고.. 그냥 그 객체 자체가 수동 등록 되어 있을 경우 3. 컴포넌트 스캔을 사용하여 어노테이션 기반으로 스프링 빈이 자동 등록 될 경우 두 가지(1,..
        • 2022-11-05 23:03:35
      • 포스트글 썸네일 이미지
        Spring에서 자주 쓰이는 디자인 패턴 5
        starryeye:
        프록시 개념을 사용한 프록시 패턴에 이어서.. 똑같이 프록시 개념을 사용하는 데코레이터 패턴에 대해 알아 보자... 데코레이터 패턴은 프록시 개념 중, 부가 기능을 추가한다는 의도를 담고있는 패턴이다. 역시 예제를 통해 알아보자.. 똑같이 프록시 개념을 사용하므로.. 프록시 패턴과 구조는 동일하다.. (프록시 체인 개념도 함께 알아보자.) 위는 각각 클래스 의존관계와 런타임 객체 의존 관계이다. 프록시는 TimeDecorator, MessageDecorator 두개이며.. 실제 Target 객체는 RealComponent 클래스이다. Componet는... 부가기능을 수행할 MessageDecorator 클래스, TimeDecorator 클래스와 실제 객체인 RealComponent의 인터페이스이다. 실..
        • 2022-11-05 21:30:17
      • 포스트글 썸네일 이미지
        Spring에서 자주 쓰이는 디자인 패턴 4
        starryeye:
        이전 포스팅에서.. 프록시의 개념에 대해 알아봤고.. 프록시를 사용하는 의도에 따라 구분되는 두가지 패턴중.. (프록시 패턴, 데코레이터 페턴) 프록시 패턴에 대해 알아보자.. 프록시 패턴은 접근 제어에 초점을 맞추어 사용되는 프록시 개념을 도입한 패턴이다. 예제를 통해 알아보자.. Client(ProxyPatternClient)가 Subject 인터페이스를 의존하고 있다. Proxy(CacheProxy)에 해당하는 구체와 Server(RealSubject)에 해당하는 구체가 동일한 인터페이스(Subject)를 구현하고 있다. 위는 런타임 의존 관계를 표현한 클래스 다이어그램이다. 실제 코드로 알아보자 프록시와 서버가 구현해야할 인터페이스이다. 위는 Subject 인터페이스를 구현한 실제 객체에 해당한다..
        • 2022-11-05 21:04:41
      • 포스트글 썸네일 이미지
        Spring에서 자주 쓰이는 디자인 패턴 3
        starryeye:
        템플릿 메서드 패턴, 전략 패턴(템플릿 콜백 패턴) 에서는.. 사실.. 변하지 않는 부분과 변하는 부분으로 나누어서 패턴을 사용하지 않을 때 보다는.. 더 적은 코드로 따로 따로 분리 하여 코드 관리가 가능 했지만, 결국.. 변하는 코드를 적용하기 위한 모든 클래스에 최소 최초에는 원본 코드를 건드려야한다. -> 개발자의 부담으로 다가온다... 원본 코드도 건드리지 않고 변하는 부분에 해당하는 코드를 적용하도록 해보자.. 이를 위해 프록시 개념에 대해 알아보자.. 위 그림에서는 Client가 Server를 직접 호출 하고 있다. 반면, 위 그림에서는 중간에 Proxy라는게 있어서 Client는 Server를 간접 호출하고 있는 상황이다. 이때, 간접 호출할 수 있도록 도와주는 대리자 계층을 프록시라고 부..
        • 2022-11-05 20:35:22
      • 포스트글 썸네일 이미지
        Spring에서 자주 쓰이는 디자인 패턴 2
        starryeye:
        지난 포스팅에서는 템플릿 메서드 패턴에 대해 알아봤다. 이번엔 전략 패턴에 대해 알아보자. (이를 템플릿 콜백 패턴이라 부르기도 한다.) 전략 패턴을 템플릿 메서드 패턴과 비교하여 알아보자. 공통점은, 변하는 부분과 변하지 않는 부분을 분리 하는데 초점이 맞춰져있다는 것에 있다. 차이점은.. 분리할때 상속이 아닌 위임으로 문제를 해결한다. 클래스 다이어그램으로 알아보자.. Client는 Context라는 클래스를 참조한다. Context는 Strategy라는 인터페이스를 참조한다. Context는 Strategy를 필드로 가지고 있다. (의존관계 주입) -> 선조립(생성 시점에 전략이 정해짐), 후실행 Context의 execute 메서드는 변하지 않는 부분에 해당한다. (템플릿) Strategy의 ca..
        • 2022-10-20 01:51:13
      • 포스트글 썸네일 이미지
        Spring에서 자주 쓰이는 디자인 패턴 1
        starryeye:
        스프링에서 자주 쓰이는 디자인 패턴 중... 템플릿 메서드 패턴에 대해 알아보자.. 템플릿 메서드 패턴은.. 핵심 기능(변하는 부분)과 부가 기능(변하지 않는 부분)을 분리하는데 초첨이 맞춰져 있다. 예를 들면.. 다양한 로직을 처리하는 메서드들의 시작과 끝 시간을 측정하여 걸리는 시간을 측정하는 로그를 남기는 것을 개발하려고 할때.. 시간 측정은 변하지 않는 부분이고..(메서드 별로 로직이 다르지 않음) 해당 메서드의 기존 구현 로직은 변하는 부분이다.(메서드 별로 로직 다름) 클래스 다이어그램으로 알아보자.. Client 클래스는 AbstractTemplate라는 추상 클래스를 참조하고.. execute 메서드를 호출한다. AbstractTemplate는 ClassA, ClassB로 구현된다. 여기서..
        • 2022-10-19 21:31:03
      • 포스트글 썸네일 이미지
        @Controller, @Service, @Repository
        starryeye:
        Spring이 제공하는 어노테이션 중.. @Controller, @Service, @Repository에 대해 알아보자.. 먼저 @Controller이다. @Component의 specialization이라 설명해주고 있다. @Component의 일종이므로, 컴포넌트 스캔에 의해 스프링 컨테이너에 자동으로 등록되는 빈이다. 그리고... handler method에 붙이는 @RequestMapping 어노테이션을 지원해줄 수 있다. 자매품으로 @RestController가 있다. @RestController = @Controller + @ResponseBody @Service이다. @Service 어노테이션은 그냥 @Component와 다를바가 없다. 개발자가 서비스 계층이라 명시 하고 싶을 때 사용한다...
        • 2022-09-09 22:09:44
      조회된 결과가 없습니다.
      [1][2][3]
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바