일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- JavaScript
- Java
- 직장인점심
- 성수볼거리
- 직장인
- IntelliJ
- Linux
- 독서일지
- 책읽기
- docker
- 코딩
- 헤드퍼스트디자인패턴
- 상속
- 깨끗한코드
- 헤드퍼스트
- 주니어개발자
- JAVA개발자
- 독서
- 디자인패턴
- 오브젝트
- 성수핫플
- 성수
- DesignPattern
- 개발자
- 책너두
- 객체지향
- 성수직장인
- 성수맛집
- 클린코드
- 객체지향프로그래밍
- Today
- Total
닭발개발
[헤드퍼스트 디자인패턴] 37일차. 488-502pg 본문
37일차
헤드퍼스트 디자인패턴 [7주차_월요일]
488-502pg
요약
**CHAPTER 11. 객체 접근 제어하기 (feat. 프록시 패턴)**
사람들이 좋은 경찰에 접근하는 일을 나쁜 경찰이 제어한다. 패턴에서 나쁜 경찰은 프록시(proxy)이다. 접근을 제어하고 관리한다.
[ 신나는 프록시의 하루 - 프록시의 일 처리과정 살펴보기 ]
1. CEO 모니터링 시작 -> GumballMonitor는 뽑기 기계 원격 객체의 프록시를 가져옴 -> getState(), getCount(), getLocation() 호출
2. 프록시의 getState() 호출 -> 프록시는 이 호출을 원격 서비스로 전달 -> 스켈레톤을 그 요청을 받아서 뽑기기계에 전달
3. GumballMachine은 스켈레톤에게 상태를 리턴 -> 스켈리톤은 리턴값을 직렬화 -> 네트워크로 프록시에게 직렬화한 리턴값 전달 -> 프록시는 리턴값을 역직렬화 -> GumballMonitor에게 리턴
[ 프록시 패턴 정의 ]
- 특정 객체로의 접근을 제어하는 대리인(특정 객체를 대변하는 객체)을 제공한다.
- 프록시 패턴을 사용하면 원격 객체라든가 생성하기 힘든 객체, 보안이 중요한 객체와 같은 다른 객체로의 접근을 제어하는 대리인 객체를 만들 수 있다.
- 실전에는 프록시 패턴의 변종이 더욱 많다. 모든 변종의 공통점은 클라이언트가 실제 객체의 메소드를 호출하면, 그 호출을 중간에 가로챈다는 점.
[ 프록시에서 접근을 제어하는 방법 ]
1. 원격 프록시를 써서 원격 객체로의 접근을 제어할 수 있다.
2. 가상 프록시(virtual proxy)를 써서 생성하기 힘든 자원으로의 접근을 제어할 수 있다.
3. 보호 프록시(protection proxy)를 써서 접근 권한이 필요한 자원으로의 접근을 제어할 수 있다.
[ 원격 프록시 | 가상 프록시 ]
1. 원격 프록시
- 다른 JVM에 들어있는 객체의 대리인에 해당하는 로컬 객체.
- 프록시의 메소드를 호출하면 그 호출이 네트워크로 전달되어 결국 원격 객체의 메소드가 호출된다.
2. 가상 프록시
- 생성하는 데 많은 비용이 드는 객체를 대신한다.
- 진짜 객체가 필요한 상황이 오기 전까지 객체의 생성을 미루는 기능을 제공한다.
발췌
프록시 패턴 : 특정 객체로의 접근을 제어하는 대리인(특정 객체를 대변하는 객체)을 제공한다.
'책책책 책을 읽읍시다‼ ver.개발 > [ 헤드퍼스트 디자인패턴 ]' 카테고리의 다른 글
[헤드퍼스트 디자인패턴] 39일차. 514-527pg | 프록시패턴 : 다양한 변종 프록시 (0) | 2023.06.15 |
---|---|
[헤드퍼스트 디자인패턴] 38일차. 503-513pg | 동적 프록시 활용하여 보호 프록시 만들기 (4) | 2023.06.13 |
[헤드퍼스트 디자인패턴] 36일차. 475-487pg (0) | 2023.06.12 |
[헤드퍼스트 디자인패턴] 35일차. 464-474pg (2) | 2023.06.09 |
[헤드퍼스트 디자인패턴] 34일차. 453-463pg (0) | 2023.06.08 |