리팩토링 (7)
고객의 서버에 설치되는 비즈니스용 CLIENT 프로그램의 모니터링 개발
- 개발 카테고리에 작성해야 겠지만.. 기존에 존재하던 프로그램에 웹 방식의 모니터링 프로그램을 개발해야 하는것임으로 리팩토링으로 넣었다.
필요성
- 고객의 요구사항이라거나 오너나 상급자의 지시가 아닌 편의성을 위해 개발을 진행함
- 고객의 문의 사항 중 대부분이 자신이 발송한 데이터의 개수나 통계자료를 간단히 보고 싶어 함
Jetty
- 경량 웹 프레임워크도 찾아보고 이것저것 많이 찾아봤지만, 프로젝트 자체가 WEB 기반이 아니라 embed 할 수 있는 기능이 필요했고, 주 기능이 아니므로 코딩 양 또한 많지 않아야 했다.
- 간단하게 Servlet 클래스 몇가지를 만들어 Data Base나 JVM, 프로그램 자체 비즈니스 정보를 뽑아 출력
Data Base
- 웹이 주 기능이 아니라 수많은 웹 기능을 넣을순 없었고 최대한 심플하게 필요한 정보만 전달하기 위한 웹 화면을 구성함
- 그 중 Data Base에 접근해 고객사 정보들을 SELECT하고 COUNT를 세는 등 Data Base 작업이 필요한 것들은 REFRESH에 포함시키지 않고, 버튼을 이용해 Data Base에 최대한 접근성을 줄이려 함
- 무엇보다 이것은 주 기능이 아니라 편의성을 위한 것임으로…
JVM
- 대신 JVM 쪽들은 모두 웹 화면에서 10초 간격으로 REFRESH 가능하게 자체 정책을 채웠으며, LOCAL TIME이나 프로그램 총 실행시간, JVM 메모리 정보, 쓰레드 상태, 서비스 상태등이 여기에 해당함.
블록형 웹 화면 구성
- 하나의 웹 화면에 필요한 정보를 효율적으로 표시해야 했음
- 한 화면에 블록 형태의 구분 영역을 만들고 한개의 블록은 하나의 정보만 표시함
무엇보다 모니터링 웹 페이지는 주 기능이 아님
- 이 리팩토링의 핵심은 편의성이고, 간단하게 CLIENT 프로그램의 동작 상태를 확인할 수 있는 페이지면 충분하기에 불필요한 모든 부분을 최소화 하기로 했음