2학기 12주차_1

[프로젝트]

프로젝트가 완성이 되었다... 대망의 프로젝트 ㅋㅋㅋ
피씨방 관리 프로그램.(Java를 이용한 PC방 관리 프로그램)

초반의 의욕차서 이기능 저기능을 막 구상했지만..;;
몇개는 빼먹고 또 몇개는 추가 된것도 있다.

일단 회원 관리 부분이 빠졋다.
그리고 자프로그램 하드웨어 제어가 불가 함에 따라 그것도 제외...;;;

하지만, 관리자 부분을 세밀히 추가 시켰고,
관리자의 영업실적또한 파일로 저장 되겠금 만들었다.

사실 관리프로그램과 클라이언트 를 상호 연동시키고,
연결을 끊지 않은채 연결된 채널에 번호를 부여하여
그 번호를 피씨 관리 번호로 만들어서 통신이 되도록 하려 했으나..;;

실패 했다 ㅋㅋㅋㅋ

이부분에 대해서는 인터넷과 책을 많이 찾아 봤는데..;;
어려운건지 잘 쓰이지 않아서 그런지 정보가 없었고,
사실 이방법에 대해서는 금요일에 확정짓고, 프로그램을 변경한것이라..
교수님께 질문도 못했다.
결국에는 맨처음 생각한대로 그냥
클라이언트에서 정보가 발생할때만 연결하여 서버에 넘기고,
연결을 끊는 간단한 방법을 채택하였다.

프로그램자체의 독창성은 없다.
하지만, 인터넷에서 어떠한 참고 자료도 구할수 없는 희귀(?)한 주제 였던지
피씨방 관리 프로그램소스가  공개되있거나 프로그래밍 해봤다는 사람을
못봤다.

-관리프로그램(서버)
전체적인 구성은 3개의 탭으로 이루어진 패널(개별 클래스이다.)들이
메인 프레임에 add가 되어있다.(관리자, 영업화면,환경설정)

영업화면의 경우 Com배열 객체를 가지고 접속되는 클라이언트의
번호를 보고 요청되는 작업을 Com배열 객체에 번호에 맞게 작업하고,
정보를 저장한다. 인계사항을 설정할수도 있는데, 디비에 저장하고 가져오게된다.

관리자의 경우 암호를 입력후 설정 가능하며, 관리자 추가,선택, 관리시작, 암호변경
관리자정보수정등을 할수 있다.
관리자의 정보는 디비에 저장되며 가지고 온다.

환경설정의 경우 각 종목에 맞는 금액을 설정한다. 이역시 암호를 입력하여야 설정가능하다.

모든 패널들에서 이용하는 정보는 Work 클래스의 객체에 저장하고 공유한다.

네트워크 관련 부분은 쓰레드문으로 무한루프를 돌리기때문에 계속 확인하고
클라이언트의 요청을 실시간으로 확인하게 된다.

-클라이언트
매우 간단하게 구성을 하였고,
시작
관리자호출
관리자에게 메세지 보내기.

의 버튼이 존재하며 버튼을 클릭하면
버튼의 값을 읽어와서
그 버튼의 값에 맞는 정보를 String형 변수에 저장하여

서버에 넘겨준다.

예를들어서
시작을 누르면
"(PC번호)/!/!/(작업타입)/!/!/(넘겨줄 정보)"->"/!/!" 스플릿에서 구분자로 사용된다.
의 문자열이 String 형 변수에 저장이 된다.
여기서 PC번호는 맨처음 클라이언트 프로그램을 실행할때
설정하게 되며, 이번호는 서버에서 Com배열 객체 지정하는것에도 사용된다.
작업타입은 1은 시작 2는 호출 3은 메세지출력 이다.
서버는 이 작업타입을 확인하여, 그에 맞는 동작을 하게 된다.
예를 들어 작업타입이 1이면,
서버는 확인후, 다이얼로그 메세지로 몇번컴퓨터가 사용을 시작합니다 라고 메세지를
출력한다.1,2의 경우 넘겨울 정보에 " " 이런식의 공란이 들어가게되고
3의 경우 넘겨줄 정보의 값을 화면에 다이얼로그로 표시한다.

 
좀 아쉬운 부분들이 많지만..;;
그래도 동작하고 초기의 목표였던..
네트워크와 DB를 모두 사용한다는 것에 만족을 한다.

두개중 하나만 사용하면 되는거 였지만..;;
그래도 두개는 약간 하이라이트라고 할수 있는 부분인데
사용안하고 썩히긴 아까웟다.

그리고 채널연동이 힘들어서, 네트워크 부분을 뺄까까지 생각을 했으니.. ㅋㅋㅋ

프로그램의 딱 막히고 한 부분은 역시 네트워크이다.
DB야 뭐 명령어 몇개만 알면 쉬우니까..;;
네트워크를 다대일 통신으로 하는것이 머리속에서는 복잡하게 생각이 나는데
그게 정리가 안되고..;; ㅎㅎㅎ

아무튼 이것에 시간을 많이 뺏긴것도 사실이다.
뭐, 딱히 돌파구를 찾은게 아니라 살짝 비켜나가는 방법을 택해서 아쉬운 점도 크다.

소스의 경우 원래는 공개를 하지 않으려다가..;;
그래도 남겨둘수 있으니까 소스와 DB소스까지 공개하기로 한다.

DB는 MySQL을 사용하였으며, root 아이디로 비번은 dytc1234이다.

그럴일이 있지는 않겠지만..
혹시나 이 프로그램을 참고 하시려는 분들께
당부드리자면..;;

100%완벽한 프로그램이 아니라서 추천드리지 않습니다. ㅋㅋㅋㅋ

그리고 지나다니다 보시는분들..;;
네트워크에서
다대일통신으로 서버는 접속을 끊지않고, 계속 유지하며,
그 접속된 채널에 대해 (정보를 저장할) 객체를 할당해주는 방법은 어떤것이 있을까요?

-------------소스공개---------------

1.관리프로그램(서버) : Manage.java
2.클라이언트 : Client.java
3.DB소스 : Manage.sql

by 날아라숑카 | 2008/12/01 18:29 | 실험프로젝트2학기 | 트랙백 | 덧글(2)

트랙백 주소 : http://dduckjava.egloos.com/tb/1205555
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 김교수 at 2008/12/02 10:19
서버는 쓰레드를 만들어 클라이언트와 통신하고, 성립된 연결에 대해서는 주기적으로 정해진 신호를 주고 받아야 하겠지요.
Commented by 날아라숑카 at 2008/12/02 17:26
제가 그렇게 프로그래밍 한것인데...;;

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶