최근 학교 홈페이지 업데이트 작업이 불가능해진 관계로, 기숙사 관리 프로그램이나 여유있게(?) 짜고 있다.
예전에는 전혀 생각지 못했었는데, 요즘에 다시 생각해 보니 통계 출력 플러그인과 주 프로그램과의 자료 송수신을 어떤 방식으로 할까 고민했었는데 해답은 XML이었다.
안그래도, 학교 홈페이지에서 플래시와 xml을 연동하여 학사일정 달력과 최근 수상실적을 구현했었기 때문에 생각날 수 있었던 것이다.
[CODE]
<?xml version="1.0" encoding="euc-kr" ?>
<Today date="2004/04/10">
<Dormitory name="남자 기숙사" shortname="남사">
<Greens>101,102,103,104,105,106,201,202,203,204,205,206,207,208,209,301,302,303,304,305,306,307,308,312</Greens>
<Reds reason="1" reasonstr="담당 구역 청소 미흡">101,102,103,104,105,106,302,319</Reds>
<Reds reason="2" reasonstr="호실 정돈 미흡">302</Reds>
<Reds reason="3" reasonstr="신발 및 음식물 방치">101,206,207,208</Reds>
<Reds reason="4" reasonstr="전원 미소등">101,102</Reds>
<Reds reason="5" reasonstr="호실 잔류">101,102,208,209,301,302</Reds>
<Reds reason="-1" reasonstr="기타">103,104,105</Reds>
</Dormitory>
</Today>
[/CODE]
일일 통계는 주 프로그램에서 이런 식으로 데이터가 넘어오고(콤마로 구분된 숫자들은 호실 목록이다) 이것을 MSXML 3.0으로 파싱하여 VB의 Printer 객체에 뿌려주는 것이다.
이렇게 하면 주 프로그램에서는 통계 결과를 XML로 만들기만 하고 그 뒤의 처리에 대해서는 아무 신경쓸 필요 없이 출력 플러그인이 알아서 해석해서 처리하면 된다. (이번 기숙사 관리 프로그램은 사용자 인터페이스를 제공하는 주 프로그램과 자료 구조를 표현하는 클래스 라이브러리, 통계결과 출력용 플러그인이 모두 ActiveX DLL 방식으로 분리되어 있어 마음대로 기능의 추가/삭제가 가능하다. 특히 출력 플러그인은 개발하기에 따라서 다양한 형식으로 만들 수 있고 사용자는 어떤 플러그인으로 출력할 것인지 선택할 수 있게 되어 있다.)
... 데브피아의 XML 섹션을 돌아다니다가 우연히 매우 좋은 강좌를 하나 발견했다. 바로 XSL에 관한 것인데, 이것을 읽어보니 Standard Printer Output 플러그인에 Browser로 볼 수 있는 XML 플러그인을 하나 더 달아야 겠다. 기왕 프로젝트 하는 거 XSL까지 공부해서 나쁠 건 없잖은가?
강좌첨부: