=== 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, JCreator 에서 FAQ === * Eclipse * Perspective를 CVS Repositary Explorering에서 {{{~cpp CheckOut}}}을 한다음, 컴파일이 안된다면 해당 프로젝트의 JRE_LIB가 잘못 잡혀 있을 가능성이 크다. (Win98에서 JRE가 잘못 설치되어 있을때) 방법은 ["Eclipse"]에서 Tip중 설치 부분을 찾아 보라 * JCreator * 먼저 해당 프로젝트의 lib세팅을 수행 한다. 그래도 안되면 다음 * JCreator가 컴파일할 java파일의 선후 관계를 파악하지 못하여, 컴파일이 되지 못하는 경우가 있다. 이럴 경우 만들어둔 스크립트 javac_win.bat 을 수행하고, 이 스크립트가 안된다면, 열어서 javac의 절대 경로를 잡아주어서 실행하면 선후관계에 따른 컴파일이 이루어 진다. 이후 JCreator에서 컴파일 가능 === JavaDoc === 수시 업그레이드 할것임 http://165.194.17.15/~neocoin/ProjectZephyrus/Server/doc/index.html === Server UML === || 날짜 || gif || RRose2001 || MS VM || ||05.23|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0523-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020523-a.mdl Rose]||.|| ||05.24|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0524-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020602-a.mdl Rose] ||.|| ||05.27|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0527-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020527-a.mdl Rose]||.|| ||06.02|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0602-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020602-a.mdl Rose] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020602-a30.mdl MS VM] || ||06.03|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0603-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020603-a.mdl Rose] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020603-a30.mdl MS VM] || ||06.07|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0607-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020607-a.mdl Rose] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020607-a30.mdl MS VM] || === 꿀단지 === * CVS가 귀찮으면 이걸로 실험해 보라 --상민 * 현재 ZeroPage와 Windows 2k상에 한글 인코딩 문제로 후자로 해야 ZeroPage서버에서 한글로 안내 메세지가 나옴. 컴파일시 해결할수 있지만 귀찮아서 --;; --상민 |||||| "end"로 종료, VM 1.3에서 돌아감, 기본 port 22000, 단일 접속만 허용|| ||실행||자료||Platform|| ||java -jar {{{~cpp PZServerForWin.jar}}} Port번호(Default 22000)||[http://165.194.17.15/~neocoin/ProjectZephyrus/Server/PZServerForWin.jar jar]||Windows|| ||java -jar {{{~cpp PZServerForZeroPage.jar}}} Port번호(Default 22000)|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/PZServerForZeroPage.jar 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 미정의, 구현 강제성 없음)''|| ||서버에 현재 로그인 중인 리스트 보기[[BR]]ID List보이기 ||{{{~cpp SocketManager, InfoManager}}}||.||.|| ||서버에 접속된 총인원(미 로그인 인원 모두)[[BR]] IP, ID List 보이기||.||.||.|| ||서버를 강제로 종료 ||{{{~cpp InfoManager, SocketManager,}}}[[BR]] {{{~cpp UserSocket, PZServerSocket}}}||류상민, 이상규||90%|| ||원하는 사용자 강제 종료||{{{~cpp SocketManager, InfoManager}}}||.||.|| ||||||||기타 기능|| ||단일 User만 접근 가능하게 만듬||{{{~cpp CommandManager,LoginCmd,}}}[[BR]]{{{~cpp LogoutCmd}}}||류상민||80%|| |||||||| package간 Information Hiding|| |||||||| 서버의 구동시 자료구조 생성(DB Table생성) || ||{{{~cpp PZUser, PZBuddyList Table생성}}}||{{{~cpp InfoManager}}}||이상규||?|| ||{{{~cpp PZUser, PZBuddyList Table삭제}}}||{{{~cpp InfoManager}}}||이상규||?|| ||Dummy Data 생성||{{{~cpp InfoManager}}}||이상규||?|| |||||| 많은 접속후, 혹은 명령 처리중에 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%라고 달았다가 석천이에게 버그 발견되어서 혼났다는.. --["상민"] ---- ["ProjectZephyrus"]