U E D R , A S I H C RSS

Project Zephyrus/Server

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 gif Rose.
05.24 gif Rose .
05.27 gif Rose.
06.02 gif Rose MS VM
06.03 gif Rose MS VM
06.07 gif Rose MS VM

๊ฟ€๋‹จ์ง€

  • CVS๊ฐ€ ๊ท€์ฐฎ์œผ๋ฉด ์ด๊ฑธ๋กœ ์‹คํ—˜ํ•ด ๋ณด๋ผ --์ƒ๋ฏผ
  • ํ˜„์žฌ ZeroPage์™€ Windows 2k์ƒ์— ํ•œ๊ธ€ ์ธ์ฝ”๋”ฉ ๋ฌธ์ œ๋กœ ํ›„์ž๋กœ ํ•ด์•ผ ZeroPage์„œ๋ฒ„์—์„œ ํ•œ๊ธ€๋กœ ์•ˆ๋‚ด ๋ฉ”์„ธ์ง€๊ฐ€ ๋‚˜์˜ด. ์ปดํŒŒ์ผ์‹œ ํ•ด๊ฒฐํ• ์ˆ˜ ์žˆ์ง€๋งŒ ๊ท€์ฐฎ์•„์„œ --;; --์ƒ๋ฏผ

"end"๋กœ ์ข…๋ฃŒ, VM 1.3์—์„œ ๋Œ์•„๊ฐ, ๊ธฐ๋ณธ port 22000, ๋‹จ์ผ ์ ‘์†๋งŒ ํ—ˆ์šฉ
์‹คํ–‰์ž๋ฃŒPlatform
java -jar ~cpp PZServerForWin.jar Port๋ฒˆํ˜ธ(Default 22000)jarWindows
java -jar ~cpp PZServerForZeroPage.jar Port๋ฒˆํ˜ธ(Default 22000) jarZeroPage์šฉ

์ผ

  • ๋ชจ๋“  ๊ฐ์ฒด ์ •์˜ ์™„์„ฑ ์ƒํƒœ. 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%๋ผ๊ณ  ๋‹ฌ์•˜๋‹ค๊ฐ€ ์„์ฒœ์ด์—๊ฒŒ ๋ฒ„๊ทธ ๋ฐœ๊ฒฌ๋˜์–ด์„œ ํ˜ผ๋‚ฌ๋‹ค๋Š”.. --์ƒ๋ฏผ

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:06
Processing time 0.0100 sec