아래 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를 향상시킬 수 있습니다.
- 요구사항에 보다 적극적으로 대응할 수 있습니다.
- 시스템 설계 시간/비용을 줄일 수 있습니다.
- 다수의 개발자가 개발을 하더라도 일관성 있는 코드를 유지할 수 있습니다.
- 높은 프로그램 기술이 요구되지 않습니다.
- 유지보수 비용을 절감할 수 있습니다.
이전 페이지     
다음 페이지