글 작성중... , 용어정리를 이해하기 쉽게 바꾸고 추가할 꺼 더 추가하기 


공부할 때 두가지 타입이 있는 것 같다.
모르는 것이 있으면 다음 단계로 넘어가지 않는 타입,
모르는 거 있어도 그냥 넘어가도 되는 타입.

나같은 경우는 후자인 편이다.
좋은 점은 공부할때 진도가 빨리빨리 나간다는 점,
그리고 전체로 모르는 것을 대충 추측할 수 있게 된다는 점이 있다.
하지만 하나하나 깊숙하게 공부되지 않는다는 단점은 있다.
 
프로그래밍 언어는 엄청나게 많고, 용어는 더 많다.
게다가 줄여서 쓰는 경우가 많기 때문에 그냥 사용하면서도 그게 뭘 의미하는 건데? 하고
물어보면 대답을 못하는 경우가 많은 거 같다.

내가 쓰고 있고, 대충은 알고 있다고 생각해도
용어정도는 한번 정리하고 가는 것이 좋을 것 같다.

이번에 플렉스 스터디 부분이 7장. 플렉스 데이터 연동 부분인데,
요 부분에서 모르는 용어가 꽤 많이 나왔다.
정확히는 많이 들어본 용어들인데, 설명하라고 하면 설명 못할 용어들..
그런 용어를 정리해 보려고 한다.



* 플렉스가 제공하는 데이터 연동방법은 크게 RPC 서비스방식과 데이터 서비스 방식으로 나뉜다.

연동방법 프로토콜 데이터 형태 서버 사이드 App. BlazeDS 실시간메시징
RPC 서비스 Http
Service
HTTP
HTTPS
XML PHP
ASP
JSP
XML
등 DB연결이 지원되는 모든 웹프로그램
선택적 X
Web
Service
HTTP
HTTPS
XML
SOAP 메시지
Web Service를 제공할 수 있는 시스템 선택적 X
Remote
Service
HTTP
HTTPS
AMF
JAVA객체(List,Map)
자바빈즈 클래스 필수 X
데이터
서비스
메시지 서비스 RTMP AMF
JAVA객체(List,Map)
자바빈즈 클래스 필수 O
데이터 관리
서비스
HTTP
RTMP
AMF
JAVA객체(List,Map)
자바빈즈 클래스 LCDS만
가능
O


* RPC : 원격 함수 호출(Remote Procedure Call)
- 정의 : 어떤 컴퓨터에서 떨어져 있는 다른 컴퓨터에서 작동하는 프로그램의 함수를 호출하여 실행결과를 리턴받는 것을 말한다.
- 방식 : 원격 함수 호출을 위해서는 네트워크를 통해 파라미터를 호출하려는 함수에 전달하고 지정된 포맷으로 결과를 리턴 받아야 한다.
- 종류 : 플렉스에서는 HTTP 방식과  WebService 방식, RemoteObject방식이 여기에 해당한다.


* HTTPService 방식 (RPC 방식_1)
브라우저에서 URL을 호출했을 때 XML 형식으로 데이터가 리턴이 되면 사용할 수 있는 방식이다. 즉, HTTP를 이용하여 데이터를 GET이나 POST 방식으로 웹서버로 전송하고 결과를 XML로 받는 방식을 말한다.

* WebService 방식 (RPC 방식_2)
브라우저에서 WSDL이 기술하는 WebService URL에 있는 WebService함수를 호출하고 그 결과를 SOAP(Simple Object Access Protocol) 메시지로 받는 방식이다.  WebService는 HTTP를 기반으로 하여 결과는 [각주:1]SOAP라는 프로토콜에 맞춘 XML을 리턴하게 된다. WebService를 사용하게 할 수 있도록 서버가 제공하는 WebService의 위치, 메소드명,파라미터,리턴값을 정의한 XML 문서가 있어야 하는데 이것이 WSDL(WebService Definition Language)이다.

* RemoteObject 방식 (RPC방식_3)
WAS(Web Application Server)에 디폴로이된 [각주:2]자바빈즈태그를 이용해 세팅하면, 파라미터들이, 자동으로, 빈즈에 담겨 사용할수 있게 된다. EJB에서는 EJB 스펙을 따르라 빈즈를 만들면 원격으로 빈즈에 담은 데이타를 보내고 받을수 있게 된다. ">자바빈즈로 만들어진 메소드를 호출하여 그 결과를 객체형식으로 리턴받는다. 서버측의 Java Object를 호출하여 그 결과를 AMF(Action Message Format)라는 Binary 형식으로 통신하며 Java Data Type과 ActionScript3 Data Type과 바인딩 해서 사용한다. RemoteObject 은 위 두방식이 XML을 기반으로 데이터를 처리하는 것과 달리 객체 배열의 구조를 갖는 바이너리데이터를 처리한다. 따라서 다른 통신방식에 비해 데이터 처리 속도가 빠르고, 속도가 빠르기 때문에 클라이언트에서 수만 건에 이르는 데이터를 가져와 처리하는 애플리케이션을 만드는 데 적당하다.



데이터서비스 방식
클라이언트에서 서버를 호출해야 데이터를 받을 수 있는 RPC방식과는 달리 서버에서 [각주:3]푸쉬하는 데이터가 클라이언트에 전달될 수 있다. 즉, 클라이언트가 화면을 새로고침하지 않아도 서버에서 특정 이벤트나 지정된 시간마다 데이터를 보내어 화면이 자동으로 업데이트 된다. 클라이언트 호출방식에서 구현하지 못했던 모니터링 서비스나 이벤트 알리미 서비스 등 인터랙티브한 서비스를 구현할 수 있다. 또한 대량의 데이터를 처리함에 있어 사용자가 페이지를 열 때마다 모든 데이터를 가져올 필요 없이 작동하는 아키텍처를 구성할 수 있다. 또한 화면 로직과 데이터 로직, 컨트롤 로직이 분리되어 프로젝트를 좀더 효율적으로 진행할 수가 있다. 
메시지 서비스

데이터 관리 서비스
데이터 관리 서비스는 클라이언트와 서버간에 데이터를 동기화하기 위해서 개발자들이 수작업으로 코딩하던 번거로움을 없애고 클라이언트가 변경한 데이터를 즉시 반영해서 볼 수 있도록 했다. 이를 위해서 DataService라는 클래스를 도입했고 여기에는 데이터를 동기화하기위한 다양한 메소드들이 구현되어있다.




* 서비스들의 차이점들 비교하기

1. RPC 서비스 / 데이터 서비스
RPC 서비스는 서버에 데이터를 요청하지 않더라도 서버로부터 데이터를 푸쉬 받을 수 있는 실시간 메시징이 가능하지 않다.
2. HTTPService / WebService / RemoteService
각각 유저화면에서의 특정이벤트가 각 RPC Components를 통해서 Request가 만들어지고 HTTP Service의 경우에는 HTTP포멧(GET or POST)으로 전송되고 Web Service의 경우 SOAP로 전송되며 RemoteService의 경우에는 바이너리 형식의 AMF로 전송되어 Java Object, XML, TEXT등의 데이터로 Response를 전송 받아 클라이언트에서 처리한다.
3. HTTPService,WebService / RemoteService
앞의 두가지는 XML기반으로 데이터를 처리하지만 RemoteService는 바이너리 데이터를 처리한다. 그렇기 때문에 XML보다는 통신 패킷량이 적고 네트웍 전송 속도가 훨씬 빠르다.





참고한 책, 링크

예제로 배우는 Adobe 플렉스(개정판) 상세보기

BlazeDS의 데이타 연동 방식

http://blog.jidolstar.com/363

Flex Data Services 2 이해와 활용
http://kr.blog.yahoo.com/i056695/1071
  1. 1. SOAP : Simple Object Access Protocol, XML을 웹상에서 전송하기 위한 프로토콜 [본문으로]
  2. 자바빈즈란, 기본적으로 데이타를 저장하기 위한, 멤버변수와, 데이타를 컨트롤하는 setter/getter메소드를 가지고 있는 클래스를 일컫는 말 [본문으로]
  3. 푸쉬와 폴링 : 푸쉬는 서버가 주체가 되어 클라이언트로 데이터를 일정 주기로 전송하는 개념이다. 반대로 폴링은 클라이언트가 주체가 되어 서버에게 일정 주기로 데이터를 요청하는 개념이다. [본문으로]

WRITTEN BY
뮤네

,