3eung_h10n.log
로그인
3eung_h10n.log
로그인
소프트웨어 아키텍처 - 19(Proxy Architecture Style)
박승현
·
2023년 10월 15일
팔로우
0
0
아키텍처
목록 보기
19/30
Proxy Architecture Style
개요
프록시는 메서드 호출을 객체에 직접적으로 일어나게 하는 대신 프록시 객체를 통해 간접적으로 발생시키는 역할을 함
프록시 객체들은 일반적으로 서비스를 제공하는 객체와 공통 인터페이스나 슈퍼클래스를 공유
프록시의 패턴(다른 객체의 서비스를 투명하게 관리하기 위해 프록시를 사용)
메서드 실행 시간이 오래 걸리는 경우에도 즉시 반환하는 효과를 주는 프록시
프록시가 메서드가 오래 걸리는 작업을 수행해도 클라이언트는 즉시 반환되는 것처럼 보이도록 만들 수 있음
작업의 완료를 대기하지 않고 다른 작업을 수행할떄 유용
다른 기계에 있는 객체가 로컬 객체처럼 보이게 하는 프록시(원격 프록시)
원격 서버에 있는 객체가 로컬에서 있는 것처럼 사용될 수 있게 해줌
원격 서비스 호출 및 분산 시스템에서 객체 통신을 관리할때 유용
서비스 제공 객체에 대한 접근을 제어하는 프록시(액세스 프록시)
클라이언트가 서비스 제공 객체에 직접 접근하는 것을 통제하며 보안 및 권한 관리를 제어
서비스 객체가 실제로 생성되기 전에 그 객체가 존재하는 것처럼 보이게 하는 프록시(가상 프록시)
실제 서비스 객체가 생성되기 전에 클라이언트에게 이미 존재하는 것처럼 보이게 하여 리소스를 효과적으로 관리하고 지연 초기화를 수행
프록시 패턴의 다양한 사용 사례를 통해 서비스 관리와 클라이언트-서버 상호작용을 개선하고 복잡한 시스템에서 투명한 서비스 제공을 지원
투명한 서비스란 클라이언트에게 서비스가 제공되는 것처럼 보이면서 클라이언트에게 실제로 서비스가 어떻게 제공되는지에 대한 세부 정보를 숨기는 것을 의미
서비스가 어디에서 실행되고 어떻게 제공되는지에 대해 사용자가 인식하지 않을 수 있음
프록시 구조
프록시 클래스 다이어그램
Solution
서비스는 직접적으로 접근할 수 없는 객체를 구현
객체에 대한 직접적 접근 대신 접근을 위한 플레이스홀더를 제공
프록시는 서비스를 대표하며 올바른 접근을 보장(프록시는 서비스와 동일한 인터페이스)
클라이언트는 서비스에 접근하기 위해 프록시 사용
프록시의 장,단점
장점
원본 객체에 대한 엑세스 제어
클라이언트가 원본 객체에 직접 접근하는 것을 제어(보안 및 권한 제어 수행)
메모리 절약
원본 객체가 필요할 떄만 생성되거나 초기화
성능 향상
캐시 프록시와 같은 특정 유형의 프록시를 사용하면 결과를 캐시하고 중복된 계산을 피함
기능과 관리의 분리
프록시를 사용하면 핵심 비즈니스 로직과 기능과 같은 핵심 작업을 분리, 코드 유지보수와 확장이 쉬워짐
단점
과도한 복잡성의 위험
프록시가 너무 복잡한 기능을 갖고 있는 경우
간접성 수준
프록시를 사용하면 메서드 호출이 한 단계 추가로 간접적으로 이루어지므로 간접성이 발생
박승현
KMU SW
팔로우
이전 포스트
소프트웨어 아키텍처 - 18(Multi-tiers Architecture Style)
다음 포스트
소프트웨어 아키텍처 - 20(Dispatcher(Load Balancer) Architecture Style
0개의 댓글
댓글 작성