* DAO 와 Proxy 패턴 (GOF)
ex) Board 게시판 insert (추가) 기능을 사용할 때
BoardNetworkDao는작업을 서버에 전달하고 서버에서 보낸 작업 결과를
호출자(BoardListener) 에게 리턴하는 일을한다.
BoardListDao는 실제로 호출받은 일을 수행하며 그 결과를 호출자(BoardNetworkDao) 에게 리턴한다.
* DAO 와 Proxy 패턴 (GOF) - 각 역할자의 명칭
용어중요 !
클라이언트측의 BoardNetworkDao Object Request Broker 는 "stub"이라 한다.
서버의 BoardListDao Object Request Broker 는 "skeleton"이라 한다.
* 분산컴퓨팅
중앙 집중식 컴퓨팅은 서버에 문제가 발생하면 모든 시스템이 정지되며
사용자 증가에 따른 서버 증설 비용이 크게 발생했다.
이를 해결하기 위해서 분산 컴퓨팅 방식을 도입했는데
문제는 다른 시스템의 코드를 실행할 수 없었다.
따라서 네트워크를 이용하여 메서드를 호출하는데
표준화가 되어 있지 않아 유지보수가 어려웠다.
이에 따라 RPC, RMI, CORBA, EJB, Rest API 등의 기술이 도입됐다.
RPC: 원격 프로시저 호출을 통해 다른 시스템의 메서드를 호출하는 기술
RMI: Java에서 객체 간의 원격 호출을 지원하는 기술
CORBA: 이기종 언어와 플랫폼 간의 표준화된 방법을 제공하여 메서드 호환성을 유지하는 기술
EJB: 기업용 Java 컴포넌트 모델로, 분산 환경에서 서비스를 제공하는 기술
REST API: HTTP 기반으로 네트워크를 통해 리소스를 조작하는 인터페이스를 제공하는 기술
웹 서비스의 표준화를 위해,
WSDL(Web Services Description Language),
SOAP(Simple Object Access Protocol),
UDDI(Universal Description, Discovery, and Integration)와 같은 기술이 사용된다.
WSDL은 웹 서비스의 인터페이스를 기술하는 언어로, 클라이언트가 웹 서비스를 호출할 수 있도록 도와줍니다. SOAP은 XML 기반의 메시지 프로토콜로, 웹 서비스 간의 통신에 사용됩니다.
UDDI는 웹 서비스를 검색하고 발견하기 위한 디렉토리 서비스를 제공합니다.
* Proxy pattern Structure
분산 컴퓨팅에서 프록시 패턴을 통해서 구현했다.
다른 클래스의 메소드를 자신의 메소드인 것처럼 사용하는 것이다.
* 38. 프록시 객체 자동 생성
* 38. 프록시 객체 자동 생성 - Participants 1
* 38. 프록시 객체 자동 생성 - Participants 2
인터페이스 (BoardDao) 를 통해서
프록시 객체 (ClientApp) 를 구현하고
실체 일을 하는 객체는 (DaoInvocationHandler) 이다.