반응형

Web3.0의 시맨틱 웹이 표준화 되고있는 시대이다.

이시대에서 Web2.0의 주요 패러다임에 대해 한번정도 정리해보는 것도 나쁘지 않다.

Ajax 강의준비를 위해 간단히 Ria의 개념을 알아보고 넘어가도록 하겠다.

[1] RIA의 정의
RIA는 Rich Internet Application 의 약어다. C/S 간의 관계에서 웹은 계속적으로 진화해 왔으니 아직까지, 일반 데스크탑 Application 프로그램처럼 다이나믹하고, 유저의 인터페이스가 편하지 않은 것이 사실이었다. 그래서 Macromedia사에서 2002년 RIA를 처음 소개 하게 되었다. RIA란, 전통적인 데스크톱 응용 프로그램의 특징과 기능을 가지는  웹 응용 프로그램이다.

결과적으로 유저입장에서 이페이지 저 페이지 왔다리 갔다리 하는 인터페이스는 사용자 입장에서 매우 불편하다. 이 모든 처리과정을 한페이지에서 깜박거림현상(새로고침) 없이 할 수 있도록 지원해주는 기능을 제공해 준다.

[2] RIA의 기술들

[ AJAX/DHTML ]
JavaScript와 XML를 이용한 비동기 호출을 이용하는 방식이다. 현재 여러 업체에서 사용중에 있으며, 주요 엔진으로는 prototype, jquery 등등의 Ajax 엔진이 존재한다.

[ FLASH ]
ADOBE 사에서 개발한 그래픽 개발방법으로, ActionScript를 이용하여 다이나믹한 사용자 인터페이스를 구현 할수 있도록 되어있다. 현재 FLEX의 발전으로 이어지고 있다.

[FLEX]
ADOBE 사에서 소개한 엔터프라이즈 개발을 목적으로 한 플랫폼이다. 플래쉬와 같이 SWF 파일의 확장자로 구현되긴 하지만, FLASH에 비해 다양한 비동기 통신이 가능하다. (현재 cgv예매 사이트가 flex로 개발된 대표적인 예이다.)

[ ActiveX ]
MS사에서 개발한 위대한 걸적이다. 주로 C코드를 이용하여 개발을 하게 되며, IE에서는 필수적으로 돌아가는 Application이다. 하지만 현재 HTML5가 표준이되고 있는 시점에서 MS사에서는 ActiveX를 버렸다. 이번 IE9에서는 ActiveX가 완젼히 사라질것인지 주목해볼만한 점이다.

[3] 왜 RIA가 각광받는가.?



구글맵 서비스를 보라... 사용자가 원하는 지역을 선택할때마다 새로운 지도가 보여진다. 흠.. 이걸 어케 구현하였을까?
비동기 통신을 이용한 것이다. 전체를 매번 리로딩 한다고 생각해 보아라.. 깜박거림 현상은 둘쨰 치고라도 유저입장에서
매우 짜증이 나는 일이 아닐 수 없다. 이에. RIA기술을 활용하면, 부분적으로 비동기 통신을 이용해 UPDATE가 가능하다.

[4] 정리
RIA라는 말은 WEB2.0에서 표현된 기술 패러다임의 집합이다. 즉, 특정기술을 일컫는 말은 아니다. 결과적으로 볼떄 이러한 기술들은 모두 유저의 입장에서 좀더 심플하고 reasonable한 GUI 인터페이스를 위해 존재하게 되었다.

ㅋㅋ 과거 안철수 연구소 시험문제에서 RIA에 대해 말해 보라 했을때 조금 당황했던 기억이 어렴풋 난다. ㅋㅋ 이젠 학생들에게 좀 더 확실히 설명 할 수 있을 것 같다.

                                                                                                                 - 2010.09.21 랑이씀 -
반응형

'이론개념 > 용어' 카테고리의 다른 글

[ JDK & SDK 차이 ]  (0) 2011.01.24
[ 발명자와 출원인의 차이점? ]  (0) 2011.01.19
[ 정량적 & 정성적 ]  (0) 2010.10.08
[ 단편화 현상 ]  (0) 2010.10.03
[정부프로젝트 관련 용어]  (0) 2010.08.26
반응형
PHP 에서 JQuery 를 이용하여 Ajax를 이용할때 아래와 같은 방법으로 하는것이 가장 이상적이다.

내가 테스트 한 환경은 다음과 같다

WAS : euc-kr
DB : Mysql euc-kr
환경이다.


1. Jquery 를 이용하여 Ajax호출한다.
   ( 단 한글데이터의 경우 encodeURIComponent를 이용하여 UTF-8 로 인코딩 시켜야 한다. )


  params = "mode=getMember";
  params += "&user_id=" + form.pass_id.value;
  params += "&name=" + encodeURIComponent(form.pass_name.value); // (1) UTF-8로 인코딩한다.
  params += "&reg_num1=" + form.pass_regnum1.value;
  params += "&reg_num2=" + form.pass_regnum2.value;
  
  $.ajax({
   type : "POST",
   url : "./member_join_logic.php",
   async: false,
   dataType : "text",
   data : params,
   beforeSend : function(xmlHttpRequest){
   },
   success :  function(msg) {  
    
    var data = eval("(" + msg + ")");

    if(data){
     alert(data[0].NAME); // (4) 결과값을 출력한다.
    }else{
     alert("일치하는 회원정보가 없습니다.");
    }
    },
    error : function(xmlHttpRequest, textStatus, errorThrown){
     alert("회원 실명인증 중 오류가 발생하였습니다. [" + textStatus + "]"); 
    }
   });



2. Mysql Data를 조회한다.
   ( 조회시 한글 파라미터 값은 별도로 euc-kr로 다시 인코딩 시켜서 맵핑시킨다. )


3. 결과값을 요청한 페이지로 json_encode 함수를 이용하여 리턴시킨다.


   $SQL  = " SELECT * FROM testDB WHERE 1=1 ";
   if($user_id){ $SQL .= " AND user_id ='".$user_id."' "; }
   if($name){ $SQL .= " AND name ='".decode_cp949($name)."' "; } // (2) EUC-KR로 인코딩하여 DB에 맵핑한다.
   if($reg_num1){ $SQL .= " AND reg_num1 ='".$reg_num1."' "; }
   if($reg_num2){ $SQL .= " AND reg_num2 = sha1('".$reg_num2."') "; }
   
   $result = mysql_query($SQL);

   
   
     while ($row = mysql_fetch_assoc($result)) {         
          for ($i=0; $i < mysql_num_fields($result); $i++) {
              $info = mysql_fetch_field($result, $i);
      $row[$info->name] = decode_utf8($row[$info->name]); // (3) 결과값을 다시 UTF-8로 인코딩한다.
          }
          $rows[] = $row;
       }
     
       echo json_encode($rows); // JSON 으로 리턴한다.


[ 참조 ]
위 예제에서 사용한 인코딩 함수는 아래와 같다.

  /**
 * UTF-8 => CP949 로 디코딩 Function
 */
 function decode_cp949($data){
  return iconv("UTF-8", "CP949", rawurldecode($data)); 
 }
 
 /**
 * CP949 => UTF-8 로 디코딩 Function
 */
 function decode_utf8($data){
  return iconv("CP949", "UTF-8", rawurldecode($data)); 
 }



4. 최초 요청받은 페이지에서는 받은 값을 출력한다.

위 과정처럼 하면 한글 데이터도 정상적으로 DB와 통신 가능하다.

이제 삽질은 제발 그만하자 흑흑흑....

이상 JQuery를 이용하여 PHP에서 ajax통신시 한글의 문제점 해결방법이다.

반응형

'Program > PHP' 카테고리의 다른 글

[ PHP 파라미터 출력하여 알아보는 방법 ]  (0) 2011.05.30
[ PHP 에서 DB결과 처음포인터 위치하기 ]  (0) 2010.08.28
[ PHP E-mail 전송 ]  (6) 2010.07.03
PHP Excel Download Module  (21) 2010.06.22
[ PHP5 공통모듈 ]  (0) 2010.06.10

+ Recent posts