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์ค ์ค์น ๋ถ๋ถ์ ์ฐพ์ ๋ณด๋ผ
- Perspective๋ฅผ CVS Repositary Explorering์์
- JCreator
- ๋จผ์ ํด๋น ํ๋ก์ ํธ์ lib์ธํ
์ ์ํ ํ๋ค. ๊ทธ๋๋ ์๋๋ฉด ๋ค์
- JCreator๊ฐ ์ปดํ์ผํ javaํ์ผ์ ์ ํ ๊ด๊ณ๋ฅผ ํ์
ํ์ง ๋ชปํ์ฌ, ์ปดํ์ผ์ด ๋์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ด ๊ฒฝ์ฐ ๋ง๋ค์ด๋ ์คํฌ๋ฆฝํธ javac_win.bat ์ ์ํํ๊ณ , ์ด ์คํฌ๋ฆฝํธ๊ฐ ์๋๋ค๋ฉด, ์ด์ด์ javac์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ก์์ฃผ์ด์ ์คํํ๋ฉด ์ ํ๊ด๊ณ์ ๋ฐ๋ฅธ ์ปดํ์ผ์ด ์ด๋ฃจ์ด ์ง๋ค. ์ดํ JCreator์์ ์ปดํ์ผ ๊ฐ๋ฅ
- ๋จผ์ ํด๋น ํ๋ก์ ํธ์ lib์ธํ
์ ์ํ ํ๋ค. ๊ทธ๋๋ ์๋๋ฉด ๋ค์
JavaDoc ¶
์์ ์
๊ทธ๋ ์ด๋ ํ ๊ฒ์
http://165.194.17.15/~neocoin/ProjectZephyrus/Server/doc/index.html
http://165.194.17.15/~neocoin/ProjectZephyrus/Server/doc/index.html
Server UML ¶
๊ฟ๋จ์ง ¶
- 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% |
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์ ์กํ ์์ง ์๋ค๋ฉด, ์ ๋ ๊ฒฝ๋ก๋ก ์์ ํ์ --์๋ฏผ
- ํ์ฌ ํ
๋ท์ผ๋ก ํ
์คํธ ํ๊ณ ์์ ๋ฐฉ๊ณผํ ๋ณด์ฌ ์ค์ ์์, MySQL์ ๊ธฐ๋ณธ์ ์ผ๋ก ZeroPage๋ก ์ธํ
์ด ๋์ด ์์ผ๋ฉฐ, ์ํ๋ฉด db.properties ํ์ผ์ ์์ ํด์ ์์ฝ๊ฒ ๋ฐ๊ฟ์ ์๋ค. Start Entry point๋ RunServer --์๋ฏผ
- ์ง๊ธ ๋๋ฏธ ํด๋ผ์ด์ธํธ๋ ๋ญ ์ฐ์๋์ค? ๊ทธ๋ฆฌ๊ณ ์ง๊ธ Server ๋ฐ์์ ์คํํ๋ ค๋ฉด MySQL ์ค์นํด์ผ ํจ? --์์ฒ
- ๊ธฐ๋ณธ ์ธํ
์ 22000 ์ผ๋ก ๋ฐ๊พธ๊ฒ ์ --์๋ฏผ
- 90%๋ ์๋ฃ๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค. ์ ์ 100%๋ผ๊ณ ๋ฌ์๋ค๊ฐ ์์ฒ์ด์๊ฒ ๋ฒ๊ทธ ๋ฐ๊ฒฌ๋์ด์ ํผ๋ฌ๋ค๋.. --์๋ฏผ