U E D R , A S I H C RSS

Project Zephyrus/Thread For Server

๋‘๋ฒˆ์งธ ์ œ์‹œ

Eclipse๋ฅผ ์ด์šฉํ•ด์„œ ์ž์‹ ์ด ๋งŒ๋“  ํ”„๋กœ์ ํŠธ ์•„๋ฌด๊ฑฐ๋‚˜ ZeroPage CVS์— ์ €์žฅํ•ด ๋ณธ๋‹ค.

์ฒซ๋ฒˆ์งธ ์ œ์‹œ

1. CVS ๋ฅผ ์ด์šฉํ•ด์„œ ProjectZephyrusServerTest ๋ฅผ ๋‹ค์šด ๋ฐ›๋Š”๋‹ค.
~cpp 
cvs co ProjectZephyrusServerTest
2. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐ›์ž!!
์ด ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ณ  ๋‹จ์ˆœํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์˜ ๋‘๊ฐ€์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š” ํ•˜๋‹ค. ๋‹ค์šด ๋ฐ›์•„์„œ ํด๋ž˜์Šค ํŒจ์Šค์— ์žก์•„ ๋†“๊ธฐ

jUnit Lib

MySQL JDBC Driver

3. ์‹คํ–‰์„ ํ•ด๋ณด์ž

์ปดํŒŒ์ผ์„ ํ•˜์ž
~cpp 
javac *.java
์‹คํ–‰์„ ํ•˜์ž
~cpp 
java junit.textui.TestRunner AllTests
์ด์ œ zp์„œ๋ฒ„์—์„œ ํ•ด๋ณด์ž.

1,3๋ฒˆ์˜ ๊ณผ์ •์„ ์ž์‹ ์˜ ๊ณ„์ •์—์„œ ํ•˜๋ฉด ๋จ

Thread

  • ์ˆ˜ํ–‰ ํ•ด๋ณด๋‹ค ์•ˆ๋˜๋ฉด ๋ญฃ์ข€ ์ ์–ด. ๋‚˜ํ˜ผ์ž๋งŒ ์ ๊ธฐ ์‹ฌ์‹ฌํ•ด T_T --์ƒ๋ฏผ
  • ๋ฐฉ๊ธˆ 10๋ถ„๊ฐ„ ํ•ด๋ดค๋Š”๋ฐ ๋ญ”์ง€ ์ž˜ ์ดํ•ด์•ˆ๊ฐ€๋„ค์š”...-,-;;;
    ๋‚ผ ๊ทธ๋ƒฅ ์˜คํ”„๋ผ์ธ์œผ๋กœ ํ•จ ๋ณด์—ฌ์ฃผ์„œ์š”
    ๊ธ€๊ตฌ ์•„๊นŒ ์ƒ๊ทœํ•œํ…Œ MySQL ์‚ฌ์šฉ๋ฒ• ๋Œ€์ถฉ ๋“ค์—ˆ์Šต๋‹ˆ๋‹น -์žฌ๋™-
  • ๋ฉ”์‹ ์ €์—์„œ A๋ผ๋Š” ์‚ฌ๋žŒ์ด B๋ผ๋Š” ์‚ฌ๋žŒ์„ ๋Œ€ํ™”์ƒ๋Œ€๋กœ ์ถ”๊ฐ€ํ–ˆ๋‹ค. B๋ผ๋Š” ์‚ฌ๋žŒ์ด ์ ‘์†์ค‘์ด๋ผ๋ฉด "A๋ผ๋Š” ์‚ฌ๋žŒ์ด ๋‹น์‹ ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค. B๋ผ๋Š” ์‚ฌ๋žŒ์ด ์ ‘์†์ค‘์ด ์•„๋‹ˆ๋ผ๋ฉด ๋กœ๊ทธ์ธ ํ•  ๋•Œ "A๋ผ๋Š” ์‚ฌ๋žŒ์ด ๋‹น์‹ ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.... --์ƒ๊ทœ
    • ์œ„์—๊ฐ€ ๊ท€์ฐฎ์•„์„œ, ๊ทธ๋ƒฅ ์ถ”๊ฐ€ --์ƒ๋ฏผ, ์ƒ๊ทœ

์•Œ์•„๋‘˜์ผ

~cpp 
์žฌ๋™,์ƒ๊ทœ๋Š” ํ™”์š”์ผ์— ๋ฐ๋ธ”์Šค ์บ ํ”„ ๊ด€๋ จ ๋ชจ์ž„์ด ์žˆ์œผ๋‹ˆ ๊ทธ๋ฆฌ๋กœ ๊ฐ€๋Š” ํŽธ์ด ์‹œ๊ฐ„ ์ ˆ์•ฝ์—์„œ ๋” ์ข‹์„๊ฒƒ ๊ฐ™๋‹ค.
๋‹น์ผ ์›”๋“œ์ปต ๊ฒฝ๊ธฐ๊ฐ€ ์žˆ์„๊ฒƒ ๊ฐ™์œผ๋‹ˆ, ๋™์‹œ์— ๋‘๊ฐ€์ง€๋ฅผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์•ˆ๋˜๊ฒŸ์ง€, ๊ทผ๋ฐ ์ด๊ฑด ์•„๋‹ˆ๊ตฐ --;;
๋ญ ๊ทธ๋ž˜๋„ 

๊ทธ์ „์—! ์ƒ๊ทœ๋Š”

1. 
InfoManager์ชฝ์˜ writeDeleteBuddy ๋ถ€๋ถ„์„ ์™„์„ฑํ•ด์„œ commit์‹œ์ผœ๋ผ
๊ณผ์ •์€ ์ „์— ํ•˜๋˜ ํ๋ฆ„ ๋ฐ๋กœ JavaDoc ์ž‘์„ฑํ›„ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•ด๋ผ

๊ธธ์–ด์•ผ 30๋ถ„ ์ •๋„์˜ ๋ถ„๋Ÿ‰์ผ๊ฒƒ ๊ฐ™์€๋ฐ, (๋„ˆ๋ฌด ๊ธธ๊ฒŒ ์žก์•˜๋‚˜? ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„ ํ•ฉ์ณ์„œ)
Test๋Š” ๋ณธ์ธ์ด ํ•˜๊ณ  Journey์— ์ ์–ด๋ผ.

๊ฑฐ๊ธฐ์— ํ•œ๊ฐ€์ง€๋งŒ ๋” ํ•œ๋‹ค๋ฉด, 

2.
DB Talbe๋ฏธ์กด์žฌ์‹œ ์ƒ์„ฑ ๋ฉ”์†Œ๋“œ
Dummy data๋ฏธ์กด์žฌ์‹œ ์ž…๋ ฅ ๋ฉ”์†Œ๋“œ
DB table drop ๋ฉ”์†Œ๋“œ๋ฅผ 

๋งŒ๋“ค์–ด์„œ InfoManager๊ฐ€ ์ตœ์ดˆ ์ƒ์„ฑ์‹œ ์•ž์˜ ๋‘๊ฐœ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š”๋ฐ ์œ„์น˜๋Š”
InfoManager.getInstance()์˜ if๋ฌธ ์•ˆ์ชฝ์— ๋„ฃ์–ด์ฃผ๋ฉด sync๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋ ๊ฒƒ์ด๋‹ค.
์ด๊ฒƒ๋„ ์ง€๊ธˆ๊นŒ์ง€์˜ ๋กœ๋“œ๋ฅผ ๋ด์„œ๋Š” 40~50๋ถ„ ์ •๋„๋กœ ์ƒ๊ฐ๋œ๋‹ค. (ํ…Œ์ŠคํŠธ,JavaDoc์ž‘์„ฑ ์‹œ๊ฐ„ ํฌํ•จ)

์—ญ์‹œ ์ด์ „๊นŒ์ง€ ํ•ด์™”๋˜ ๋ฐ๋กœ JavaDoc์œผ๋กœ ์ผ์˜ ์ˆœ์„œ ์ฃผ๊ณ  ์ฝ”๋”ฉํ•˜์‹œ๊ธธ
2 ๋ฒˆ์€ ๊ฒƒ์€ ์‹œ๊ฐ„์ด ์—†๋‹ค๋ฉด ํ•˜์ง€ ์•Š์•„๋„ ์ƒ๊ด€ ์—†๋‹ค. 1๋ฒˆ์€ ํ™”์š”์ผ ์˜ค๊ธฐ์ „์— ๋งˆ์ณ์„œ commit์‹œ์ผœ๋ผ 

ํ•˜์ง€๋งŒ ๋‹คํ–‰์ด ์ด ๊ธ€์„ ์ผ์š”์ผ์— ๋ดค๋‹ค๋ฉด, 9์ผ์— ๋งˆ์ณค์œผ๋ฉด ํ•œ๋‹ค. 
10์ผ์ด ์ด ๋‹จ๊ธฐ ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์˜ ๋งˆ์ง€๋ง‰ ๋‚ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธํ›„ ๋‚จ์€ ํ• ์ผ์ด๋ผ๋ฉด, ํ˜„์žฌ InfoManager๊ฐ€ ๋‹ค๋ฅธ package์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  command package์— ๋Œ€ํ•œ
information hiding์ด ์ž˜ ์ง€์ผœ์ง€์ง€ ์•Š์•˜๋‹ค. ๋‹ค๋ฅธ ์ชฝ์€ ๋‚ด๊ฐ€ ์ฝ”๋”ฉํ•˜๋ฉด์„œ package๋‚ด๋ถ€๋Š” ๋А์Šจํ•˜๊ฒŒ, 
์™ธ๋ถ€๋Š” ๊ฐ•ํ•˜๊ฒŒ ์‹์œผ๋กœ ํ•ด๋‘์—ˆ๋Š”๋ฐ,(์ด๊ฒƒ๋„ ๋์„ ๋ด์•ผ ๊ฒ ์ง€๋งŒ)

InfoManager์˜ ์ฝ”๋“œ๋“ค์˜ ๊ฒฝ์šฐ attribute์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๋ถ€๋ถ„์ด ๋„ˆ๋ฌด๋งŽ์€๋“ฏ ํ•˜๋‹ค. 
์ด๋ถ€๋ถ„์„ refactoringํ•  ์š”์†Œ๊ฐ€ ๋‚จ์€๊ฒƒ ๊ฐ™๋‹ค. ์ด๋Š” ๋„ค๊ฐ€ commitํ›„์— 
pair๋กœ ์ด๋ฆ„์„ ์ •ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋“ , ์•„๋‹ˆ๋ฉด ๋‚ด๊ฐ€ ์ผ๊ด„์ ์œผ๋กœ ํ•˜๊ณ  ๋‚˜์ค‘์— ๋‹ค์‹œ ๋„ค๊ฐ€ ๋งˆ์Œ์— ์•ˆ๋“œ๋Š” ๋ถ€๋ถ„์„ 
renameํ•˜๋Š” ๋ฐฉ์‹๋„ ๊ทธ๋ฆฌ ๋ฌด๋ฆฌ๋Š” ์—†์„๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์žฌ๋™, 
์ผ๋‹จ ๋‚ด๊ฐ€ ์ „ํ™”๋ฅผ ์•ˆํ•˜๊ณ  ๊ทธ๋ƒฅ ๋‘” ๊ฒƒ์ด ์ผ์ฐจ์ ์ธ ์ฑ…์ž„์ด ์žˆ๊ฒ ์ง€๋งŒ, ๊ทธ๊ฒƒ๋งŒ์œผ๋กœ ์ฑ…์ž„์„ ๋‘๊ธฐ์—๋Š” 
์ž๋„ค๊ฐ€ ๋„ˆ๋ฌด msn์— ์ ‘๊ทผ์„ ํ•˜์ง€ ์•Š์€ ๋А๋‚Œ์ด ์žˆ๋‹ค. ํ˜น์€ ["ProejctZephyrus/ServerJourney"]๋‚˜, 
["ProjectZephyrus/Server"]์— ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋žฌ๋Š”๋ฐ, ๋„ˆ๋ฌด ๊ณผํ•œ ๊ธฐ๋Œ€์˜€๋‚˜ ์‹ถ๊ตฌ๋‚˜.

์ผ๋‹จ, ["ProjectZephyrus/Server"]์˜ ์ง„ํ–‰์œจ์— ๊ธฐ๋ก๋œ ๋Œ€๋กœ InfoManager์˜ DeleteBuddy๋ถ€๋ถ„์™ธ์—๋Š” ์™„๋ฃŒ๋˜์—ˆ๋‹ค. 
90%๋Š” ์˜ˆ์ธก ๋ชปํ•˜๋Š” 10%์™ธ์— ์™„๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ๋ด๋„ ๋œ๋‹ค.

์ข€ ์•„์‰ฝ๋„ค ... ์ผ๋‹จ ์ž๋„ค๊ฐ€ ์‹œ๊ฐ„์ด ์—†์–ด์„œ ์–ด์ฉ”์ˆ˜ ์—†์œผ๋‹ˆ ํ• ์ˆ˜ ์—†๋Š” ์ผ์ด๊ฒ ์ง€
6/7์ผ์— ์ƒ๊ทœ์™€ ๋งŒ๋‚˜์„œ InfoManager๋ฅผ ๊ฑฐ์˜(?) ๋งˆ์ณค๋Š”๋ฐ, ์ผ๋‹จ ์ „์— PacketForm ์„์ฒœ์ด์™€ ํšŒ์˜ํ• ๋•Œ์™€ ๋ฐ”๋€๊ฒƒ์ด 
์—†๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

๋ฐ๋ธ”์Šค ์บ ํ”„ ํšŒ์˜ ์ž˜ํ•ด์„œ ์ž˜ ์ค€๋น„ํ•˜์‹œ๊ฒŒ.




๊ทธ๋ฆฌ๊ณ  ๋‘˜๋‹ค์—๊ฒŒ

์•ž์˜ ์ผ์ด ๋๋‚˜๊ณ  ๋‚˜์„œ ์ดํ›„ 

ํ•™๊ต ์ปดํ“จํ„ฐ์—์„œ Server, ClientํŒ€์ด ๋ชจ์—ฌ์„œ ์ „์ฒด acceptance ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ณ 
ServerํŒ€์ด ClientํŒ€์—๊ฒŒ, ClientํŒ€์ด ServerํŒ€์—๊ฒŒ ๋””์ž์ธ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ•˜๊ณ 
์ตœ์ข… ๋ฌธ์„œํ™”ํ›„ jar๋กœ ๋ฌถ์–ด์„œ, ์†Œ์Šค์™€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ชจ๋‘ ๋ฐฐํฌ ํ˜•์‹์œผ๋กœ ๋งŒ๋“ค์–ด ๋งํฌ๋ฅผ ๊ฑฐ๋Š” ๊ฒƒ์ด

์ด ํ”„๋กœ์ ํŠธ์˜ ์ข…๊ฒฐ์ ์ด ๋ ๊ฒƒ์ด๋‹ค.
๋ฌธ์ œ๋Š” 2์ฃผํ›„๊ฐ€ ์‹œํ—˜์ด๊ณ , ์‹œํ—˜ํ›„ ๊ณง๋ฐ”๋กœ ๋ฐ๋ธ”์Šค ์บ ํ”„๋ฅผ ๊ณ„ํšํ•ด๋‘”๋งŒํผ, ์œ„์˜ ์‚ฌํ•ญ์— ๊ด€ํ•˜์—ฌ๋Š” 
๋ฐ๋ธ”์Šค ์บ ํ”„๊ฐ€ ๋๋‚œ ์ดํ›„, ํ˜น์€ ๋ฐ๋ธ”์Šค ์บ ํ”„ ์ค‘์— ์ด๋ฃจ์–ด ์งˆ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. 

์ด๋Ÿด๊ฒฝ์šฐ ๋””์ž์ธ์˜ ์„ค๋ช…์— ์ฒญ์ž๊ฐ€ ์„œ๋กœ ํŒ€์ด๊ฐ€ ์•„๋‹ˆ๋ผ ๋“ฃ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ ๋ชจ๋‘๋กœ ์ง€์ •ํ• ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
๊ทธ๋Ÿผ ๋‹ต๋ณ€์ข€

  • ๋„ต..^^ ์›”์šœ์— ์ž‘์—… ํ• ๊ป˜์š”.. ์ผ์šœ์€ PHP ์‹œํ—˜๋•Œ๋ฌธ์—์—ฌ.... --์ƒ๊ทœ
  • ์ €๋„ ์˜ค๋Š˜(์›”์šœ)๊นŒ์ง€ ์ž‘์—… ์™ ๋งŒํผ ๋Š๋‚ด๋†“์„๊ป˜์š” ํ•œํŽธ, wincvs ์•ˆ์“ธ๋ž๋‹ˆ๋‹ค eclipse ์จ์•ผ์ง€ ์›...--์žฌ๋™
    • ํ˜น์‹œ ์ž๋„ค๊ฐ€ branch ๋งŒ๋“ค์—ˆ๋‚˜? ๊ธฐ๋ก์—๋Š” ๊ทธ๋ ‡๊ฒŒ ๋˜์–ด ์žˆ๋Š”๋ฐ? ๊ทธ๋ฆฌ๊ณ  ์œ„์— ์ •ํ™•ํžˆ ์–ธ๊ธ‰์ด ์•ˆ๋˜์–ด ์žˆ๋Š”๊ฐ€ ๋ณธ๋ฐ, ๋‚ฎ์— ์ž ๊น ์„ค๋ช…ํ•œ๋ฐ๋กœ ๋๋‚ฌ๋‹ค. ์ง„ํ–‰ ์ƒํ™ฉ์€ ProjectZephyrus/Server์— ๊ธฐ์žฌํ•ด ๋‘์—ˆ์œผ๋ฏ€๋กœ ์ฐธ๊ณ ํ•˜๋„๋ก. --์ƒ๋ฏผ

  • ๊ทธ๋ฆฌ๊ณ  ์žฌ๋™ CVSํ…Œ์ŠคํŠธ ํ• ๋ ค๋ฉด ์ƒˆ๋กœ ํ•˜๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ•ด๋ผ. --์ƒ๋ฏผ


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