[MethodChain is]

• Client Computing


• 클라이언트 컴퓨팅이란
- 클라이언트에서 계산 및 체크를 행하기 위한 메커니즘으로
- 이하의 개념을 통칭하기 위해 MethodChain 개발자가 명명한 것입니다.

- 클라이언트 컴퓨팅은 두 가지 메커니즘으로 구성되며
- 이를 실현하기 위해 별도로 프로그램을 작성하지 않는다는 것이 전제 조건입니다.
• Calculator 메커니즘
• Operator 메커니즘

• Calculator 메커니즘



아래 Hash 형태는 서버에서 클라이언트로 보내준 데이터입니다.
{goods :'노트북', dccode:'T', qty:3500, price:120},
goods가 상품명, dccode가 할인율 코드, qty가 수량, price가 단가입니다.

Grid에 출력된 결과를 보면
- 서버에서 보내준 데이터 이외에도 산출금액/할인금액/합계금액/부가세/부가세포함이 있으며
- 할인율 코드에 해당하는 radio에 checked가 되어있습니다.
- 아래와 같은 계산식으로 산출한 것을 알 수 있습니다.
  - 산출금액 = 수량 * 단가
  - dccode에 해당되는 radio를 checked 상태로 설정
  - 할인금액 = 산출금액 * checked된 radio의 할인율

이와 같이 정형화된 계산식이 있다면 서버에서 클라이언트로 전체 데이터를 보내지 말고
필요한 데이터만 보내면 클라이언트에서 계산식을 적용하여 데이터를 표현할 수 있습니다.
그런데, 여기서 중요한 것은 이를 위해 프로그램을 작성해서는 의미가 약하며
이는 일반적인 웹 애플리케이션과 차이가 없습니다.

Calculator 메커니즘은
별도로 프로그램을 작성하지 않고 정형화된 형식을 계산, 표현할 수 있습니다.
아래와 같이 쉬도우 코드(Pseudo Code) 형태로 작성합니다.
calculator: [
     ['qty', '*', 'price', 'amount'],                   //수량 * 단가 = 산출금액
     ['dccode', '==', 'Z', 'rate_zero', true, 'radio'], //dccode 값에 따라 radio를 checked로 설정
     ['dccode', '==', 'F', 'rate_five', true, 'radio'],
     ['dccode', '==', 'T', 'rate_ten', true, 'radio'],
     ['rate_zero', 'checked', 'dc_rate', 0],       //checked된 radio의 할인율을 마이너스 값으로 설정
     ['rate_five', 'checked', 'dc_rate', -5],
     ['rate_ten', 'checked', 'dc_rate', -10],
     ['amount', '*', 'dc_rate', 'discount'],        //산출금액 * checked된 radio의 할인율 = 할인금액
     ['discount', '/', 100, 'discount'],            //퍼센트 반영
     ['amount', '+', 'discount', 'sales_amount'],	      //산출금액 + 할인금액 = 합계금액
     ['sales_amount', '*', 0.1, 'vat_amount', 'floor', 0],    //합계금액 * 0.1 = 부가세(원미만 절삭)
     ['sales_amount', '+', 'vat_amount', 'total_amount']     //합계금액 + 부가세 = 부가세포함
],

Calculator에 +, -, *, +, ==, !=, ㅡ, <=, >, >= 연산자와 max/min을 지정할 수 있으며
CheckBox와 Radio의 checked 상태, Select/Option의 selected 상태에 따라 처리할 수 있습니다.
또한 서제스트에서 선택한 값과 이에 동반된 값을 사용할 수 있습니다.
이를 통해 할 수 있는 것에 대해서는 더 이상 설명이 필요하지 않을 것 같습니다.

별도의 프로그램을 작성하지 않고 데이터를 표현할 수 있게 됨에 따라
다음과 같은 효과가 기대됩니다.
- 다수의 클라이언트 요구를 처리해야 하는 서버 애플리케이션을 단순화할 수 있습니다.
- 통신 사정이 열악한 지역(국가)에서의 효율성은 더욱 높을 것입니다.
- User Interface를 향상시킬 수 있습니다.
- 요구사항에 보다 적극적으로 대응할 수 있습니다.
- 시스템 설계 시간/비용을 줄일 수 있습니다.
- 다수의 개발자가 개발을 하더라도 일관성 있는 코드를 유지할 수 있습니다.
- 높은 프로그램 기술이 요구되지 않습니다.
- 유지보수 비용을 절감할 수 있습니다.

이전 페이지      다음 페이지