No older revisions available
No older revisions available
CVS 구조 ¶
~cpp
ProjectZephyrusServer
|
+---- bin : 실행 파일들의 저장고, 현재 빌드에서는 저장하지 않는다
|
+---- document : 코딩중 기록되는 여타 문서들의 보관
| ex) DB query문, Packet정의 문
+---- lib : 컴파일에 필요한 라이브러리의 보관소
|
+---- src : 소스의 보관소 package별 분류
|
+---- command : 명령과 관련한 패키지
|
+---- information : DB와 같은 사용자 정보 관리 패키지
|
+---- network : 네트웍 관련 패키지
|
+---- test : Test 관련 패키지
최상위 폴더의 화일 설명
.classpath : Eclipse 용 Java의 환경 설정
.project : Eclipse용 project 세팅 파일
.cvsignore : Eclipse에서 cvs에서 synch시에 무시할 파일
java_win.bat : Windows용 RunServer 실행 batch파일
javac_win.bat : Windows용 프로젝트 컴파일 batch파일
java_zp : ZeroPage Server 실행 bash script (zp에서만 돈다. bin이 classpath에 안들어가서 꽁수로 처리,port번호를 변경할수 없다.)
javac_zp : ZeroPage Server용 컴파일 bash script (어느 서버에서나 동작 할꺼 같다.)
ProjectZephyrusServer.jcp : JCreator용 project파일
ProjectZephyrusServer.jcw : JCreator용 workspace 파일
- Eclipse
- Perspective를 CVS Repositary Explorering에서
~cpp CheckOut
을 한다음, 컴파일이 안된다면 해당 프로젝트의 JRE_LIB가 잘못 잡혀 있을 가능성이 크다. (Win98에서 JRE가 잘못 설치되어 있을때) 방법은 Eclipse에서 Tip중 설치 부분을 찾아 보라
- JCreator
- 먼저 해당 프로젝트의 lib세팅을 수행 한다. 그래도 안되면 다음
- JCreator가 컴파일할 java파일의 선후 관계를 파악하지 못하여, 컴파일이 되지 못하는 경우가 있다. 이럴 경우 만들어둔 스크립트 javac_win.bat 을 수행하고, 이 스크립트가 안된다면, 열어서 javac의 절대 경로를 잡아주어서 실행하면 선후관계에 따른 컴파일이 이루어 진다. 이후 JCreator에서 컴파일 가능
꿀단지 ¶
- CVS가 귀찮으면 이걸로 실험해 보라 --상민
- 현재 ZeroPage와 Windows 2k상에 한글 인코딩 문제로 후자로 해야 ZeroPage서버에서 한글로 안내 메세지가 나옴. 컴파일시 해결할수 있지만 귀찮아서 --;; --상민
"end"로 종료, VM 1.3에서 돌아감, 기본 port 22000, 단일 접속만 허용 |
실행 | 자료 | Platform |
java -jar ~cpp PZServerForWin.jar Port번호(Default 22000) | jar | Windows |
java -jar ~cpp PZServerForZeroPage.jar Port번호(Default 22000) | jar | ZeroPage용 |
- 모든 객체 정의 완성 상태. Rename과 코딩중에 필요한 부가적인 정보를 알아 내야 한다.
- Client 팀처럼 측정을 하면서 한것이 아니라. 경험상으로의 진행률 만의 기록할수 있을것 같다. --상민
<기능 구현>
할일 |
내용 | 관련클래스 | 담당 | 진행율 |
로그인 |
로그인 객체의 생성, ~cpp InfoManager 에게 자료 요청 | ~cpp LoginCmd | 류상민 | 90% |
로그인 객체에 정보 기록 | ~cpp InfoManager | 이상규 | 90% |
로그 아웃 |
로그 아웃시 해당 소켓의 접속 종료 | ~cpp LogOutCmd,SockManager | 류상민 | 90% |
로그 아웃시 ~cpp LogoutCmd 에 정보 기록 | ~cpp InfoManager | 이상규 | 90% |
1:1 메세지 보내고 받기 |
클라이언트에서 온 메세지를 echo시키는 작업 | ~cpp MessageCmd | 류상민 | 90% |
친구 추가 |
친구 등록시에 주고 받을 메세지의 처리 | ~cpp InsertBuddyCmd | 류상민 | 90% |
친구 등록시 DB에서 처리해야 될 상황 | ~cpp InfoManager | 이상규 | 90% |
친구 삭제 |
친구 삭제시에 주고 받을 메세지의 처리 | ~cpp DeleteBuddyCmd | 류상민 | 90% |
친구 삭제시에 DB에서 처리해야 될 부분 | ~cpp InfoManager | 이상규 | 90% |
서버 정보 기능(Spec 미정의, 구현 강제성 없음) |
서버에 현재 로그인 중인 리스트 보기
ID List보이기 | ~cpp SocketManager, InfoManager | . | . |
서버에 접속된 총인원(미 로그인 인원 모두)
IP, ID List 보이기 | . | . | . |
서버를 강제로 종료 | ~cpp InfoManager, SocketManager,
~cpp UserSocket, PZServerSocket | 류상민, 이상규 | 90% |
원하는 사용자 강제 종료 | ~cpp SocketManager, InfoManager | . | . |
기타 기능 |
단일 User만 접근 가능하게 만듬 | ~cpp CommandManager,LoginCmd,
~cpp LogoutCmd | 류상민 | 80% |
<Maintanance>
package간 Information Hiding |
서버의 구동시 자료구조 생성(DB Table생성) |
~cpp PZUser, PZBuddyList Table생성 | ~cpp InfoManager | 이상규 | ? |
~cpp PZUser, PZBuddyList Table삭제 | ~cpp InfoManager | 이상규 | ? |
Dummy Data 생성 | ~cpp InfoManager | 이상규 | ? |
<Bug Report>
많은 접속후, 혹은 명령 처리중에 DB Connection이 죽는 경우 |
~cpp DB ConnectionManager에서 connection을 받은후에 close했기 때문 | ~cpp InfoManager | 이상규 |
Thread ¶
- 궁금증 있으면 물어 보시길 --상민
- 지금 더미 클라이언트는 뭐 쓰시는중? 그리고 지금 Server 받아서 실행하려면 MySQL 설치해야 함? --석천
- 현재 텔넷으로 테스트 하고 있음 방과후 보여 줄수 있음, MySQL은 기본적으로 ZeroPage로 세팅이 되어 있으며, 원하면 db.properties 화일을 수정해서 손쉽게 바꿀수 있다. Start Entry point는 RunServer --상민
- 컴파일은 주어진 javac_win.bat 로 실행하면 전체가 컴파일이 됨, Javac의 실행 위치가 path에 잡혀 있지 않다면, 절대 경로로 수정 필요 --상민
혹시 새롬데이터맨이 아닌 이야기 로 테스트하는 사람은 주의 필요. 이야기에서는 포트번호를 32767 로 제한하는듯. (50000 이 넘어가니까 overflow 성격의 버그 발생. 테스트하는 사람은 포트 번호 30000 번 이하꺼로 바꿔서 하시길) --석천
- 기본 세팅을 22000 으로 바꾸겠음 --상민
- 90%는 완료라고 봐도 무방하다. 전에 100%라고 달았다가 석천이에게 버그 발견되어서 혼났다는.. --상민