이번에는 클라이언트-서버 기반으로 구현한 환율 계산기 구조를 살펴보겠다.

이 구조에서는 기존 클라이언트가 수행하는 모든 기능을 서버에서 수행한다. 클라이언트의 기능은 대폭 축소되었음. 클라이언트는 처리할 데이터가 있으면 네트워크를 통해 서버에 전달하고, 서버가 처리한 결과를 네트워크를 통해 다시 받아 결과를 화면에 출력하는 역할만 한다.
코드 1-3은 환율 계산기 프로그램에서 서버가 담당하는 기능을 구현한 소스 코드의 일부이다. 클라이언트가 전송한 데이터와 연산자를 이용해서 계산한 후 결과를 클라이언트로 전송하는 역할을 한다.


코드 1-4는 클라이언트가 담당하는 기능을 구현한 소스의 일부이다.

다음은 클라이언트-서버 기반 프로그램으로 구현한 코드의 실행 결과이다.

클라이언트-서버 기반 프로그램은 기능(로직)이 변경되어도 모두 서버에서 처리하면 되기 때문에 클라이언트 프로그램을 수정할 필요가 없다. 중요한 기능은 서버에서 처리하므로 클라이언트 PC 기반 프로그램보다 데이터 보안 측면에서도 훨씬 우수하다.
하지만 클라이언트-서버 기반 프로그램에도 한계가 있다. 지금처럼 환율 계산기 기능에 파운드와 유로 환율 변환 기능만 단순히 추가하는 경우라면 서버에서 기능을 쉽게 추가할 수 있지만 여기서 끝이 아니다. 사용자가 파운드와 유로를 선택할 수 있도록 셀렉트 박스에 '파운드'와 '유로' 항목을 추가해서 보여주어야 한다. 즉, 로직뿐만 아니라 클라이언트 프로그램도 수정해야 한다.
물론 처음에 살펴본 클라이언트 PC 기반 프로그램보다 데이터 처리 관점에서는 훨씬 좋아졌지만 클라이언트-서버 기반 프로그램 역시 프로그램 화면 변경 시에는 여전히 추가 작업이 필요하다.
'스프링 부트 > 자바 웹을 다루는 기술' 카테고리의 다른 글
| 2.3 동적 웹 프로그래밍 (0) | 2024.01.16 |
|---|---|
| 2.2 정적 웹 프로그래밍 (0) | 2024.01.16 |
| 2.1 웹 프로그래밍의 기본 (0) | 2024.01.16 |
| 1.3 웹 기반 프로그램 동작 방식 (0) | 2024.01.16 |
| 1.1 클라이언트 PC 기반 프로그램 (1) | 2024.01.16 |