2003 ¶
11 ¶
ํ๋ฃจ ํ๊ฐ : 5์ ๋ง์ ์ค 2์ . (์ค์ํ๊ณ ๊ธด๊ธํ ์ผ๋ค์ ์ ์ฒ๋ฆฌ ๋ชปํจ)
ํ ์ผ ๋ชฉ๋ก์ค
์ด์ค ์น์ํ์ผ๋ก 32๋ถ์ ์ฐ๊ณ , ํด์์ผ๋ก 1์๊ฐ 30๋ถ์ ๋ ์ฌ๊ณ , ์ค๊ฐ์ค๊ฐ ์ธํฐ๋ท์ ๋ณ ๋ชฉ์ ์์ด ๋์๋ค๋๋ ์๊ฐ์ด ๋ง์๋ค๋ ์ ์ด ๋ฌธ์ .
์์ง์ ๋ค๋ฅธ ๊ฐ๋
์ ๋ํ ์ฌ์ถ์ํ์ ๋ํด์ ๋ณ๋ก ๊ถ๋ฆฌํ๊ณ ์์ง ์์์ค. ์ผ๋จ์ ๋ฐ๋ณด์ธ ์ํ๋ฅผ ์งํ์ค. ๊ด์ฐฐ์ค์ด๊ธด ํ ๊น?
- ๋์๊ด์์ ๋ฅ๊ตฐ TPOCP ์ฐพ์์ฃผ๊ธฐ - O
- ์ฌ๋์๋๋ก retrofitting ์ธ์ํ๊ธฐ -> 6๋ถ ์ธ์ํ๊ธฐ - O
- Retrofitting UT ๋ฐํ์ค๋น
- ๋ด์ฉ์ค๋ช
๊ด๋ จ -> 1์ฐจ์ ์ผ๋ก ์ดํด๋ฅผ ์ํ TOC ์์ฑ. - O
-> ์ด์ ๋ถ์ฌ์ ์ดํดํ๊ธฐ -> restatement ํ์ & ๋๊ฐ ๋ฌด์ง์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋์ด๊ฐ๋ฒ๋ฆผ.
- ๊ฒฝํ ๋ด ์ ์ฉ ๊ฑฐ๋ฆฌ
- ๋ด์ฉ์ค๋ช
๊ด๋ จ -> 1์ฐจ์ ์ผ๋ก ์ดํด๋ฅผ ์ํ TOC ์์ฑ. - O
- dotplot ์์ฑ๊ถ๋ฆฌ
- normalization
- dot plotting
- normalization
- index card ๋ด์ฉ ์ ๋ฆฌํ๊ธฐ
- 1์ 30๋ถ. ํ์๋์ชฝ์ผ๋ก ์ด๋ํ๊ธฐ - o
- 10์ 30๋ถ๊น์ง ํ๊ต ๋์ฐฉํ๊ธฐ - o
- ํ๋ก์ ํธ ๊ด๋ จ ์์ค ์ธ์ - o
- ํ๋ก์ ํธ ๊ด๋ จ ์์ค ๋ถ์ํ๊ธฐ -> restatement ํ์.
~cpp 3 : 30 ~ 9 : 00 ์ ~ 9 : 13 ์์ฌ ~ 9 : 33 ๋จธ๋ฆฌ๊ฐ๊ธฐ & ์์น์ง & ์ท์ ๊ธฐ & ๊ฐ๋ฐฉ์ ๋ฆฌ ~ 9 : 46 ๊ฐ๋ณ ๋์ฐฉ ~ 9 : 50 ๊ฑด๋์ ๊ตฌ ๋์ฐฉ ~ 10 : 38 ํผ์์ค 7์ธต ๋์ฐฉ ~ 11 : 14 ํ๋ก์ ํธ ๊ด๋ จ ์์ค ์ธ์ ~ 11 : 20 retrofitting ์ธ์ ~ 11 : 30 internet ๋์๋ค๋๊ธฐ ~ 1 : 06 retrofitting ๊ณต๋ถ & ์ดํด ~ 1 : 31 PC 7 ๋ฌธ ์ ๊ทธ๊ธฐ ์ํด ๊ฒฝ๋น์์ ์จ๊ป ์ ํ & ๊ธฐ๋ค๋ฆฌ๊ธฐ ~ 1 : 47 ์ ์ฌ์์ฌ (๋นต & ์ฐ์ . 800์) ~ 2 : 03 ์งํ์ฒ ์ญ ๋์ฐฉ ~ 2 : 16 (์งํ์ฒ ) using singleton wisely ์ฝ๊ณ ์ดํด ~ 2 : 42 (์งํ์ฒ ) retrofitting ์ฝ๊ธฐ & ์ดํด ~ 2 : 57 HIT ๋์ฐฉ ~ 6 : 14 XP Study Group ~ 6 : 42 ๊ฐ๋ณ์ญ ๋์ฐฉ ~ 7 : 00 ์ง์ ๋์ฐฉ ~ 7 : 35 ์ธํฐ๋ท ์ธ๋์๋ค๋๊ธฐ. ~ 9 : 35 ์ ๋ ์์ฌ. Four Boxes 2์ฐจ ์๋ ์งํ ~ 10 : 00 ์๋ฃ ~ 10 : 32 ์น์ํ. ์ด๊ฒ์ ๊ฒ ~ 12 : 03 ํด์ (์ง์์ฌ๋๋ค๊ณผ ๋ํ) ~ 2 : 07 ์๋ ์ฌ๋๊ณผ ๋ฉ์ ์ ์์ ๋ํ๊ด๋ จ.
- ๊ท์์ดํ์ด Working Effectivly With Legacy Code ๋ฐํํ ๋๋ฅผ ๋ณด๋ฉด์ ๊ทธ ๊ฒฉ์ ์์ด ํ๊ฒฉํจ์ ๋๋.
- ์คํ ๋ฆฌ ํ
๋ง์ด ๊ฐ๋ฅํ๋ค๋ ์ . (๋๋ ์ ๋ค์ ์ด์ผ๊ธฐ๊ฐ ๋์ด์ง๋ค.)
- ์ ์ฒด ์ฑ
๋ด์ฉ์ ๋ํ Summary ๊ฐ TOC ๋ก ์กฐ์ง์ ์ด๋ผ๋ ์ . (์ด๋ฒ์ TOC ๋ฅผ ์ค๋น ์ํ๋ค.)
- ๊ตฌํ ๊ฒฝํ์ด ํ๋ถํ๋ค๋ ์ . ํด๋น ์ฑ
๋ด์ฉ์ ๋ํด ์ฝ๋๋ก ์๋ฅผ ๋ค์ด๋ฌ๋ผ๋ฉด ๋ค์ด์ค ์ ์์์ ๋. (๋๋ ํด์๋ถ๋ถ์ ๋ํ 1์ฐจ ํด์์์๋ถํฐ ์ ํ์ง ๋ชปํจ)
- ์คํ ๋ฆฌ ํ
๋ง์ด ๊ฐ๋ฅํ๋ค๋ ์ . (๋๋ ์ ๋ค์ ์ด์ผ๊ธฐ๊ฐ ๋์ด์ง๋ค.)
- ๊ตฌ์ฒด์ ์ธ action plan ์ ๋ํด์๋ ์ถํ ๊ถ๋ฆฌ.
- ๋ค๋ฅธ์ฌ๋๋ค์ด '๋'๋ก๋ถํฐ ๋ญ๊ฐ ์ ์ฉํ์ ์ ์ป๊ธฐ๊ฐ ์ฝ์ง ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค๊ฒ ๋๋ค. ๋ญ, ์์ธ์ ์คํด๋ก ๊ฐ๋ฅํ ์ง๋. ํด๋น ๋ง์ ๋ํ ๊ฐ์น๋ ๋ฃ๋ ์ฌ๋๋ค์ด ๋ง๋ค์ด๋ด๋๊น.
- ์ฌ์ค์ ์ฌ์ค ๊ทธ๋๋ก ๋ด๋ดํด์ ธ๋ณด๊ธฐ ๊ถ๋ฆฌ์ค. ์ฐธ ์ฝ์ง ์์์ค.
- ๋
์ ์ฒ๋ฐํ๊ณ . ์จ๋ฟ๋ฆฌ๋ ๋๋ถ๋ ๋ง์ผ๋งค ์น์ด ๋์ง ์๋ค.
7 ¶
๊ณต๊ฐ ์ํค์์์ Journal.
์ฅ์ : ๊ฐ์ธ ๊ฐ์ ์ ์น๋ถ๋ ํ๋จ์ ์ ํ์ง ์๊ฒ ๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ ์์ํ์ฌ, ์ข ๋ ์์ธํ ๋ ผ๋ฆฌ์ ์ธ ๊ธ์ ์ฐ๊ฒ ๋๋ค.
๋จ์ :
์์งํ์ง ๋ชปํ๊ฒ ๋ ์ ์๋ค. ์์ ์ ์ผ์ ๋ฏธํํ ์๋ ์๋ค.
TunnelVision์ ๋น ์ง ์ฌ๋์ '๋ณด๊ณ ์ถ์ ๊ฒ๋ง' ๋ณด์ด๊ฒ ๋๋ค.
YouSeeWhatYouWantToSee
์์ ์ด ์ข ์ฐฝํผํ๊ฑฐ๋ ์์ '์ชฝํ๋ฆฌ๋' ์ผ์ ๋ํด์ ํด๋น ๋ด์ฉ์ ์์จ๋ฒ๋ฆด ์๋ ์๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ ์์ํ์ฌ, ์ข ๋ ์์ธํ ๋ ผ๋ฆฌ์ ์ธ ๊ธ์ ์ฐ๊ฒ ๋๋ค.
๋ฐ๋ก : ๋จ์ ์์์ '์์งํ์ง ๋ชปํ๊ฒ ๋ ์ ์๋ค' ์ฐธ์กฐ.
๋ค๋ฅธ ์ฌ๋๋ค์ ์์ํ์ฌ, ์ข ๋ ์์ฃผ ๊ธ์ ์ฐ๊ฒ ๋๋ค.
๋ฐ๋ก : ์ต๊ทผ์ ๊ฒ์๋ฌ์ ์ ์์ผ์์. -_-;
์์งํ์ง ๋ชปํ๊ฒ ๋ ์ ์๋ค. ์์ ์ ์ผ์ ๋ฏธํํ ์๋ ์๋ค.


๋ฐ๋ก : Journal ์ ์ฐ๋ ๋ชฉ์ ์ ์ผ๊ธฐ์ ๋ค๋ฅด๋ค. ์ด๊ฑด ์ฒ ์ ํ๊ฒ 'ํด๋น ์ผ์ ๋ํ ๊ฐ์ '์ ์ํ ์ผ์ด๋ค.
๋ช๋ช ์ค์ํ ์ฌ๊ฑด๋ค์ ๋ํด ๊ธฐ๋กํ ์ ์๋ค. (Daum workshop ๋ฑ..)
๋ฐ๋ก : ๊ทธ๋ฌํ ๊ธ๋ค์ ๋ณด์์ด ์ ์ง๋๋ ๋ค๋ฅธ ๊ณณ์ ์ ์ผ๋ฉด ๋์ง ์๋๊ฐ?
์ฌ๋ฐ๋ก : ์ ๋ณด๊ฐ ํ๊ณณ์ผ๋ก ๋ชจ์ด์ง ๋ชปํ๊ณ ๋ถ์ฐ๋๋ ํํ๊ฐ ๋์ด๋ฒ๋ฆฐ๋ค.
๋ฐ๋ก : ๊ทธ๋ฌ๋ฉด, ๋ณด์์ด ์ ์ง๋๋ ๋ค๋ฅธ ๊ณณ์ apache authorization ๋ฑ์ ๊ฑธ๊ณ , ํด๋น ๊ธ์ ๋งํฌ๊ฑธ๋ฉด ์ด๋จ๋ฐ์ง?
์ฌ๋ฐ๋ก : ์ํค ํ๊ณณ์์ ๋ชจ๋ ์์
์ ํ ์ ์๋ค๋์ ์ด ๋ง์์ ์๋ ๋ค.
์ฌ๋ฐ๋ก : ๊ทธ๋ผ ๊ทธ ๊ณณ๋ ์ํค๋ฉด ๋์ง. -_a
- ๋ด๊ฐ ์ฐ๋ ์๋น์์ ๋จ์ด๋ค์ ๋ณผ๋ ๋๊ตฌ์ ์ํฅ์ ์ผ๋ง๋งํผ ๋ฐ์๋์ง๊ฐ ๋๊ปด์ง๋ค. ๋น๋ก ํ๋ฅญํ ํ์์ด ์๋๊ธด ํ์ง๋ง.
2002 ¶
12์ ¶
25, 26 - ํ๊ฐ. ๊ณํ. ์ฑ
์ถฉ๋๊ตฌ๋งค.;
1๋
ํ๊ฐ๋ผ๋ ๊ฒ์ ์ค๊ฐ 3๊ฐ์ ํ๊ฐ๊ฐ ์์ผ๋ฉด ์ด๋ ค์ด ์ผ์ด๋ค. ๋ฐ์ดํฐ๊ฐ ๋จ์์์ง ์๊ตฐ.
์ฑ
์ 8๊ถ ์ ๋ ์๋ค. Input ๋๋น Output ๋น์จ์ด ์ด์ ๋ณด๋ค ์กฐ๊ธ์ด๋๋ง ๋์์ผ๋ฉด ํ๋ค.
13 (๊ธ), 14 (ํ ), 15(์ผ) - RT
๊ธ :
ThePsychologyOfComputerProgramming์ด ์ด๋ ค์ธ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋จผ์ ๋ค์ด์, ์ผ๋จ ์์ด์ ์ต์ํด์ ธ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์ด์ Alice in wonderland ์ chapter 3,4 ๋ฅผ ๋ค์๋ค. ๋จ์ด๋ค์ด ํ๋ํ๋ ๋ค๋ฆฌ๋ ์ ๋. ์์ง ์ ์ฒด์ ๋ฌธ์ฅ์ด ๋จธ๋ฆฟ์์ผ๋ก ๋ง๋ค์ด์ง์ง ์๋ ๊ฒ ๊ฐ๋ค. ๋จ์ด ๋จ์ ๋ฐ์์ฐ๊ธฐ๋ ๊ฐ๋ฅํ์ง๋ง, ๋ฌธ์ฅ๋จ์ ๋ฐ์์ฐ๊ธฐ๋ ํ๋ ์ค.
๋์๊ด์์ ์ด์ ์ ์ ๋ฐ์ ๋ ์ฝ์ ์ ์ด ์๋ Learning, Creating, and Using Knowledge ์ ์ผ๋ถ๋ฅผ ์ฝ์ด๋ณด๊ณ ,
HowToReadaBook์์๋ฅผ ์ฐพ์๋ณด์๋ค. ๋๊ฐ ์ฝ์ด๋ดค๋๋ฐ, ์ ์ ํ๊ธ์ฉ์ด๋ก๋ ์ฝ๊ฐ ์ด์ํ๊ฒ ๋๊ปด์ก๋ ์ฉ์ด๋ค์ด ๋จธ๋ฆฟ์์ ์ ๋๋ก ๋ค์ด์๋ค. (๋๋, ๋ด๊ฐ ์์ด๋ก ๋ ์ฑ
์ ์ฝ์๋์ ์ ๊ณต์ฑ
์ ๊ทธ ์ดํฌ๋ฅผ ๋ ์ฌ๋ ค์์ผ๋ฐ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. ์ฆ, ์์ด๋ก ๋ ์ฑ
์ ์ฝ๊ฐ ๋ ๋ฌด๊ฒ๊ฒ ์ฝ๋๋ค๊ณ ํ ๊น. ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ ธ ์๋ ์ฑ
(ex :
AreYourLightsOn, ์บ๋น & ํ์ค) ๋ ์์ธ)
์ผ๋จ, ์ข ์ฌ์ด ์ฑ
๋ค์ ๋ํด ์ด๋์ ๋ Input ์ด ์ข ๋ค์ด์์ผ๋ ๊ด์ฐฎ๊ฒ ์ง ํ๊ณ ์ฑ
์ ์ฝ์๋ค.
๋น์ด์์ด์ผ๋ง ์ ์ฉํ๊ฒ๋ค์ด ์์ผ๋. ๋นจ๋ฆฌ ์ ๋ฆฌ๋์ด๋ฒ๋ ค์ผ ํ ๊ฒ๋ค.
10 (ํ): Prometheus ๋ฆฌํฉํ ๋ง (๊ณ์์งํ์ค. ์ผ์ฃผ์ผ์งธ ์งํ์ค์ด๋๊ฐ. -_-a)
์ฐ์ต์ฅ์ ์ ์ฒด ํด๋์ค๋ค ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ค๋ดค๋ค. CRC ๋ฅผ ์ธ๊น ํ๋ค๊ฐ ๋์ด๋์ ์๋ฆฌ๊ฐ ์์ด์..;
์๋จ์ ํด๋์ค๋ค์ ํ๋จ์ ํด๋์ค๋ค์ ์ด์ฉํ๋ ์์ด๋ค.
๊ทธ๋ฆผ์ ๋ณด๊ณ ๋๋, Inheritance ๋ Delegation ์ด ํ์์์ด ์ด๋ฃจ์ด์ง ๋ถ๋ถ์ด ์๋ค๋ ์ (KeywordGenerator ํด๋์ค๋ BookSearcher, HttpSpider ๋ฑ) Information Hiding ์ด ์ ๋๋ก ์ง์ผ์ง์ง ์์๊ฒ ๊ฐ๋ค๋ ์ , (Book ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ์ป๊ณ , ๊ฒ์ํ์ฌ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒ์ BookMapper ์์ ํต์ผ๋๊ฒ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค.) ๋ ์ด์ด๋ฅผ ์นจ๋ฒํ๊ฒ (๊ฐ๊ฐ์ Service ํด๋์ค๋ค์ด ํด๋น ๋ก์ง๊ฐ์ฒด๋ฅผ ์ง์ ์ด์ฉํ๋๊ฒ์ ๊ทธ๋ฆฌ ๋ณด๊ธฐ ์ข์ ๋ชจ์์๊ฐ ์๋๋ฏ ํ๋ค. ํด๋์ค ๊ด๊ณ๊ฐ ๋ณต์กํด์ง๋๊น. ๊ทธ๋ฆฌ๊ณ ์ง๊ธ Service ๊ฐ ์๋ธ๋ฆฟ์ ๋น์ข
์์ ์ธ Command Pattern ์ ์๋๋ค. ๊ทธ๋ฆฌ๊ณ AdvancedSearchService ์ SimpleSearchService ๊ฐ BookMapper ์ ์ด์ ์ ๋ง์ถ์ง ์๊ณ Searcher ํด๋์ค๋ค์ ์ด์ฉํ ๊ฒ์ ํ๋ช
ํ ์ ํ์ด ์๋๋ค.)
๊ตฌ์กฐ๋ฅผ ์ดํผ๋ฉด์ ๋ฆฌํฉํ ๋ง, KeywordGenerator ํด๋์ค์ HttpSpider ๋ฑ์ ํด๋์ค๋ค์ ์ญ์ ํ๋ค. ํ
์คํธ 96๊ฐ๋ ์์ง ์ ๋์๊ฐ๋์ค. ๋ฆฌํฉํ ๋ง์ค inline class ๋ inline method , extract method ๋ extract class ๋ฅผ ํ ๋, ์ผ๋จ ํด๋น ์์ค๋ฅผ ๋ณต์ฌํด์ ์ ํด๋์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ , ์ด๋ฅผ ์ด์ฉํ๋ค, ๊ธฐ์กด์ ๋ฉ์๋๋ค์ Find Usage ๊ธฐ๋ฅ์ ์ด์ฉํ๋ฉด์ ์ด์ฉํ๋ ๋ถ๋ถ์ด ์์๋๊น์ง replace ํ๋ ์์ผ๋ก ํ๋๋ฐ, ํ
์คํธ ์ฝ๋๋ ๊ณ์ ๋
น์๋ฐ๋ฅผ ์ ์งํ๋ฉด์, ์์ ๋ฆฌ๋ฌ์ ์ ์งํ ์ ์์ด์ ๊ธฐ๋ถ์ด ์ข์๋ค.
์ด๋์ ๋ ๋ค์ ์ ๋ฆฌ๋ ๋ค, ํฌ๊ฒ ๊ทธ๋ฆฌ๋ ๊ฒ์ด ๋ซ๊ฒ ๋ค๊ณ ํ๋จ, ํ์ดํธ๋ณด๋์ ๊ทธ๋ฆผ. (๋ง์นจ ๋ณด๋ ๋ง์นด ์์ด์ ์ ์ง์ ๋งค์ง์ผ๋ก.;)
๋ด์ผ ์ข ๋ ์์
์ ํ ๊ถ๋ฆฌ. CVS ์์ ๋ฒ์ ์ ๋ฐ๋ก ๋๊น๋ ๊ถ๋ฆฌ์ค. (๊ตฌ์กฐ๊ฐ ์ข ๋ง์ด ๋ฐ๋ ๊ฒ ๊ฐ๋ค. ์ํ๋ ๋์์ธ์ผ๋ก ๊ฐ๋ ค๋ฉด ์ ์ ์ ๋ถ๋ถ์ผ๋ก ๊ฐ์ผ ํ๋ฆฌ๋ผ ์๊ฐ.)
์ค์ Database ๋ฅผ ์ด์ฉํ๋ ํ
์คํธ์ ๋ํด ํ๋๋ง ์คํํ์๋๋ ์ ๋๋๋, Suite ์ ๋ฌถ์ผ๋๊น ํ
์คํธ์์ ์ด์ฉํ๋ Connection ์ด NULL ์ด ๋์ด๋ฒ๋ฆฐ๋ค. Connection POOL ์ ๋ฌธ์ ์ธ๋ฏ. ํ์์๋ ๊ณณ์ Connection ์ด์ด๋์ ๊ฒ์ ํ๋๋ง ์ด์ฉํ๋๋ ํด๊ฒฐ.
7 (ํ ): Prometheus Test Code ์ถ๊ฐ ๋์ฅ์
Prometheus ๋ฆฌํฉํ ๋ง์ค. ๊ธฐ๊ฐ์ ์ก์ง ์๊ณ ํ๋ ์์ฒญ๋๊ฒ ๋์ด์ง๋ ๊ฒ ๊ฐ๋ค. ๋ค์ ํ ์ผ ๋ชฉ๋ก์ ๊ตฌ์ฒด์ ์ผ๋ก ์ก๊ณ ํด์ผ๊ฒ ๋ค.
๊ธฐ์กด์ AcceptanceTest ๋ค์ด ์๋์ ๋ชปํ๋ค. (Python ์์ ์ ๊ทํํ์ ์ด์ฉ. ๋ฐ์ดํฐ ํ์ฑ & ์ถ์ถ. Prometheus UI ๊ฐ ๋ฐ๋๋ฉด ๋ค์ ๋ฐ๋) ์ ์ ๊ตฌ๊ฒฝํ ๊ฒ์ฒ๋ผ XPath ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ถ๋ฆฌํด๋ณด๊ฑฐ๋, Prometheus ์ชฝ์์ XML + XSLT ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ถ๋ฆฌํ๋ค. ํ์ง๋ง, ๊ทธ๋ฌ๊ธฐ์ ํ์ฌ Prometheus ์ JSP ๋ถ๋ถ์ ์ ๋ถ ๋ฐ๊พธ๋๋ฐ ๋ถ๋ด์ด ํฌ๋ฆฌ๋ผ ํ๋จ, Servlet Controller ์ค Service ํด๋์ค ๋ถ๋ถ์ ๋ํด ํ
์คํธ ์ฝ๋๋ฅผ ๋ถ์ด๋ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋๋ค. ํ์ง๋ง, ๋ง์ ์์ฑํด๋ณด๊ณ ๋๋ ๊ทธ ๋ํ ํ
์คํธ ์ฝ๋์ ํฌ๊ธฐ๊ฐ ํฌ๊ธด ํ๋ค.
Service ์ Controller ๊ฐ ๊ฑฐ์ Composition ์ด๊ณ , ๊ทธ๋ก ์ธํด Controller ๋ Mapper, Recommender ๋ค์ด ์ค์คํ ์์กด์ฑ์ ๊ฐ์ก๋ค. ๊ฐ๊ฐ์ Mapper, Recommender ๋ค์ด DB ๋ฅผ ์ฐ๋ฏ๋ก ์ด๋ฅผ Mock Object ๋ฅผ ์ธ๊น ํ๋ค๊ฐ, ์ด์ฐจํผ ํ์ฌ ์์ฑํ๋ ๋ถ๋ถ์ด AcceptanceTest ์ ์ผ๋ถ์ด๋ฏ๋ก ์ค์ ๊ฐ์ฒด๋ฅผ ๊ทธ๋ฅ ์ด์ฉํด๋ ์ข๊ฒ ๋ค๊ณ ํ๋จ, ๊ทธ๋๋ก ์ด์ฉํ๊ณ ์์ฑ.
----
์ง๊ธ ์๊ฐํด๋ณด๋ฉด, ์ด๋ฏธ ํ ์คํธ๊ฐ ์๋ ์ฝ๋๋ค์ ๋จผ์ ๊ฐ๋ฅํํ ๋จ์ํ๊ฒ ๋ฆฌํฉํ ๋งํ๊ณ ๊ทธ ๋ค์ Service ์ชฝ ๋ฆฌํฉํ ๋ง์ ํ๋ค๋ฉด ์ด๋ ํ์๊น.
----
ํ ์คํธ ์ฝ๋ ์์ฑ์ ์ํ ์ผ๋ถ ์ฝ๋ ๋ณต์ฌ & ๋ฉ์๋ ์ถ๊ฐ & ํด๋์ค ์ถ๊ฐ.
----
Test ํต๊ณผํ๋ ๋งํผ๋ง์ด ๋ด๊ฐ ๋ง๋ ๊ฒ์ด๋. ๋๋๋ง๊ณ ๋๋๋ง๊ณ . ๊ฑฑ์ ๋ง์ ๊ฑฑ์ ๋ง์ ๊ฑฑ์ ๋ง์. -_-;
์ด๋ฒ์ ๋ฆฌํฉํ ๋ง์ ํ๋ ค๊ณ ํ ๋ Legacy Code Refactoring ์ด๋ผ๊ณ ์์ ํด์ ๊ทธ๋ด๊น. Coverage Test๋ฅผ ์๋ฒฝํ๊ฒ ์์ฑํ๋ ๊ฒ์ ๋ํด ๋ถ๋ด๊ฐ์ ๋๊ผ๋ค. ์์ ์ ์ ์ฉํ์๋ '์์. ์ด๋ฏธ ๋ค ๋์ด์์ด์.~' ๋ฅผ ๋ค์ ์ ์ฉํด๋ณผ๊น.
----
Refactoring Catalog ์ ๋ . ์ ๋ฆฌํฉํ ๋ง ์ฑ ์ ์ ๋ฐ์ด ๋ฆฌํฉํ ๋ง์ ์ ์ฐจ์ธ์ง์ ๋ํด ํผ์์ ๊ฐ๋์ค.; ์ Extract Method ๋ฅผ ํ ๋ '๋ฉ์๋๋ฅผ ์๋ก ๋ง๋ ๋ค' ๊ฐ ๋จผ์ ์ธ์ง. Extract Class ๋ฅผ ํ ๋ '์ ํด๋์ค๋ฅผ ์ ์ํ๋ค'๊ฐ ๋จผ์ ์ธ์ง. (์ ๋๋ก '์์ค ์ผ๋ถ๋ฅผ ์๋ผ๋ธ๋ค'๋ '์์ค ์ผ๋ถ๋ฅผ comment out ํ๋ค' ๊ฐ ๋จผ์ ๊ฐ ์๋๋ผ๋ ๊ฒ.)
5 (๋ชฉ):
ํ์ ์ฃผ๋ ๋ง.
3 (ํ): DDD ์ฑ
ํ์ง ๊ถ๋ฆฌํ๊ธฐ
์ฑ
ํ์ง๋ฅผ ๊ถ๋ฆฌํ ๋๋ ์ผ์ข
์ ๋์์ธ์ด๋๊น. ํ์ง๋ง, ์๊ฐ๋์์ธ์ชฝ์ ๋ํด์๋ ์๋ ๋ฐ ์์ผ๋ฏ๋ก, ๊ทธ๋ฅ ๊ฐ์ธ์ ์ธ ์ฐ์์์ฉ๋๋ก ์งํํ๋ค.
DDD ํ๋๊น XP ๋ฐฉ๋ฒ๋ก ๊ณผ ์ ๋ง๋๋ค๋ ๋ง์ด ์๊ฐ์ด ๋ฌ์๊ณ , ๊ทธ๋ฌ๋ค๊ฐ TDD ์๊ฐ์ด ๋๊ณ , ๊ทธ๋ฌ๋ค๊ฐ Calvin & Hobbes ๊ฐ ์๊ฐ์ด ๋๊ณ (์ฌ๊ธฐ๊น์ง ํ์ค๊ธฐ)
DDD ํ๋๊น JuNe ํ์ด '์ ํ๊ธฐ ์ฌ๋ณผ์์ผ๋ฉด ์ข๊ฒ ๋ค~' ๋ผ๊ณ ํ๋ง์ด ์๊ฐ๋๊ณ (DDD ๋ -_-) ๊ทธ๋์ ์ ํ ์ด๋ฏธ์ง๊ฐ ํ์ํ ๊ฒ์ด๋ผ ์๊ฐ์ด ๋ค์ด ์ ํ๊ธฐ ํด๋ฆฝ์ํธ๋ฅผ ๊ฒ์ํ๊ณ , ๊ทธ๋ฌ๋ค๊ฐ ์ ํ๊ธฐ ํด๋ฆฝ์ํธ์ค ์บ๋น์ด ์ ํ๋ฐ๋ ์ด๋ฏธ์ง๊ฐ ํ๋ ์์๊ณ (์ฌ๊ธฐ๊น์ง ํ์ค๊ธฐ)
๋๊ฐ๋ฅผ ๊ต์ฐจ์ํค๋ค๊ฐ ๊ฐ๋ฑํ๋ค๊ฐ ๊ฒฐ๊ตญ ๋ค์๊ณผ ๊ฐ์ ์์ด ๋์๋ค๋. -_-; (์๋๋ ๊ทธ๋ฅ ์บ๋น์ด ์ ํ๋ฐ๋ ์ด๋ฏธ์ง๋ง ์์๋๊ฑฐ๋, ์บ๋น์ด ์ ํ์ ๋ฝ๋๊ฑฐ, ์บ๋น์ด๋ ํ์ค๊ฐ ์ด์์ง ๊ทผ์ฒ์ ๋์ผ๋ก ์ด์ฌํ ๋ด์์๋๊ณ '์ ์ฐ๋ฆฌ์ ๋ด์ ํผํผํด~' ์ด๋ฐ์์ผ๋ก ์ข์ํ๋ ๋์ ์ด์์ง ์์ ์จ๊ฐ '์ด๋์ ์์๋ค;' ํ๋๊ฑฐ ๋ฑ๋ฑ - ๋ง์น ํ๋ก๊ทธ๋๋จธ : ๊ณ ๊ฐ ์ ๊ด๊ณ์ ๋งคํํฌ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์ด์ - ๋ง์๋๋ฐ. ๊ฐ์๋ก ๋ฐฐ๊ฐ ์ฐ์ผ๋ก ๊ฐ๋๊ฒ ๊ฐ๋ค๋. -_-;)
ProjectPrometheus Refactoring ๊ถ๋ฆฌํ๊ธฐ
Refactoring ์ ํ๊ธฐ์ Todo ๋ฆฌ์คํธ๋ฅผ ์ ๋ฆฌํ๋๋ฐ๋ง 1์๊ฐ์ ๋๋ฅผ ์ฐ๊ณ ์ค์ ์์
์ ๋ค์ด๊ฐ์ง ๋ชปํ๋ค. ์ ์ค๋๊ฑธ๋ ธ์๊น ์๊ฐํด๋ณด๋ฉด Refactoring ์ ํ๊ธฐ์ ์ถฉ๋ถํ Coverage Test ์ฝ๋๊ฐ ์๋ค ๋ผ๋ ์ ์ด๋ค. ํ์ฌ์ UnitTest 85๊ฐ๋ค์ ์ ๋๋ก ๋์๊ฐ์ง๋ง, AcceptanceTest ์ ๊ฒฝ์ฐ ํจ๋ถ๋ก ๋๋ฆด ์๊ฐ ์๋ค. ์๋ํ๋ฉด ํ์ฌ Release ๋์ด์๋ ์ด์ ๋ฒ์ ์ ์ํฅ์ ๋ผ์น๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๋ถ๋ถ์ ๋ณด๋ฉด์ ์ JuNe ์ด DB ์ ๋ํด ์ธ ๋ถ๋ถ์ผ๋ก ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค๊ณ ์ด์ผ๊ธฐํ๋์ง ๊นจ๋ซ๊ฒ ๋์๋ค. ์ฆ, DB ์ ๊ด๋ จํ์ฌ ๊ฐ์ธ UnitTest ๋ฅผ ์ํ ๊ฐ๋ฐ์ ์ปดํจํฐ ๋ด ๋ก์ปฌ DB, ๊ทธ๋ฆฌ๊ณ Integration Test ๋ฅผ ์ํ DB, ๊ทธ๋ฆฌ๊ณ ๋ฆด๋ฆฌ์ฆ ๋ ์ ํ์ ์ํ DB ๊ฐ ํ์ํ๋ค. ("๋ฒ์ ์
์ ์ํด ๊ธฐ์กด์ ์์ฑํ ๋ฐ์ดํฐ๋ค์ ๋ ๋ฆฝ๋๋ค" ๋ผ๊ณ ์๋น์ค ์
์ฒด๊ฐ ์ด์ผ๊ธฐ ํ๋ค๋ฉด ์ผ๋ง๋ ํฉ๋นํ๊ฐ.; ๋ฒ์ ํจ์น๋ฅผ ์ํ, ํตํฉ ํ
์คํธ๋ฅผ ์ํ DB ๋ ๋ฐ๋ก ํ์ํ๋ค.)
๊ทธ๋ฆฌ๊ณ , ๊ฐ๊ฐ์ ํ
์คํธ๋ค์ ์ํ DB Property ์ค์ ์ด ์์ ๋ก์ฐ๋ ค๋ฉด Server Property ํ์ผ์ ์คํฌ๋ฆฝํธ ํ์ผ๋ก ๋น ์ ธ๋์์ผ ํ๋ค. (ํ
์คํธ ๋๋ฆด๋๋ง๋ค ํ๋ก๊ทธ๋จ ์ฌ์ปดํ์ผ ํ๋ค๋๊ฑด, ์ถํ ํ๋ก๊ทธ๋จ ์ปค์ก์๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋๋ค.)
๊ทธ๋ฆฌ๊ณ , ์ด์ ์ ProjectPrometheus ์์
ํ ๋์ ์๋ธ๋ฆฟ ํ
์คํ
๋ฐฉ๋ฒ์ ๋ชฐ๋๋ค. ๊ทธ๋์ ์ง๊ธ ProjectPrometheus ์ฝ๋๋ฅผ ๋ณด๋ฉด ์๋ธ๋ฆฟ ๋ถ๋ถ์ ๋ํด ํ
์คํธ๊ฐ ์๋ค. WEB Tier ์ ๋ํ ํ
์คํ
์ ์ ์ ์ผ๋ก AT ์ ์์กดํ๋ค. ์ด๋ฒ์ ๊ธฐ์ฌ๋ฅผ ์ธ๋ ๋งํด ํ์ธ๋ฌ์ ๊ธ์ ์ธ์ฉ, "WIMP Application ์ ๋ํด์ WIMP ์ฝ๋๋ฅผ ํ์ค๋ ๋ณต์ฌํ์ง ์๊ณ Console Application ์ ๋ง๋ค์ ์์ด์ผ ํ๋ค" ๋ผ๊ณ ์ด์ผ๊ธฐํ์ง๋ง, ์ด๋ WEB ์์๋ ๋ค๋ฅผ ๋ฐ๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค.
๊ฐ์ผ ํ ๊ธธ์ ์ธ์ ๋ ๋ฉ๊ฒ๋ง ๋๊ปด์ง๋ค.
2 (์): ProjectPrometheus ์์ค ๋ฆฌ๋ทฐ & ๋ฆฌํฉํ ๋ง. audio book MP3 ๋จ๊ธฐ
Prometheus ๋ฅผ ๋ณด๋ฉด ํ
์คํธ๊ฐ ํต๊ณผํ๋ค ์ํ๋ค๋ฅผ ๋ฐ๋ณตํ๋ค. ํ๊ต ๋์๊ด ์์คํ
์ ์์ ์ฑ์ด ๊ทธ๋ฆฌ ๋ฐ์ด๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. (๋ฐ๊พธ๊ณ ๋ ๋ค ์คํ๋ ค ๋งจ๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํจ๋ค. ๋๊ฐ์ ์กฐ๊ฑด์์์ ํ๋ฒ์ ๊ฒ์์ด ๋๊ณ ํ๋ฒ์ ๊ฒ์์ด ์๋๋.. ์ฉ)
์ด์ ์ TDD ํ ๋ ์ด๊ธฐ Library ํด๋์ค์ ๋ํด Mock ํด๋์ค ๋ง๋ค์๋ค๊ฐ ์์ ๋ฒ๋ ธ๋๋ฐ, ๋ค์ Library Mock ํด๋์ค๋ฅผ ๋ง๋ค์ด์ผ ํ ๊ฒ ๊ฐ๋ค. ๋ฆฌํฉํ ๋ง ํ ๋ Fail ๋ ํ
์คํธ๋ก ๋ฆฌํฉํ ๋ง์ ํ ์๋ ์์ํ
๋.
Composition ์ ๋ฌธ์ ์
์ด์ ์ Delegation ํ๋ ํด๋์ค๋ฅผ ํด๋น ํด๋์ค ๋ด์ ๋ฉค๋ฒ๋ก ๋์๋๋ฐ. ์๋ฅผ ๋ค๋ฉด ์ด๋ฐ์์ผ๋ก
์ด๋ฅผ ์์ฑ์์ ๋ฃ์ด์ฃผ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ์ด ๋ ์ฌ๋ฐ๋ฅธ ๋์์ธ์ด๋ผ ์๊ฐ๋๋ค. ๋ค์์ฒ๋ผ.
ํด๋น ํด๋์ค ๋ด์์ ์์ฑํ๋ ๋์์ธ์ ๊ทธ ํด๋์ค๋ฅผ ๊ต์ฒดํด์ค ์๊ฐ ์์ผ๋ ์ ์ฐํ ๋์์ธ์ด ์๋๋ค. ๊ทธ๋ ๋ค๊ณ setter ๋ฅผ ๋๋ ๊ฒ๋ ์ข์ ๋์์ธ์ ์๋๊ฒ ๊ฐ๊ณ . (ํ๋ก๊ทธ๋๋ฐ ์คํ ์ค๊ฐ์ Delegation ํ๋ ๊ฐ์ฒด๋ฅผ ๊ต์ฒดํ ์ผ์ ๋๋ฌผ๋ค. State Pattern ์ด๋ Strategy Pattern ์ด ์๋์ด์.) ์๋ง ์ฒ์์ Mock Object ๋ฅผ ์ด์ฉํ์ฌ BookMapper ๋ฅผ ๋ง๋ค์์๋ค๋ฉด Connection ์ ์ง์ ์ด์ฉํ๊ฑฐ๋, Library ๊ฐ์ฒด๋ฅผ ๋ด๋ถ์ ์ผ๋ก ์ง์ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ฌ ์ด์ฉํ๋ ๋์์ธ์ ํ์ง ์์์ ๊ฒ์ด๋ ์๊ฐ์ด ๋ ๋ค.
----
์ฌ์ค
factory method๋ฅผ ์ฌ์ฉํด๋ผ.
์ด๊ฑธ ์์๋ฐ์์ getLibrary๋ฅผ overrideํ๊ณ MockObject๋ก ์ฐ๊ฒฐํด๋ผ.
--JuNe
----
audio book
์ด์ ๊ฐ๋ง์ ๊ต๋ณด์ ๋ค๋ ค Alice in wonderland ์ Dr.Jekyll & Mr.Hyde ์ค๋์ค ๋ถ์ ์๋ค. ๊ต๋ณด์ชฝ ์ธ๊ตญ์ด ๋ถ์ผ์ชฝ์ด ๋น๊ต์ ์ ๋ฆฌ๊ฐ ์ ๋์ด์๋ ๋ฏ ํ๋ค. ๋ค์์๋ ์ข
์ข
๋ค๋ ค์ผ๊ฒ ๋ค.
Alice in wonderland ์ ๊ฒฝ์ฐ ์ฌ์์ฑ์ฐ๊ฐ ์ฝ์ด์ค๋ค. ์ด์ ์ ๋ค์๋ Sherlock Holmes ์ ๊ฒฝ์ฐ์ ์ต์ํด์ ธ์ฌ์์ธ์ง, ๋ฐ์์๋๊ฐ ๋๋ฆผ์๋ ๋ถ๊ตฌํ๊ณ ์ดํด๋๊ฐ ๋จ์ด์ก๋ค. ์ด์ ์๋ ๊ทธ๋ฅ ๋ฃ๊ณ ๋จธ๋ฆฟ์์์ ๋ฌธ์ฅ์ ๊ทธ๋ฆฐ๋ค์ ์ดํดํ๋ ๋ฐฉ์์ผ๋ก ํ๋๋ฐ, ์ด๋ฒ์๋ ๋ฐ์์ฐ๊ธฐ ์ฐ์ต์ ํด๋ด์ผ๊ฒ ๋ค.
์ด์ ์ Alice in wonderland ์ฑ ์ด ์์์ง๋ง ์ ๋๋ก ์ดํด๋ฅผ ์ ๋ชปํ์๋๋ฐ, ๊ฐ์ธ์ ์ผ๋ก ์์ด์์ค์ด ๋ธ๋ฆฌ๋๊ฒ์ ๋ํด ๊ทธ๋ฅ ๋ฌธ์ ์ํฉ์ผ๋ก๋ง ๋์๊ฒ์ด ์๋ชป์ธ๊ฒ ๊ฐ๋ค. ๋ฌธ์ ๋ฅผ ๋ฌธ์ ๋ก ์ธ์ํ์ง ์๊ณ , ๊นจ๋ซ์์ผ๋ก ์ธ์ํ๋๋ก ๋ ธ๋ ฅํ๋๊ฒ์ ์์ด๋ฒ๋ฆฌ๊ธฐ ์ฝ๋ค. ์ด๋ฒ์๋ '๋ ์ฌ์ด ์๋ฃ๋ฅผ ์ฐพ๋๋ค'๋ผ๋ ๋ฐฉ๋ฒ์ด ๋ ์ฌ๋ผ์ ๋คํ์ด๋ค.
์นด์ธํธ๋ฅผ ์ ์์ฐ๊ธฐ ๋๋ฌธ์ ํ
์ดํ๋ก๋ ์ ์๋ค์๊น๋ด Cool Edit ์ด์ฉ, MP3 ๋ก ๋
น์ํ๋ค. ์จ์ด๋ธ ํ์ผ๋ ๊ฒฐ๊ตญ์ ๋ฐ์ดํฐ์ด๊ธฐ์, ๋ง์น ํ
์ดํ ์งค๋ผ์ ์ด์ด๋ถ์ด๋ ๋ฏํ ๋๋์ผ๋ก ์จ์ด๋ธ ํ์ผ ํธ์งํ๋๊ฒ ์ฌ๋ฏธ์์๋ค. ์ด์ ์ ๋ฅด๋ค์์ค ํด๋ฝ๋ ์จ์ด๋ธ ํ์ผ์ ๋ํด ํ
์คํธํ์ผ๋ก ๋ณํ & ์ธ๋ฑ์ฑํ๋ ํ๋ก๊ทธ๋จ์ด ํ์ํ ์ด์ ๊ฐ ์๊ฒผ๋ค. ์ ์ฒด ๋
น์์ ํ๊ณ ๋ ๋ค, Chapter ๋ณ๋ก ์งค๋ผ์ ํ์ผ๋ก ์ ์ฅํ๋ ค๊ณ ํ๋๋ฐ, ์จ์ด๋ธ๋ฐ์ดํฐ์ ๋ํด ๊ฒ์์ ํ ์๊ฐ ์๋ค! ๊ฒฐ๊ตญ '๋๊ฐ ๋ช๋ถ์ง๋ฆฌ ๋ถ๋์ผ ๊ฒ์ด๋ค' ๋๋ '๋๊ฐ ๋ค์์ฑํฐ๋ก ๋์ด๊ฐ๋ ๋ช์ด์ ๋ ๋๋ ์ด๊ฐ ์์ผ๋๊น.. ์๋ฆฌ ๋นํธ์ ๋นํธ ์ฌ์ด๊ฐ ๋๊ฐ ์ด์ ๋ ๋๋ฉด ๋ง๊ฒ ์ง...' ์์ผ๋ก ์ฐพ์์ ํ์ผ๋ก ์ชผ๊ฐ๊ธด ํ์ง๋ง. ์จ์ด๋ธ ๋ฐ์ดํฐ์ ๋ํ text ๊ฒ์์ด ์ผ์ํ๋๋ค๋ฉด ์ด๋ฌํ ๊ณ ์๋ ์ํ๊ฒ ์ง ํ๋ ์๊ฐ์ด ๋ ๋ค.
- ์์ด ์ฝ๊ธฐ ์ค๋น



- TPOCP ์ฝ๊ธฐ
- ์ด๋ ค์ : ์์ฝ์ ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ?
ํ๊ธ ์ฑ ์ ์ฝ์๋์ ํ๊ธ๋ก ์์ฝํ๋ค. ์์ด์ฑ ์ ์ฝ๋ ์ค ํ๊ธ๋ก ์์ฝํ๋ ค๋ ๋ด๊ฐ ์ฝ์๋ ๊ฐ๊ธ์ ํ๊ธ๋ก ํด์ ์ํ๋ ค๊ณ ํ๋ ์ฐ์ต์ค์ด๋ค. ๊ทธ๋ฌํ๊ธฐ์ ๋ ์ง๊ธ ์์ด ์๋ฌธ๋ฅ๋ ฅ์ด ๋ฐ์ด๋์ง ์๋ค.
- ์๋ชป๋ ์ต๊ด : ๋์ถฉ ์ฝ๊ธฐ
์ฑ ์ ์ฝ์ผ๋ฉด์ 'ํด์์ด ์๋๋ ๋ฌธ์ฅ' ์ ๊ทธ๋ฅ ๋์ด๊ฐ๋ฒ๋ ธ๋ค. ์ฆ,HowToReadaBook์์์ ์ฒซ๋ฒ์งธ ๋จ๊ณ๋ฅผ ์์ง ์ ๋๋ก ๋ชปํ๊ณ ์๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌํ ์ํฉ์์๋ Analyicial Reading ์ ํ ์๊ฐ ์๋ค.
- ์ ์ด๋ฐ์์ผ๋ก ์ฝ์๊น ํ๋ ์๊ฐ์ ํด๋ณด์๋๋ฐ, ์์ด๋ก ๋ ์ฑ
์ ์ฝ์๋๋ ์ฃผ๋ก ๋ฌธ์ ํด๊ฒฐ์ ์ํด ์ฝ์๋๊ฐ ๋ง์์ ๊ทธ๋ฐ๊ฒ ๊ฐ๋ค. (์์นญ ๊ณ ๋ฑํ๊ต ์์ด์ํ์ฉ ์ฝ๊ธฐ) ๋นจ๋ฆฌ ์ฝ์ผ๋ ค๊ณ ๊ฐ์ธ์ ์ธ ์์ญ์ ๋๋ฌด ์ค์ฉํ๋๊ฒ ๊ฐ๊ธฐ๋ ํ๋ค. ๊ทธ๋ฆฌ๊ณ , ๋จ์ด๋ฅผ ์ต๋ํ๋๋ฐ ์ข ๋ ๋ฏผ๊ฐํด์ง ํ์๊ฐ ์์ ๊ฒ ๊ฐ๋ค. (์ฌ๋ฌ๋ฒ ์ฝ๊ธฐ ๋ฑ) Chapter 7,8 ์ฝ๋๋ฐ ๋ชจ๋ฅด๊ฑฐ๋ ๋ป์ ๋๊ฐ๋ง ์๊ณ ์์ด์ ์ด๋ป์ธ์ง ์ ๋ป์ธ์ง ์ ๋งคํดํ๋ ๋จ์ด๋ค ํฉ์ณ๋ณด๋ 230๊ฐ์ ๋ ๋๋ค. ํ์ฌ ์์ด์์ค์ ์คํ๊ต 1ํ๋
์์ค์ ๋์ธ๊ฒ ๊ฐ๋ค.
- GOF ๋ฒ์ญ์ ํ ๋์? - ๋ฒ์ญ์ ํ ๋์ ์ ๋งคํ ๋จ์ด๋ค์ ๋ํด ์ ๋ถ ์ฌ์ ์ ์ฐพ์๋ณด๊ฒ ๋๋ค. (์์ ํ ์ง์ญ์ ํ๋ฏ๋ก) ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ์ง๋ง, ์์ดํ์ต ์ด๊ธฐ์ ์์ฃผ ํด๋ณด๋๊ฒ ์ข์ง ์์๊น ์๊ฐํ๋ค. (๊ผญ ํ๊ธ ๋ฒ์ญ์ด ์๋, ์ด๋ ค์ด ์์ด์ ๋ํ ์ฌ์ด ์์ด๋ก์ ํด์ค. ์ด๊ฒ ์ข ๋ ์ด๋ ค์ฐ๋ ค๋..)
- ์ด๋ ค์ : ์์ฝ์ ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ?
- ๊ทธ๋ ๋ค๋ฉด, ์ด๋ป๊ฒ
HowToReadaBook์ด๋ 'Learning, Creating, and Using Knowledge' ์ ์ฝ๊ธฐ ์ฌ์ ์๊น?
- ์ฌ์ ์ง์์ด ์ด๋ฏธ ์์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํ๋จํ๋ค.
HowToReadaBook๋ ํ๊ธ ์์ ์ ์ด๋ฏธ ์ฝ์์๊ณ , 'Learning, Creating, and Using Knowledge' ์ ๊ฒฝ์ฐ Concept Map ์ ๋ํ ์ดํด๊ฐ ์์๋ค. PowerReading ์ ๊ฒฝ์ฐ ์๋ ํํ ์์ฒด๊ฐ ์ฝ๋ค.
- ๋ฐ๋ฉด, TPOCP ์ ๊ฒฝ์ฐ ์ฌ์ ์ง์์ ๊ฐ์ง๊ณ ์์ง ์์๊ณ , ํํธ '์๋ก ์ฝ๋ ์ฑ
์ ๋ํด์ ์ฌ์ ์ง์์ผ๋ก ํด์ํ๊ธฐ'๋ฅผ ์กฐ์ฌํ๊ณ ์์๋ค. (์ด๊ฑด ์ข ๋คํ์ธ๋ฏ ํ๋ค.) ๊ทธ๋ฆฌ๊ณ RT ์ดํ์ ๋ค๋ฅธ ์ฌ๋๋ค ์๊ฒฌ์ ๋ค์ด๋ณด๋ฉด, ์ฌ์ด ์์ด๋ ์๋ ๊ฒ ๊ฐ๋ค.
- ์ฌ์ ์ง์์ด ์ด๋ฏธ ์์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํ๋จํ๋ค.
- ์ ๋ฆฌ
- ํ์ฌ ๋ด ์์ด์์ค์ ๋ณด๊ฑด๋ฐ, ์ปดํจํฐ ๊ด๋ จ ์์ ์ด์ธ์ ์ฝ๊ณ ์ผ์์ ์ธ ์ฑ
๋ค์ ๋ํ Input ์ด ํ์คํ ๋ถ์กฑํ๋ค. ์์ด๋ก ๋ ์ฑ
๋ค์ ๋ํด์๋ ์ข ๋ ์ฌ์ด ์ฑ
๋ค์ Elementary Reading ๋จ๊ณ๋ถํฐ ํด๋ด์ผ๊ฒ ๋ค.
- ์ง๊ธ ํ์ฌ ์ํฉ์์ ์ ์ ํ ์๋๋ ์ฝ 70 WPM ์ธ๊ฒ ๊ฐ๋ค. ๋ชจ๋ฅด๋ ๋จ์ด ํ๋ํ๋ ์ ๋ถ ์ฌ์ ์์ ์ฐพ์๋ณด๋ ์๋ ๊ธฐ์ค. ์ด๋์ ๋ ์ดํ๋ค์ ์ต์ํด์ง๊ณ ๋ ๋ค.
- ํ์ฌ ๋ด ์์ด์์ค์ ๋ณด๊ฑด๋ฐ, ์ปดํจํฐ ๊ด๋ จ ์์ ์ด์ธ์ ์ฝ๊ณ ์ผ์์ ์ธ ์ฑ
๋ค์ ๋ํ Input ์ด ํ์คํ ๋ถ์กฑํ๋ค. ์์ด๋ก ๋ ์ฑ
๋ค์ ๋ํด์๋ ์ข ๋ ์ฌ์ด ์ฑ
๋ค์ Elementary Reading ๋จ๊ณ๋ถํฐ ํด๋ด์ผ๊ฒ ๋ค.
ReadershipTraining
- ์ค์ ๋ชฉํ์ค ํ๋๊ฐ RT ๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๊ณ , ZeroPage ์์ RT ์คํ์ ์ด๋ป๊ฒ ํ ๊น์ ๋ํ ๊ถ๋ฆฌ.
- ์งํ๋ฐฉ๋ฒ (์ผ๋จ ์ด๋ ํ์๋ ๋ฐฉ๋ฒ)
- ๋ฐ์ ํ ์ฌ๋๋ค ์ค์ฌ์ผ๋ก ๋ฐ์ ์๊ฐ ํด๋น ๋ด์ฉ ์ ๋ฆฌ.
- Facilitator ๋ ๋ฐ์ ์, ๋๋ ์ฝ๋ ์ฌ๋๋ค์ด ์ง๋ฌธ์ ๊ธฐ & ์ฌ๋๋ค ์๊ฒฌ ์์ ํ ๋ก
- ๊ฑธ๋ฆฐ ์๊ฐ : 6์ 30๋ถ ~ 2์. (์ค๊ฐ ํด์์๊ฐ 1์๊ฐ ์ ๋) Chapter 12๊ฐ ๊ธฐ์ค.
- ๋ฐ์ ํ ์ฌ๋๋ค ์ค์ฌ์ผ๋ก ๋ฐ์ ์๊ฐ ํด๋น ๋ด์ฉ ์ ๋ฆฌ.
- ์ค์ ๋ชฉํ์ค ํ๋๊ฐ RT ๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๊ณ , ZeroPage ์์ RT ์คํ์ ์ด๋ป๊ฒ ํ ๊น์ ๋ํ ๊ถ๋ฆฌ.
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ ํ๊ณ ๋ฐํํ ์ ์์ผ๋ ค๋ฉด ์ฑํฐ ๋น 4-5๋ฒ ์ ๋ ์ ๋
์ ํด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ์ด๋ฒ์ ๋ฐ์ ๋ฅผ ์๋นํ ์ํ๋ค๊ณ ์๊ฐ๋๋ ์ฌ๋๋ค์ ๋ณด๋, ํ๋ช
์ ์ ์ด๋ ์ผ์ฃผ์ผ์ ๋ถํฐ ์ค๋นํ๊ณ , ํ๋ช
์ ํด๋น ์ฑํฐ๋ฅผ 3-4๋ฒ์ ๋ ์ฝ์๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฌ๋๋ค์ด ์ด์ผ๊ธฐํ ์ ์์ ์ ๋๊ฐ ์ด๋์ ๋์ด๋๋ฉด, ํด๋น ์์ ์ํฉ์ ๋ํด ์ ์ ํ๊ฒ ์์ ์ ์๋ก ๋งํ ์ ์์์ ๋์ด๊ฑฐ๋, ๋๋ ์์ฝํ ๋ด์ฉ์ ๊ฑฐ์ ๋ณด์ง ์๊ณ ๋ ์ด์ผ๊ธฐํ ์ ์๋ ์์ค์ด์๋ค. ๋๋ช
์ ๊ฒฝ์ฐ ์ธ๋ถ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๊ธฐ๋ ํ๋ค.
- ํ๋ช
์ ํด๋น ์ฃผ์ ์ด๋ฅผ ์ด์ผ๊ธฐํ๊ณ , ์ด ์ฃผ์ ์ด ๋ป์ด ๋ฌด์์ธ์ง๋ฅผ ์ด์ผ๊ธฐํ๊ณ , ๊ทธ์ ์ฐ๊ฒฐ๋๋ ์ด์ผ๊ธฐ๋ฅผ ํด์ฃผ๋ ์.
- ์ด๋ฌํ ์ฌ๋๋ค์ด ์ฑ
์ ์ฝ์๋ 5๋ถ๊ฐ ์ฝ์ผ๋ฉด์ ์ด๋ค ๊ณผ์ ์ ์ด๋์ ๋ ์์ค์ผ๋ก๊น์ง ๊ฑฐ์น๋์ง์ ๋ํด ๊ตฌ๊ฒฝํด๋ณผ ์ ์์ด๋ ์ข์๊ฒ ๊ฐ๋ค. ๊ทธ๋ฌํ ์ ์์๋ RT ๋ Chapter ๋จ์๋ก Pair-Reading ์ ํด๋ด๋ ์ฌ๋ฏธ์์ ๋ฏ ํ๋ค. '์ฝ๋ ๋ฐฉ๋ฒ'์ ์๊ฐํ๋ฉฐ ์ข ๋ ์์์ ์ผ๋ก ์ฝ์ ์ ์์ง ์์๊น.
- ์ด๋ฌํ ์ฌ๋๋ค์ด ์ฑ
์ ์ฝ์๋ 5๋ถ๊ฐ ์ฝ์ผ๋ฉด์ ์ด๋ค ๊ณผ์ ์ ์ด๋์ ๋ ์์ค์ผ๋ก๊น์ง ๊ฑฐ์น๋์ง์ ๋ํด ๊ตฌ๊ฒฝํด๋ณผ ์ ์์ด๋ ์ข์๊ฒ ๊ฐ๋ค. ๊ทธ๋ฌํ ์ ์์๋ RT ๋ Chapter ๋จ์๋ก Pair-Reading ์ ํด๋ด๋ ์ฌ๋ฏธ์์ ๋ฏ ํ๋ค. '์ฝ๋ ๋ฐฉ๋ฒ'์ ์๊ฐํ๋ฉฐ ์ข ๋ ์์์ ์ผ๋ก ์ฝ์ ์ ์์ง ์์๊น.
- ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋์ ๋นํด ํด๋น ์ดํ์ ๋ํ ์ฌ์ ์(Restatement) ๋จ๊ณ๊ฐ ํ๋๋ ๋๋จ๊ณ์ ๋ ๋ ๋์๋๊ฑธ๋ก ๊ธฐ์ตํ๋ค. ๋ด๊ฐ ์ฑ
์ ์ฝ์๋ ์ง๋ฌธ์ ์ ๋ชป๋ง๋ค์ด๋ด๋ ๊ฒ๋ ํ ๋ชซํ๋๊ฒ ๊ฐ๋ค.
- ์ด๋ฒ์ ๋ฐ์ ๋ฅผ ์๋นํ ์ํ๋ค๊ณ ์๊ฐ๋๋ ์ฌ๋๋ค์ ๋ณด๋, ํ๋ช
์ ์ ์ด๋ ์ผ์ฃผ์ผ์ ๋ถํฐ ์ค๋นํ๊ณ , ํ๋ช
์ ํด๋น ์ฑํฐ๋ฅผ 3-4๋ฒ์ ๋ ์ฝ์๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฌ๋๋ค์ด ์ด์ผ๊ธฐํ ์ ์์ ์ ๋๊ฐ ์ด๋์ ๋์ด๋๋ฉด, ํด๋น ์์ ์ํฉ์ ๋ํด ์ ์ ํ๊ฒ ์์ ์ ์๋ก ๋งํ ์ ์์์ ๋์ด๊ฑฐ๋, ๋๋ ์์ฝํ ๋ด์ฉ์ ๊ฑฐ์ ๋ณด์ง ์๊ณ ๋ ์ด์ผ๊ธฐํ ์ ์๋ ์์ค์ด์๋ค. ๋๋ช
์ ๊ฒฝ์ฐ ์ธ๋ถ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๊ธฐ๋ ํ๋ค.
- 2ํ๋
, 3ํ๋
๋ค์ ๋ํด ์ข ๋ ์ค์ฉ์ ์ธ RT๋ก ํ๋ค๋ฉด, ํด๋น ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ RT๋ฅผ ํ ์ ์์๊ฒ๋ ๊ฐ๋ค. (๋
ธํธ๋ถ 2๋์ ๋ ์ด์ฉ, ์ฌ๋๋ค์ด ๋ค๊ฐ์ด ๋๋ฌ์ ๋ณด๋..)
- ์ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ์ ํ๋ ์ฌ๋์๊ฒ๋ ์ ์ฒด ํ๋ก์ ํธ ๊ณผ์ ์ ์ดํดํ ์ ์๋ ํ๋ฃจ๋ฅผ, (์ด๊ฑด RT ๋ณด๋จ ๋ฐค์๊ธฐ ํ๋ก์ ํธ ํ๋ฃจ์ง๋ฆฌ๋ฅผ ๊ฐ์ด ํด๋ณด๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.) 2-3ํ๋
๋๋ ์ค์ ๋
ผ๋ฌธ์ด๋ ์ํํธ์จ์ด ํ๋ฌ๋ค์ ๋๋ ์์๋ผ ๋ถ๋ฆฌ๋ ์ฑ
๋ค (How To Read a Book, ์ด์ฑ์ ๊ธฐ๋ฅ, Mind Map ์ด๋ Concept Map ๋ฑ)์ ๊ฐ์ด ์ฝ๊ณ ์ ์ฉํด๋ณด๋ ๊ฒ๋ ์ข์๊ฒ ๊ฐ๋ค.
ReadershipTraining Afterwords
- ์ฐ๋ค๋ณด๋ ์ฑ
์์ฒด์ ๋ํ ๋ด์ฉ์ด ๋น ์ก๊ตฐ.
- ์ฌ๋ฆฌํ ์์ ์ด ์ด๋ ํ ์คํ์ผ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ฐ ๊ณผ์ ๋ค์ ๋ํด ์ ๋ง๋ก 'Human Performance' ๋ผ๋ ๊ด์ ์ผ๋ก ์์ ํ๋ค.
- ์๊ฐ๋๋ ๋ถ๋ถ :
- ์ฝ๋๋ฅผ ์ฝ๋ ๊ฒ.
- ์ฝ์จ์ด ๋ฒ์น
- Blank Error ์ ์๋ฌ์จ ๋ณํ์ ๋ํ ํต๊ณ - ์ด๋ก ์ผ๋ก Dead Lock ์ ์๋ ๊ฒ๊ณผ, ์ค์ Multi Thread ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ์ค Dead Lock ์ํฉ์ ์์ฃผ ์ ํ๋๊ฒ. ์ด๋๊ฒ์ด ๋ ํ์ตํจ๊ณผ๊ฐ ๋์๊น ํ๋ ์๊ฐ. ๋์์ ์ํ ๊ต์ก์์ ๊ทธ ๋๊ธฐ๋ถ์ฌ์ฐจ์์์๋ ํ์ต์งํ ์คํ์ผ์ด ๋ค๋ฅด๋ฆฌ๋ ์๊ฐ์ด ๋ฌ.
- Efficiency : Effectivily - ๋ด๊ฐ ๋ฐํํ์๋ 7์ฅ์ ๊ทธ ์์ ๊ฐ ๊ฐ์ฅ ์ค์ํ ์์ ์ค ํ๋์๋ค๊ณ Comment ์ ์จ์์๋๊ฑธ๋ก ๊ธฐ์ตํ๋๋ฐ.. ์๊ฐํด๋ณด๋ฉด ๋ด๊ฐ ๋ฐ์ ํ ๋ถ๋ถ ๋ด์ฉ ์ฐธ ์ฌ๋ฏธ์๋ ๋ถ๋ถ์ด์๋๋ฐ, ์ ๋๋ก ๋ฐ์ ๋ชปํ๊ฒ ์ฐธ ์ฌ๋๋ค์๊ฒ ์ฃ์ก์ค๋ฝ๋ค.
- ์ฝ๋๋ฅผ ์ฝ๋ ๊ฒ.
- ์ฌ๋ฆฌํ ์์ ์ด ์ด๋ ํ ์คํ์ผ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ฐ ๊ณผ์ ๋ค์ ๋ํด ์ ๋ง๋ก 'Human Performance' ๋ผ๋ ๊ด์ ์ผ๋ก ์์ ํ๋ค.
- ์ฐ๋ค๋ณด๋ ์ฑ
์์ฒด์ ๋ํ ๋ด์ฉ์ด ๋น ์ก๊ตฐ.
- Post Script.
- ํ์ฌ ๋ด๊ฐ ์ฃฝ์ด๊ฐ๊ณ ์๋์ค์ด๊ธด ํ๊ฐ ๋ณด๋ค. ์ด์ ์ ๊ทธ์ , ์ ์ ์ค์ค๋ก ์ฃฝ์์ ๋ชฉ๊ฒฉํ ๊ฒ ๊ฐ๊ณ , ๋ค๋ฅธ ์ฌ๋์ด ๋ด ์ฃฝ์์ ๊ตฌ๊ฒฝํ ๊ฒ ๊ฐ๋ค. (์ด๋ฏธ ๋ช์ผ์ ๋ถํฐ ๋ชฉ๊ฒฉํ์๋ ์ฌ๋๋ ์๋๊ฒ ๊ฐ๋ค.)
- ์์๋๊ฐ์ผ ํ ๋ถ๋ถ์ด ์๋นํ ๋ง์๋ณด์ด๋๋ฐ.. Refactoring ์์์ ๊ฒฝํ์ ์ด์คํ๊ฒ ๊ฐ๋ก์ง๋ฌ๋ณธ๋ค๋ฉด. ReFactoring ์ ํ ๋ ๋์ ํด๋์ค๋ค์ ๊ทธ ์์์ ๊ณ์ ๊ณ ์ณ๋๊ฐ๋ ๊ฒ ๋ณด๋จ, ์ ํด๋์ค๋ ๋ฉ์๋๋ค์ ์ค๊ฐ์ ๋ง๋ ๋ค, ๋์ ํด๋์ค๋ค์ ์ญ์ ํ๋๊ฒ ๋ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ด๋ค. ์ข์ ์ต๊ด์ ๋ง๋ค์ด๋ด๋ ๊ฒ์ด ๋์ ์ต๊ด์ ๊ณ ์ณ๋ด๋ ค๊ณ ํ๋๊ฒ๋ณด๋ค ์ต์ข
์ ์ผ๋ก ๋ณผ๋ ๋ ์ ๊ทผํ๊ธฐ ์ฝ์ง ์์๊น ํ๋ ์๊ฐ์ ํด๋ณธ๋ค. ๋์ ์ ์ด๋ผ ์๊ฐํ๋๊ฒ์, ์์ํํด์ ๊ณ ์น๋ ๊ฒ ๋ณด๋จ ์ข์ ์ต๊ด์ผ๋ก ๋์ฒดํ๊ณ ๋์ ์ต๊ด์ ์์ ์์ด๋ฒ๋ฆฌ๊ฒ๋ ํ๋๊ฒ์ด ๋ ๋์๊ฒ ๊ฐ๋ค.
- ์์ง์. ๋จธ๋ฆฟ์์ '๋ง' ์ผ ๋ฟ์ธ์ค.
- ์์ง์. ๋จธ๋ฆฟ์์ '๋ง' ์ผ ๋ฟ์ธ์ค.
- ํ์ฌ ๋ด๊ฐ ์ฃฝ์ด๊ฐ๊ณ ์๋์ค์ด๊ธด ํ๊ฐ ๋ณด๋ค. ์ด์ ์ ๊ทธ์ , ์ ์ ์ค์ค๋ก ์ฃฝ์์ ๋ชฉ๊ฒฉํ ๊ฒ ๊ฐ๊ณ , ๋ค๋ฅธ ์ฌ๋์ด ๋ด ์ฃฝ์์ ๊ตฌ๊ฒฝํ ๊ฒ ๊ฐ๋ค. (์ด๋ฏธ ๋ช์ผ์ ๋ถํฐ ๋ชฉ๊ฒฉํ์๋ ์ฌ๋๋ ์๋๊ฒ ๊ฐ๋ค.)
- ๋๋๋ง๊ณ ๋๋๋ง๊ณ 'ํ
์คํธ ํต๊ณผ๋งํผ๋ง' ์ด๋ผ๋ ์ฌ๊ณ ๋ฐฉ์์ ๊ฐ๋ฐ์๋๋ฅผ ์๋นํ ํฅ์์ํจ๋ค.;; ๋ฆฌํฉํ ๋ง์ค ์ฌ์ฐจ ๋ฐฐ์.
์ง๊ธ ์๊ฐํด๋ณด๋ฉด, ์ด๋ฏธ ํ ์คํธ๊ฐ ์๋ ์ฝ๋๋ค์ ๋จผ์ ๊ฐ๋ฅํํ ๋จ์ํ๊ฒ ๋ฆฌํฉํ ๋งํ๊ณ ๊ทธ ๋ค์ Service ์ชฝ ๋ฆฌํฉํ ๋ง์ ํ๋ค๋ฉด ์ด๋ ํ์๊น.
ํ ์คํธ ์ฝ๋ ์์ฑ์ ์ํ ์ผ๋ถ ์ฝ๋ ๋ณต์ฌ & ๋ฉ์๋ ์ถ๊ฐ & ํด๋์ค ์ถ๊ฐ.
Test ํต๊ณผํ๋ ๋งํผ๋ง์ด ๋ด๊ฐ ๋ง๋ ๊ฒ์ด๋. ๋๋๋ง๊ณ ๋๋๋ง๊ณ . ๊ฑฑ์ ๋ง์ ๊ฑฑ์ ๋ง์ ๊ฑฑ์ ๋ง์. -_-;
Refactoring Catalog ์ ๋ . ์ ๋ฆฌํฉํ ๋ง ์ฑ ์ ์ ๋ฐ์ด ๋ฆฌํฉํ ๋ง์ ์ ์ฐจ์ธ์ง์ ๋ํด ํผ์์ ๊ฐ๋์ค.; ์ Extract Method ๋ฅผ ํ ๋ '๋ฉ์๋๋ฅผ ์๋ก ๋ง๋ ๋ค' ๊ฐ ๋จผ์ ์ธ์ง. Extract Class ๋ฅผ ํ ๋ '์ ํด๋์ค๋ฅผ ์ ์ํ๋ค'๊ฐ ๋จผ์ ์ธ์ง. (์ ๋๋ก '์์ค ์ผ๋ถ๋ฅผ ์๋ผ๋ธ๋ค'๋ '์์ค ์ผ๋ถ๋ฅผ comment out ํ๋ค' ๊ฐ ๋จผ์ ๊ฐ ์๋๋ผ๋ ๊ฒ.)
๋ฆฌํฉํ ๋ง ์ฑ
์ ๋ณด๊ณ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ง ๋ง๋ผ. ๋์ ์ค์ค๋ก ๊ณ ๋ฏผํด๋ผ. "์ด๋ก์ ๋ง๋๊ธฐ ์ฌ์ด ๊ธฐ๊ฐ"์ด ์ต์๊ฐ ๋๊ฒ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ์ง. ๊ทธ๋ฌ๊ณ ๋์ ๋์ ๋ฐฉ๋ฒ๊ณผ ์ฑ
์ ๋ฐฉ๋ฒ์ ๋น๊ตํด ๋ณด๊ฑฐ๋, ํน์ ํ์ง ๋ง๋ผ. --JuNe
ํ์ ์ฃผ๋ ๋ง.
- Instead of being tentative, begin learning concretely as quickly as possible.
- Instead of clamming up, communicate more clearly.
- Instead of avoding feedback, search out helpful, concrete feedback.
DDD ํ๋๊น XP ๋ฐฉ๋ฒ๋ก ๊ณผ ์ ๋ง๋๋ค๋ ๋ง์ด ์๊ฐ์ด ๋ฌ์๊ณ , ๊ทธ๋ฌ๋ค๊ฐ TDD ์๊ฐ์ด ๋๊ณ , ๊ทธ๋ฌ๋ค๊ฐ Calvin & Hobbes ๊ฐ ์๊ฐ์ด ๋๊ณ (์ฌ๊ธฐ๊น์ง ํ์ค๊ธฐ)
DDD ํ๋๊น JuNe ํ์ด '์ ํ๊ธฐ ์ฌ๋ณผ์์ผ๋ฉด ์ข๊ฒ ๋ค~' ๋ผ๊ณ ํ๋ง์ด ์๊ฐ๋๊ณ (DDD ๋ -_-) ๊ทธ๋์ ์ ํ ์ด๋ฏธ์ง๊ฐ ํ์ํ ๊ฒ์ด๋ผ ์๊ฐ์ด ๋ค์ด ์ ํ๊ธฐ ํด๋ฆฝ์ํธ๋ฅผ ๊ฒ์ํ๊ณ , ๊ทธ๋ฌ๋ค๊ฐ ์ ํ๊ธฐ ํด๋ฆฝ์ํธ์ค ์บ๋น์ด ์ ํ๋ฐ๋ ์ด๋ฏธ์ง๊ฐ ํ๋ ์์๊ณ (์ฌ๊ธฐ๊น์ง ํ์ค๊ธฐ)
์ด์ ์ Delegation ํ๋ ํด๋์ค๋ฅผ ํด๋น ํด๋์ค ๋ด์ ๋ฉค๋ฒ๋ก ๋์๋๋ฐ. ์๋ฅผ ๋ค๋ฉด ์ด๋ฐ์์ผ๋ก
~cpp public class BookMapper { . . . private Book getBookFromRemote(String aBookId) throws ProtocolException, IOException { Library library = new Library(); Book book = library.view(aBookId); return book; }
~cpp public class BookMapper { public BookMapper(ILibrary library) { this.library = library; } private Book getBookFromRemote(String aBookId) throws ProtocolException, IOException { . . Book book = library.view(aBookId); return book; }
----
์ฌ์ค
~cpp LoD
๊ด์ ์์ ๋ณด๋ฉด ์๊ธฐ๊ฐ ๋ง๋ ๊ฐ์ฒด์๋ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ ๋๋ค. ํ์ง๋ง ์ธ๋ฐํ ํ
์คํธ๋ฅผ ํ๋ ค๋ฉด ์ข๋ ์๊ฒฉํ ๋ฃฐ์ ์ ์ฉํด์ผํ ํ์๋ฅผ ๋๋ผ๊ธฐ๋ ํ๋ค. ๋๊ฐ ๋งํ๋ ๊ฑธ Inversion of Control์ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ทธ๋ ๊ฒ Constructor์ parameter๋ก ๊ณ์ ์ ๋ฌํด ์ฃผ๊ธฐ๋ฅผ ํ๋ค๋ณด๋ฉด parameter list๊ฐ ๊ธธ์ด์ง๊ธฐ๋ ํ๊ณ , ๊ฐ parameter๊ฐ์ cohesion๊ณผ consistency๊ฐ ๋จ์ด์ง๊ธฐ๋ ํ๋ค. ๋ณ ์๊ด์์ด ๋ณด์ด๋ ๋ฆฌ์คํธ๊ฐ ๋๋ ๊ฒ์ด์ง.
~cpp public class BookMapper { . . private Book getBookFromRemote(String aBookId) throws ProtocolException, IOException { Book book=getLibrary().view(aBookId); . . } protected Library getLibrary() { return new Library(); }
audio book
์ด์ ์ Alice in wonderland ์ฑ ์ด ์์์ง๋ง ์ ๋๋ก ์ดํด๋ฅผ ์ ๋ชปํ์๋๋ฐ, ๊ฐ์ธ์ ์ผ๋ก ์์ด์์ค์ด ๋ธ๋ฆฌ๋๊ฒ์ ๋ํด ๊ทธ๋ฅ ๋ฌธ์ ์ํฉ์ผ๋ก๋ง ๋์๊ฒ์ด ์๋ชป์ธ๊ฒ ๊ฐ๋ค. ๋ฌธ์ ๋ฅผ ๋ฌธ์ ๋ก ์ธ์ํ์ง ์๊ณ , ๊นจ๋ซ์์ผ๋ก ์ธ์ํ๋๋ก ๋ ธ๋ ฅํ๋๊ฒ์ ์์ด๋ฒ๋ฆฌ๊ธฐ ์ฝ๋ค. ์ด๋ฒ์๋ '๋ ์ฌ์ด ์๋ฃ๋ฅผ ์ฐพ๋๋ค'๋ผ๋ ๋ฐฉ๋ฒ์ด ๋ ์ฌ๋ผ์ ๋คํ์ด๋ค.
11์ ¶
29 (๊ธ): ์์ด ์ง๋ฌธ๋ต๋ณ์๊ฐ ์ฐธ์. ๋ฅด๋ค์์ค ํด๋ฝ. Work Queue, To Do List. 7๋ง 7์ฅ.
Work Queue
์์ผ๋ก ํ๊ณ ์ถ์ ๋ง์ฐํ ์ผ๋ค์ ๋ํด ์ฃผ์ฑ ๋์ด, ๊ทธ๋ฆฌ๊ณ ๊ทธ์ค์ ๋๊ฐ ๋น์ฅ ํด์ผ ํ ์ผ์ ๋ํด์ ์ผ๋ค์ ์ข ๋ ์ธ๋ถํํ์ฌ ๋๋์ด๋ณด์๋ค. ๋น์ฅ ํน๋ณํ ํจ๊ณผ๋ฅผ ๋
ธ๋ฆฌ๊ณ ํ๊ฑด ์๋๊ณ ,.. ๊ทธ๋ฅ ํด๋ณผ๋งํ ์ผ๋ค์ ๋ํด ์ ์ด๋ณด์๋ค.
์ ๊ณ ๋๋๊น.. ๋ช๋ฌ์ ์ 'ํด์ผ์ง ํด์ผ์ง' ํ์๋ ๊ฒ๋ค, ๋ช๋
์ ์ 'ํด์ผ์ง ํด์ผ์ง' ํ๋ ๊ฒ๋ค์ด Work Queue ์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค. ๋ฉ๋ฆฌ๋ก๋ Smalltalk ์ฝ๋ ์ ๋๋ก ์ฝ์ ์ค ์๋ค SBPP ๊ณต๋ถํ๋ค๊ณ ํ์๋ ๊ฒ์ด๋, Functional Language ํ๋ ์ตํ๋๋ค๊ณ ํ์๋ ๊ฒ์ด๋, ๊ฐ๊น์ด ๊ฒ์ผ๋ก ์น๋ฉด ๊ธฐ์กด์ ๋ง๋ค์ด๋์ ์์ค๋ค ๋ฆฌํฉํ ๋ง ํ๋ฉด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ์ถํ๋ค๊ณ ํ์๋ ๊ฒ๋ค ๋ฑ๋ฑ.
์์ง์ ํ์ํ ์๋ ์๊ธด ํ๋ค. ์๊ฐ์ ํ๋ฝํด์ฃผ์ ๋ค๋ฉด. ์ธ์ ๊น์ง ํ๋ฝํด์ฃผ์ค์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง.
7๋ง 7์ฅ
ํ์ฌ : http://www.savie.co.kr/SITE/data/html_dir/2002/10/01/200210010019.asp. ๊ฒฐํผ๋ ํ๊ณ ์ธ์ด๋ ๋ธ๋ ์๋จ๋ค. ํ์ฌ์ ์ฌ์ง์ ๋ณด๋ ๋จ๊ถ์์จ ๋ฎ์๊ฐ๋๊ตฐ. M&A ์ ๋ฌธ ํ์ฌ ๋ํ๋ผ๊ณ ํ๋ค.
๊ฝค ์ค๋๋๊ธด ํ์ง๋ง (๋ฒ์จ ๊ทธ๊ฒ 9๋
์ ์ด์ผ๊ธฐ๋๋ค. 93๋
์ด๋ผ๋๊น) ํ์ ์ฑ์ ์ฑ
์ ๋ค์ ์ฝ์๋ค. ๊ทธ๋น์์๋ '์. ๊ทธ๋ฅ ๊ณต๋ถ ์ํ๋ ์ฌ๋์ ์ด์ฌํ ๊ณต๋ถํ๋ค๋ ์ด์ผ๊ธฐ๊ตฌ๋' ๋ก ๊ทธ๋ฅ ํ๋ฒ ์ฝ๊ณ ๋๋ฌ๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํ๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๊ฐ๋ง์ ์๊ฐ์ด ๋์ ์ฑ
์ ๋ค์ ๊บผ๋ด ๋ฒ์ค์์์ ์ฝ์์๋๋ฐ, ๊ทธ์ ํํ๋ ฅ์ ๋ณด๋ฉด์ ๊ทธ๊ฐ ์ผ๋ง๋ ๋ง์ ์๋ค์ ์ฝ์๋์ง, ์ผ๋ง๋ ๋ง์ ์ฑ
๋ค์ ์ฝ์๋์ง ๋ณด์ธ๋ค. ์ค๊ฐ์ค๊ฐ ์์ ์ ํ์ฌ ์ฌ์ ์ ํํํ๋ฉด์ ์ธ์ฉํ๋ ์๋ค, ๋ช
์ธ ๊ตฌ์ ๋ค์ ์ ๋ถ ๊ทธ ์ธ์ฉํ ์ฌ๋๋ค์ ์ด๋ฆ๋ค๊ณผ ์ถ์ฒ๊ฐ ๋์์๋ ๊ฒ์ ๋ณด๋ฉด์, ํํธ์ผ๋ก๋ ์ผ๋ง๋ ํ๊ต์์ ์ฒ ์ ํ๊ฒ ๊ฐ๋ฅด์น๋์ง, ๊ทธ๊ฐ ์ผ๋ง๋ ์ฒ ์ ํ๊ฒ ๊ณต๋ถํ๋์ง๊ฐ ๋ณด์ด๋ ๊ฒ ๊ฐ๋ค.
๋ช๋
๋ง์ ์ฝ์๋ ๊ทธ์ ์ฑ
์ด '๋ง์นจํ ์๋ ์ฑ
์ด๋ค' ๋ง๊ณ ๋ ํ ์ด์ผ๊ธฐ๊ฑฐ๋ฆฌ๊ฐ ๋ง๋ค๋๊ฒ ๋คํ์ค๋ฝ๊ฒ ๋๊ปด์ก๋ค. (์ฑ
์ ์
์ฅ์์๋ ๋์ ์
์ฅ์์๋)
๋ฅด๋ค์์ค ํด๋ฝ
๊ทธ ์ค ์กฐ์ฌ์ค๋ฝ๊ฒ ์ ๊ทผํ๋ ๊ฒ์ด '๊ฐ๋ก์ง๋ฌ ์๊ฐํ๊ธฐ' ์ด๋ค. ์ด๋ ์์ง 1002๊ฐ Good Reader / Good Listener ๊ฐ ์๋์ฌ์์ด๊ธฐ๋ ํ๋ฐ, ์ฑ
์ ํ๋ฒ ์ฝ๊ณ ๊ทธ ๋ด์ฉ์ ๋ํด ์ ๋๋ก ์ดํด๋ฅผ ํ์ง ๋ชปํ๋ค. ๊ทธ๋ฌํ ์ํฉ์์ ๋์ ์ฃผ๊ด์ด ๋จผ์ ๊ฐ์
๋์ด๋ฒ๋ฆฌ๋ฉด, ๊ทธ ์ฑ
์ ๋ํด ์ป์ ์ ์๋ ๊ฒ์ด ๊ทธ๋งํผ ์๊ณก๋์ด๋ฒ๋ฆฐ๋ค๊ณ ์๊ฐํด๋ฒ๋ฆฐ๋ค.
๊ทธ๋ฆผ๋ฃ๊ธฐ์ ์ ์ฉํจ์ ์๊ธด ํ์ง๋ง.
๊ธ์. ํ์ง๋ง, '๊ฐ๋ก์ง๋ฅด๊ธฐ'๋ ๊ต์ฅํ ์ค์ํ ์ฌ๊ณ ๋ฐฉ์์ด๋ผ ์๊ฐํ๋ค. ์ ์ฐํ ์ฌ๊ณ ๊ฐ ๊ฐ๋ฅํ๊ณ , ๋ ๋ปํ์ง ์์ ์์ด๋์ด๋ฅผ ์ป์ ์ ์์๊ฒ์ด๋๊น. (์ด์ ์ Metaphor ๋ฅผ ์๊ฐํ๋ฉด ๋๋์ฑ.)
์ํผ, ๋๊ฐ์ง๊ฐ ๊ผญ ์๋๋๋ ์ผ์ ์๋๋๊น. ์ํผ. ๊ทธ ์ ์ ๊ตญ์ด/์์ด ๋
ํด๋ฅ๋ ฅ์ด ๋จผ์ ๊ตฐ.;;
28 (๋ชฉ): ํ๋ ์์ค & ๋ฌธ์ ์ ๋ฆฌ. ProjectPrometheus ๋ฒ๊ทธ ์์
๊ธฐ์กด์ ์์ฑํ ์์ค๋ค์ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ค. ์ด๋ฅผ ๋์ค์๋ ์ด์ฉํ์๋ ๋ก์ ์์ค์ผ๊ฒ์ด๊ณ , ๊ทธ๋ ๋ค๊ณ ๋ฒ๋ฆฌ๊ธฐ์ ํด๋น ๋ถ์ผ ๊ณต๋ถํ๊ธฐ์ ๊ฐ์ฅ ์ฌ์ด ์์ค์ด๊ณ .. (๋ฌธ์๋ค๋ ๋ง์ฐฌ๊ฐ์ง. ์์ ํป๊ฐ์ผ๋ก ๋ถ๋ฆฌ๋.)
์ด์ ์ 1002/์ฑ ์์ ๋ฆฌ ๊ฐ ์๊ฐ์ด ๋์, ํ๋ ์์ ์๋ ์์ค, ๋ฌธ์๋ค์ ๋ํด ์ผ์ข ์ LRU ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํด๋ณด๊ธฐ๋ก ํ๋ค. ์ฆ, Recent Readed ๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ์ต๊ทผ์ ํ๋ฒ์ด๋ผ๋ ๊ฑด๋๋ฆฐ ์ฝ๋, ๋ฌธ์๋ค์ Recent Readed ์ชฝ์ ๋ณต์ฌ๋ฅผ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ , ์ฝ์๋ ์์ค์ ๋ํด์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌํํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ํด์ ํ 6๊ฐ์์ฏค ์ง๋๋ค, ์ ๋ฆฌํด๋ฒ๋ฆฌ๋ฉด ๋๊ฒ ์ง ํ๋ ์๊ฐ.
์ง๊ธ ์ด์ ๋
ธ๋๋ฐฉ ํ๋ก๊ทธ๋จ ๋ง๋ค๋ ์ด์ฉํ์๋ Audio Compression Manager ๋ถ๋ถ ์ด์ฉํ๋ผ๊ณ ํ๋ฉด ์๋ง ๋ค์ ์ด๋ป๊ฒ API๋ฅผ ์ด์ฉํ๋์ง ํ์ํ๋๋ฐ 2์ผ์ฏค ๊ฑธ๋ฆด๊ฒ์ด๋ค. DX Media SDK ๋ถ๋ถ์ ๋ค์ ์ด์ฉํ๋ผ๊ณ ํ๋ฉด ์๋ง ํ๋ฃจ์ ๋ Spike ๊ฐ ๋ค์ ํ์ํ ๊ฒ์ด๋ค. ์ฆ, ์ด์ ์ ๋ง๋ค์ด๋์ ์์ค๊ฐ ์๋ค๊ณ ๊ทธ ์ง์์ด ํ์ฌ ๋์ ์ผ๋ถ๋ผ๊ณ ํ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๋ค.
๊ธฐ์กด์ ์ฝ๋๋ค์ด๋ ํํธ์ผ๋ก๋ ์ฌ๋์ ๊ฒ์ผ๋ฅด๊ฒ ํ๋ ์๋๋ ฅ์ธ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ์ด์คํ ์๋ง์ฌ์ ๋ง๋ค์ด๋ผ๋ฐ์ง๋ ๋ชจ๋ฅธ๋ค. ๊ทธ๋๋ ์ฌ์ ํ ์ง์ฐ์ง ๋ชปํ๋๊ฑด.. ๊ทธ๋ ์ด๋ฆฌ์ ๋ฆฌ ์ ์ ์์ด ์๋ฃ ๋ชจ์ผ๋ฉฐ ์ฝ์งํ๊ณ ์ข์ ํ์๋๊ฐ ์๊ฐ๋์์ผ๊น.
์ํผ. ์ธ์ ๊ฐ ๋ค์ ๋ด ์ผ๋ถ๊ฐ ๋๊ธฐ๋ฅผ.
----
Prometheus ์ฝ๋๋ฅผ ๋ค์ checkout ํ๊ณ UnitTest ๊นจ์ง ๋ถ๋ถ์ ๋ณด๋ฉด์ ๊ธฐ์กด์ TDD ์งํ ๋ณดํญ์ด ์ผ๋ง๋ ์ปธ๋์ง๊ฐ ๋ณด์๋ค. (๋ค์ Green Bar ๋ฅผ ๋ณด์ด๊ฒ๋ ํ๊ธฐ์ ์งํํด์ผ ํ ์ผ์ด ๋ง์์ผ๋๊น. Extractor Remote Test ๊ฐ no matched (์ ๊ทํํ์์์ ๋งค์นญ ์คํจ)๋ก ๊นจ์ก์๋ ์๊ฐํด์ผ ํ ์ผ์ด ๋๊ฐ์ง์ด๋ค. ํ๋๋ HTML ์ด ์ ๋๋ก ๋ฐ์์ก๋๊ฐ(๋๋ HTML ์ด ๋์๊ด์์์ ์๋ฌ์ฝ๋๋ฅผ ๋ฐํํ๋๊ฐ), ํ๋๋ extractor ๊ฐ ๊ทธ ๊ตฌ์ค์ ์ ๋๋ก ํ๋๊ฐ. ๊ทธ๋ฐ๋ฐ, ํ ์คํธ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ ๋๊ฐ์ง๊ฐ ๋ฌถ์ฌ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๊ทํํ์์ ์ด์ฉํ extract ๊ฐ ๊ณผ์ฐ 'The Simplest Thing' ์ผ๊น๋ผ๋ ์๊ฐ์ ํ๊ฒ ๋์๋ค. ์ฌ๋ฐ๋ฅธ ์ ๊ทํํ์์ ์ฐพ์๋ด์ผ ํ๊ณ , ๊ทธ๋ฌ๋ค๋ณด๋ฉด ๋ฐ์ดํฐ ์ฝ๋์ ์ ๊ทํํ์์ด ์ผ์ข
์ Duplication ์ ๋ง๋ค์ด๋ธ๋ค. (ํ์ฑํ๋ ค๋ ๋ฌธ์์ ์ผ๋ถ๊ฐ ์ ๊ทํํ์์ ๋ค์ด๊ฐ๋ฏ๋ก) ๊ทธ๋ฆฌ๊ณ RE ๋ RE ๋ฌธ๋ฒ์ ์๋ ์ฌ๋์ด๋ผ๋ฉด ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๊ทธ๋ ์ง ์๊ณ ๋ง์ฐํ ๊ฒฝ์ฐ์ TDD ํ ๊ฒฝ์ฐ Try and Error ์์ผ๋ก ์ ๊ทผํด๋ฒ๋ฆด ์ ์๋ค. (๋์ ๊ฒฝ์ฐ๋ ์ด๊ฑธ ์ ์ง์ ์ผ๋ก ํ๊ธฐ ์ํด ํ๋ณธ์ด ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๊ฒ ์์ํ๋ค.) extract ์ 'Simplest Thing' ๋ find & substring ์ผ๊ฒ์ด๋ ์๊ฐ์ ํด๋ณธ๋ค.
๊ทธ๋ฆฌ๊ณ , ๋์๊ด UI ๊ฐ ๋ฐ๋์์ ๊ฒฝ์ฐ์ ๋ํ ๋์ฒ๋ฐฉ์์ ๋ํด์ ์ด๋ฆฌ์ ๋ฆฌ ์์ด๋์ด๋ฅผ ๊ถ๋ฆฌํด ๋ณด์์๋๋ฐ, ์ ๊ทํํ์๋ถ๋ถ์ ๋ฐ๋ก ๋ผ์ด๋ด์ด ์ธ๋ถํ์ผ๋ก ๋๋์ง (์ด๋ ๊ฒ ํ๋ฉด ์ปดํ์ผํ์ง ์์๋ ์ ๊ทํํ์์ ์์ ํ๋ฉด ๋๋ค) ๋๋ HTML ์ ์ ๋ถ Parsing ํ์ฌ DOM ํธ๋ฆฌ๋ฅผ ๋ง๋ ๋ค ํด๋น ๋
ธ๋์ Position ๋ค์ ๋ํด ๋ฐ๋ก ์ธ๋ถํ์ผ๋ก ๋๋์ง (์ด๋ ์ถํ ์ผ์ข
์ extractor tool ๋ก ๋นผ๋ผ ์ ์์ ๊ฒ์ด๋ฏ๋ก) ํ๋ ์์ด๋์ด๊ฐ ๋ ์ฌ๋๋ค.
----
To Do List ์ ์ค์์ฑ
Extract ๋ถ๋ถ์ ๋ํด ๋๋ฌด ํ
์คํธ์ ๋จ์๊ฐ ํฌ๋ค๊ณ ํ๋จ, ์ด ๋ถ๋ถ์ ์ฒ์๋ถํฐ ๋ค์ TDD๋ก ์์ฑํ์๋ค. Bottom Up ์คํ์ผ๋ก ์์ ๋จ์๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์งํํ์๋ค. ๊ทธ๋ฐ๋ฐ To Do List ๋ฅผ ์์ฑ์ ์ํ๋๊น, ์ค๊ฐ์ ์ ๊น ์ง์ค๋๊ฐ ํ์ด์ก์๋ ๋๊ฐ์ ์ผ์ ํ๋ ๋ค๋ฅธ ๋ฉ์๋๋ค์ ๋ง๋ค์ด๋ฒ๋ฆฐ ๊ฒ์ด๋ค.
Top Down ์ผ๋ก ์ ๊ทผํ์ฌ ํด๋น ๋ฉ์๋๊ฐ ํ์ํด์ง๋ ์ผ์ ๋นจ๋ฆฌ ๋ง๋ค์ด๋ด๊ฑฐ๋, To Do List ๋ฅผ ์์ฑ, Bottom Up ์ผ๋ก ์ ๊ทผํ๋ค ํ๋๋ผ๋ ๊ถ๊ทน์ ์ผ๋ก ๊ตฌํํ๋ ค๋ ๋ชฉํ์งํฅ์ ์ด ๋ช
ํํ๋ฉด ๊ธธ์ ํค๋งฌ ์ผ์ด ์๋ค๋ ๊ฒ์ ๋ค์๊ธ ์ฌ์ฐจ ํ์ธํ๊ฒ ๋์๋ค.
4 (์): ์์ด ๊ณต๋ถ, XP Installed ํ์ ์ฝ๊ธฐ
์์ ์์ด๊ณต๋ถ๋ฅผ ์ด๋ป๊ฒ ํ ๊น ๊ถ๋ฆฌ์ค, ๋๊ฐ ๋ค์์ ๊ฐ๋จํ ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค๊ณ ์งํํด๋ณด๊ธฐ์ค.
์ํผ, ๊ณ์. ์ค์ต์ ๋จธ๋ฆฌ๋ฅผ ์ํด. (๊ฐ์๋ก ์ผ์ง ํ์์ด 3FS ์ ์๋ง๋๊ตฐ)

์ด์ ์ 1002/์ฑ ์์ ๋ฆฌ ๊ฐ ์๊ฐ์ด ๋์, ํ๋ ์์ ์๋ ์์ค, ๋ฌธ์๋ค์ ๋ํด ์ผ์ข ์ LRU ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํด๋ณด๊ธฐ๋ก ํ๋ค. ์ฆ, Recent Readed ๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ์ต๊ทผ์ ํ๋ฒ์ด๋ผ๋ ๊ฑด๋๋ฆฐ ์ฝ๋, ๋ฌธ์๋ค์ Recent Readed ์ชฝ์ ๋ณต์ฌ๋ฅผ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ , ์ฝ์๋ ์์ค์ ๋ํด์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌํํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ํด์ ํ 6๊ฐ์์ฏค ์ง๋๋ค, ์ ๋ฆฌํด๋ฒ๋ฆฌ๋ฉด ๋๊ฒ ์ง ํ๋ ์๊ฐ.
Prometheus ์ฝ๋๋ฅผ ๋ค์ checkout ํ๊ณ UnitTest ๊นจ์ง ๋ถ๋ถ์ ๋ณด๋ฉด์ ๊ธฐ์กด์ TDD ์งํ ๋ณดํญ์ด ์ผ๋ง๋ ์ปธ๋์ง๊ฐ ๋ณด์๋ค. (๋ค์ Green Bar ๋ฅผ ๋ณด์ด๊ฒ๋ ํ๊ธฐ์ ์งํํด์ผ ํ ์ผ์ด ๋ง์์ผ๋๊น. Extractor Remote Test ๊ฐ no matched (์ ๊ทํํ์์์ ๋งค์นญ ์คํจ)๋ก ๊นจ์ก์๋ ์๊ฐํด์ผ ํ ์ผ์ด ๋๊ฐ์ง์ด๋ค. ํ๋๋ HTML ์ด ์ ๋๋ก ๋ฐ์์ก๋๊ฐ(๋๋ HTML ์ด ๋์๊ด์์์ ์๋ฌ์ฝ๋๋ฅผ ๋ฐํํ๋๊ฐ), ํ๋๋ extractor ๊ฐ ๊ทธ ๊ตฌ์ค์ ์ ๋๋ก ํ๋๊ฐ. ๊ทธ๋ฐ๋ฐ, ํ ์คํธ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ ๋๊ฐ์ง๊ฐ ๋ฌถ์ฌ์๋ค.
To Do List ์ ์ค์์ฑ
- technetcast ์ค ๊ด์ฌ์๋๊ฒ์ ์์๋ฃ๊ฑด ๋ชป์์๋ฃ๊ฑด ํ 30๋ถ์ ๋ฃ๊ณ
- 504 absolutely essential words ๋ฅผ ๊ต์ฅํ ๋๋ฆฐ์๋๋ก ์ด์ฉํ๊ณ (์ 4์ผ๊ฐ, ํ๋ฃจ ์๊ฐ๋น ๋จ์ด 4๊ฐ์ฉ ๋๊ฐ๋ค. ๊ฑฐ๊ธฐ ์๋ ๋จ์ด ๋ป ๋ณด๊ณ , ๊ตฌ๋ฌธ์ ์ฝ์๋ค, ํ๋ฒ ์ฌ์ฉ ๋ณด๊ณ ๊ตฌ๋ฌธ ๋ด์ฉ์ ๋ ์ฌ๋ฆฌ๋ฉด์ ์๋ฌธ์ ์ฌํํด๋ณด๊ธฐ์์ผ๋ก ์งํํ๋ค๋ณด๋ ๊ฝค ๋๋ฆฌ๋ค. ๋จธ๋ฆฟ์์์ ์์ด๋ก ์ข ๋ค๋ฅด๊ฒ ํํ๋์ด ์ ์ฅ๋๊ธฐ๋ ํ๋ค.)
- ์์ ์ฑ
์ฝ๊ธฐ.
- ์์ด ๋ฃ๊ธฐ ์ดํ ์์ด ๋จ์ด ์ฐ์ต & ๊ตฌ๋ฌธ์ ๊ธฐ์ผ๋๋ ์งํ์ด ๋งค๋๋ฝ๋ค. ์ฑ
์ ์ฝ๊ธฐ ์ ์, ์์๋ฃ์ง ๋ชปํ๋๋ผ๋ technetcast ์ ๋ฃ๊ณ ๋๋ฉด, ์ฑ
์ ์ฝ์ ๋ ๋ฆฌ๋ฌ์ด ์ ์กํ๋ค.
- ์ด์ ์ ๊ณ ๋ฑํ๊ต์์ผ๋ก ํ ๋ ๊ฑฐ์ ํ๋ฃจ ๋๊ฐ๋ ๋จ์ด๊ฐ 20๊ฐ๊ฐ ๋์ด์.; ํ์ง๋ง, ์ง๊ธ 4๊ฐ ๋๊ฐ๋์ ํ์คํ ์ฌ๋ฏธ๋ ์๊ณ , ํด๋น ์ํฉ์ ๋ํด ์ฝฉ๊ธ๋ฆฌ์ฌ๋ผ๋ง ๋จธ๋ฆฟ์์ ์์ด๋ฌธ์ฅ์ด ๋ง๋ค์ด์ง๋ค. ์ด์ ๋ํด์ 3์ผ์ ๋ ๋ ๊ด์ฐฐํ์. ์ํผ ์ฅ์ /๋จ์ ์ ์ดํด๋ : ์๋. ์ผ๋จ์ ๋ ์ ์๋ฅผ ํํ๋ ค ํ๋ค. ์ด์ฐจํผ ์ ๋ชปํ๋ ๋
์์ด๋๊น ๋ญ ํ๋ ํจ์จ ๋จ์ด์ง๋๊ฑด ๋น์ฐํ๋ค ์๊ฐํ๊ธฐ ๋๋ฌธ์.
- technetcast ๋ฅผ ์ ์ฌ์ง๊ป ์ ๋๋ก ์์ด์ฉํ์๊น. Ron ์์ ์จ๋ Bob ์์ ์จ, Martin Fowler ๋ผ๋ ์ฌ๋์ ๋ชฉ์๋ฆฌ๋ฅผ ๋ฃ๊ฒ ๋์๊ตฐ. ๋ด์ฉ์ ๋ฃ๊ณ ๋ ๋ค์ ์ ๋๋ก ๊ธฐ์ต๋์ง ์์ง๋ง. (์์ด๋ก ๋ค์๋๋ฐ ๊ธฐ์ต์ ์ฌ์ํด์ ์์ฝํ๋ ค๋, ์์ด ์์ฝ์ ํด๋ณธ์ ์ด ์๋ ๊ด๊ณ๋ก ๋จธ๋ฆฟ์์์ ํ๊ธ๋ก์ ๋ฒ์ญ์์
์ด ํ์ํ๋ค. ์์ด๋ก ์ฌ๊ณ ๊ฐ ๊ฐ๋ฅํ๋ค๋ฉด, ์๋ง ๋จธ๋ฆฟ์์์ ์์ด๋ก ์์ฝํ ๊ฑฐ๊ณ ..) ์ผ๋จ ๋ง์์ ๋น์ฐ๊ณ ์ผ์ฃผ์ผ์ ๋ ๋ค์ด๋ณผ๊น.
- ์์ด ๋ฃ๊ธฐ์ ๋ํ ๋ฐ์์ฐ๊ธฐ ์์ฒด๋ฅผ ๋จผ์ ์ฐ์ตํด๋ณด๋๊ฒ์ด ์์์ผ ๊ฒ ๊ฐ๋ค. technetcast ์ค 10๋ถ์ง๋ฆฌ ์งง์ ์ธํฐ๋ทฐ์ ๋ํด ๋ฐ์์ฐ๊ธฐ ์ฐ์ต์ ํด๋ณด๋๊ฑด ์ด๋จ๊น. (๋จ, ๋ง๋์ง๋ฅผ ํ์ธํ ์คํฌ๋ฆฝํธ๊ฐ ์๋๊ฒ ๋จ์ ์ด๊ตฐ)
- ์์ด๋ฃ๊ธฐ ์ฐ์ต์ ์ด์ ์ ์น๊ตฌ๊ฐ ์์ด๊ณต๋ถ ๋์์ค๋ ํ์๋, ๋
ธ๋๊ฐ์ฌ ๋ฐ์์ ๊ธฐ๋ฅผ ํ๋๊ฒ ํ๋ ธ๋์ง ํ์ธํ๊ธฐ๋ ํธํ๊ณ ์ฌ๋ฏธ์์ ๊ฒ ๊ฐ๋ค.
- ์์ด๋ฃ๊ธฐ ์ฐ์ต์ ์ด์ ์ ์น๊ตฌ๊ฐ ์์ด๊ณต๋ถ ๋์์ค๋ ํ์๋, ๋
ธ๋๊ฐ์ฌ ๋ฐ์์ ๊ธฐ๋ฅผ ํ๋๊ฒ ํ๋ ธ๋์ง ํ์ธํ๊ธฐ๋ ํธํ๊ณ ์ฌ๋ฏธ์์ ๊ฒ ๊ฐ๋ค.
- ๋๋จธ์ง๋ค์ ์ผ๋จ ๊ณ์ ์คํ & ๊ด์ฐฐ.
10์ ¶
31 (๋ชฉ):
YoriJori Pair
VPP ๋ก ์งํ. ํ๋์ ์๋๊ณ ์์ด์ ๊ฐ์ธ์ ์ผ๋ก ์ฝ๊ฐ ๊ฑฑ์ ์ด ์์ฐ๋๋ฐ, ์์ฃผ์จ๊ฐ Pair ๋ฅผ ์ํด์ฃผ์๋ค. ํ๋ก์ ํธ ์ฐธ์ฌ๋๊ฐ ๊ฐ์ฅ ๋์์ ๊ทธ๋ฐ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ํ ์ผ์ ๋ํด ์ฆ๊ฐ์ ์ผ๋ก ํด๊ฒฐ์ฑ
์ ์๊ฐํด๋ด๋ ๋ชจ์ต์ด ์ ๋ง ๋๋จํ๋ค. 2์๊ฐ๋์์ ์์
์ ์๊ฐํ๋ฅธ์ง ๋ชจ๋ฅธ์ฑ ์ฆ๊ฒ๊ฒ ์งํํ๋ค.
Editplus ๋ก VPP ์งํํ๋ ํ์ชฝ์ฐฝ์ to do list ๋ฅผ ์ ์๋๋ฐ, VPP ์ธ ๊ฒฝ์ฐ ํ์ฌ๋์ด todolist ๋ฅผ ์ ๋ ๋์, ๋๋ผ์ด๋ฒ๊ฐ ์ฝ๋๋ฅผ ์ก์ง ๋ชปํ๋ค๋๊ฒ ํํธ์ผ๋ก ๋จ์ ์ด์, ํํธ์ผ๋ก ์ฅ์ ๊ฐ๊ธฐ๋ ํ๋ค. ์ผ๋จ์ ๊ถ๋ฆฌ.
ํน์ ํ์๊ณผ์ ํ ๋ก ์ด ํ์ํ Task ์ธ์ ๋ณ๋ค๋ฅธ ์ด๋ ค์ ์์ด ์ ์งํ๋์๋ค. Virtual Pair Programming ์์๋ VIM ๋จ์ถํค๋ค์ ๋ฐฐ์ ๋ค.; ctrl + v, shift + v ๋ชฐ๋ผ์ ๋งค๋ฒ ํ ๋ Help ๋ค์ก๋ค ๊น๋จน๊ณ ๊ทธ๋ฌ๋๊ฒ ๊ฐ์๋ฐ, ์ ๋๋ก ์ตํ๋ฏ ํ๋ค.
----
Conceptual Integrity ์ ๋ํด ์ฐพ์๋ณด๋์ค ๊ผฌ๋ฆฌ์ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๊ณ ๋ ผ๋ฌธ์ ๋ณด๋ค๊ฐ ์์ธ์ ๊ธ์ ๋ณด๊ฒ ๋์๋ค.
http://www.utdallas.edu/~chung/patterns/conceptual_integrity.doc - Design Patterns as a Path to Conceptual Integrity ๋ผ๋ ๊ธ๊ณผ ๊ทธ ๊ธ๊ณผ ๊ด๋ จ, Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods ๋ผ๋ ๊ธ์ ๋ณด๊ฒ ๋์๋๋ฐ, http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps ์ด๋ค. ๋์์ธํจํด์ ์์ฑ์ฑ๊ณผ ๊ด๋ จ, RDD ์ EDD ๊ฐ ์ธ๊ธ์ด ๋๋ ๋ฏ ํ๋ค.
29 (ํ): ํ์ดํธํค๋๊ณผ์ ์ฒ ํ์์ดํด ์ฝ๊ธฐ ๊ด๋ จ.
๊ณต๋ถ๋ผ๋ ๊ฒ์ ๋ํด ๋จธ๋ฆฟ์ ์๊ฐ์ ์ ๋ฆฌ ํ ๋ ๊ผญ ์์ ์กํ๋ ์ฑ
์ด ์ด์ฑ์๊ธฐ๋ฅ ๊ณผ ํ์ดํธํค๋๊ณผ์ ์ฒ ํ์์ดํด ์ด๋ค. (๊ฐ์ ์ฑ
๋ง ์ก์ผ๋๊น ์ํํ๊ฑด์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.) ์ ์ฌ์ด ๋ญ๊ฐ ๋จธ๋ฆฟ์์ด ํ์ ํ๋ค. ๋ญ๊ฐ๊ฐ. ํจ์ ์ด ์๋ ๋ฏํ.
21, 22, 23 (์, ํ, ์): Freechal Album Grabber ์์ฑ์ค.
์๋ ์ฌ๋์ผ๋ก๋ถํฐ ๋ถํ์ ๋ฐ์์ ์์ฑ์ค. ์ด๋ฏธ ํ๋ฆฌ์ฒผ ๊ฒ์ํ ๋ฐฑ์
ํ๋ก๊ทธ๋จ์ ์ ๋ก๋ณด๋๋ ์ด์ง๋ณด๋, ๋๋ฆผ์์ฆ ๋ฑ์์ ๋ง๋ค์ด์ก๋๋ฐ, ์จ๋ฒ/์๋ฃ์ค ์ถ์ถ์ ์์ง ์ด๋ฃจ์ด์ง์ง ์์๋ ๋ณด๋ค. ๋ญ, ์กฐ๊ธ์์ผ๋ฉด ๋์ฌ ๊ฒ๋ ๊ฐ์๋ฐ.. ๊ทธ๋ฅ ๊ฐ์ธ์ ์ผ๋ก ์ฐ์ต๊ฒธ ๋ง๋ค์ด๋ณด๊ฒ ๋์๋ค.
Python ์ด์ฉ. ์ ๋นํ TDD ์ ์ค๊ฐ UP Front๋ฅผ ์์๋ค. (CRC์ UML์ ์ด์ฉ) ๊ฑฐ์ ์ ๊ทํํ์์ด๋ find ๋ฑ์ ์ด์ฉํ ์คํธ๋ง ํ์ฑ ๋
ธ๊ฐ๋ค๊ธ์ด์ง๋ง, ํ๋ฃจ ์์
์น๊ณค ์๊ฐ๋ณด๋ค ๋ง์ด ๋๊ฐ ๊ฒ ๊ฐ๋ค.
1์ฐจ์ ์ผ๋ก CRC ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋จํ Conceptual Model ์ ๋ง๋ ๋ค, TDD ๋ก ๊ฐ๊ฐ ๋ชจ๋์ ์์
ํ๋ค.
์ค๊ฐ ๊ฐ๊ฐ์ ๋ชจ๋์ ํตํฉํ ๋์ฏค์ ์ด์ ์ ์๊ฐํด๋ ๋์์ธ์ด ์ ๋๋ก ๊ธฐ์ต์ด ๋์ง ์์๋ค.; ์ด๋ Sequence Diagram ์ ๊ทธ๋ฆฌ๋ฉด์ ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ์ฒ์ฒํ ์๊ฐํ๋ค. ์ด๋์ ๋ ์งํ๋ ๋ฐ๊ฐ ์๊ณ , ๊ฐ๋ฐํ๋ฉด์ ๊ฐ๊ฐ๋ณ ๋ชจ๋์ ๋ํ ์ธํฐํ์ด์ค๋ค์ ์ ํํ ์๊ณ ์์๊ธฐ ๋๋ฌธ์, Conceptual Model ๋ณด๋ค ๋ ๊ตฌ์ฒด์ ์ธ Upfront ๋ก ๊ฐ๋ ๋ณ ๋ฌด๋ฆฌ๊ฐ ์๋ค๊ณ ํ๋จํ๋ค. ๋ด๊ฐ ๋ง๋ ๋ชจ๋์ ์ผ์ข
์ Spike Solution ์ฒ๋ผ ์ ๊ทผํ๊ณ , ๋ค์ TDD๋ฅผ ๋ค์ด๊ฐ๊ณ ํ๋๊น ์ค๊ฐ ๋ง์ค์ ์์ด ๊ฑฐ์ ์ผ์ฌ์ฒ๋ฆฌ๋ก ์์
ํ๊ฒ ๋์๋ค.
WorseIsBetter
MMM ์์์ 'ํ๋ก๊ทธ๋๋จธ์ ๋๊ด์ฃผ์'๊ฐ ๋ ์ค๋ฅด๋. -_-; ์ ๋ ๊ธฐ์ฌ์ฐ๋ค๊ฐ ์กธ๋ ค์ ์ค๋๋ฐ, ๊ธ์์ผ ์์นจ๋จน๊ณ ํ์ด ๋์ ์์ฃผ ์ฃผ๊ธ์ด๋ค. ์ฌ๋์ด ํ๋ ์ผ์ ๋ํด์ ์ด์ ์๋ ๋๊ด์ฃผ์๋ ์ ๋นํ ๋ ์ ์๋ค. -_-; ์ค๋ ํ๋ฃจ์ข
์ผ ํ ํ ๊ฒ ๊ฐ์ ๋๋๋๋ฌธ์ ์ฃฝ์ ์ง๊ฒฝ์ธ์ค.;
TDDBE๋ฅผ PowerReading ์์์ ๋ฐฉ๋ฒ์ ์ ์ฉํด์ ์ฝ์ด๋ณด์๋ค. ๋ด๊ฐ ํ์๋ก ํ๋ ๋ถ๋ถ์ธ '์ TDD๋ฅผ ํ๋๊ฐ?' ์ 'TDD Pattern' ๋ถ๋ถ์ ๋ํด์ ํ๋๋ฐ, ์ฌ์ ํ ์ ๊ทผ๋ฒ์ ์ดํด๋ฅผ ์์ฃผ๋ก ํ๋ค. WPM ์ ํ๊ท 60๋. ์ดํด๋๋ ํ๋ฒ์ 90% (์ฑ
์ ์๋ณด๊ณ ์์ฝ์ ์ธ๋ ๋๋ถ๋ถ์ ๋ด์ฉ์ด ๊ธฐ์ต์ด ๋ฌ๋ค.), ํ๋ฒ์ ์ดํด๋ 40%(์ด๋๋ ์ฌ์ ์ ์์ฐพ์์๋ค.) ์ดํด๋์ ์๋์ ์ํฅ์ ์ญ์ ์ธ๊ตญ์ด ์ค๋ ฅ๋ถ๋ถ์ธ๊ฒ ๊ฐ๋ค. ๋จ์ด ์์ฒด๋ฅผ ๋ชจ๋ฅผ๋, ๋ชจ๋ฅด๋ ๋ฌธ๋ฒ์ด ๋์์ ๊ฒฝ์ฐ์ ๋ฌธ์ ๋ ์ฝ๊ธฐ ๋ฐฉ๋ฒ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค.
์์ Summary ํ ๋์ ๋๋์ด ์ฐธ ์ข๋ค. ์ฑ
์ ์น์ด๋จน๋๋ค๋ ๋๋์ด ๋๋๊น. ์๋๊ฐ ๋๋ฆฌ๊ฒ ๋์ค๋๋ผ๋. ํ๋์์ ์ด ๋ฆฌ๋ฌ์ผ๋ก. ์กฐ๊ธ์ฉ ์ฌ๋ฆฌ๊ธฐ ๋
ธ๋ ฅ๋
ธ๋ ฅ.
14 ์ผ (์): TDD ๊ธฐ์ฌ์์ฑ Start, ์ผ์ฃผ์ผ ํ ์ผ ์ค์ .
์ด์ ๋ค์ด์ด๋ฆฌ ์
ํ
ํ ๊ฒ์ ์ด์ฉํ๊ณ , XP ์์์ Story ์ ๋ฆฌ๋ฐฉ๋ฒ์ ์ฝ๊ฐ ์ ์ฉํ์๋ค. ์์ง ๊ฐ Story ์ ๋ํด์ Task ๋ฅผ ์๋๋ด๊ธฐ ๋๋ฌธ์, ์ผ๋จ ์ข ๋ ํ ์ผ๋ค์ ๋ํด ๊ตฌ์ฒด์ ์ธ ์์ ์ด ํ์ํ๋ค.
์์นจ ๊ธฐ์์๊ฐ 7์. To Do List ์์ ์์ ์ผ๋ค์ ๋ํด์๋ ๊น๋ํ๊ฒ ์ฒ๋ฆฌ. ๋จ, ์ฝ๊ฐ ๋จ์๋ฅผ ํฌ๊ฒ ์ก์ ์ผ๋ค์ ๋ํด์ ์ ๋๋ก ์ฒ๋ฆฌ๋ฅผ ๋ชปํ์๋ค. (2-3์๊ฐ ๊ฑธ๋ฆด ๊ฒ์ด๋ผ ์๊ฐ๋๋ ์ผ๋ค) ์ฐจ๋ผ๋ฆฌ ์ด ์ผ๋ค์ 1์๊ฐ ๋จ์ ์ผ๋ค๋ก ๋ ์ชผ๊ฐฐ์์ผ๋ฉด ์ด๋ ํ์๊น ํ๋ ์์ฌ์์ด ๋ ๋ค.
ํ๊ต์ ๋์ฐฉํ๊ณ ๋๋ค ํ์ด์ค๋ฅผ ์ ๋๋ก ์ ์ง๋ชปํ๋ค. ํ๊ต ๋์ฐฉ ์ดํ 5์๊ฐ์ ๋ํด์ ์ ๋๋ก ํ์ฉ์ ๋ชปํ๋ค. ์ผ์ ์์ํ๊ธฐ ์ ์ ๊ณ์ ๋ง์ค์๋ค. ๋ง์ค์์ ์ค์ด๋ ค๋ฉด ์ผ์ ์ข๋ ๋ช
ํํ๊ฒ ๋๋์์ด์ผ ํ ๊ฑด๋ฐ. ์ํผ.
13 ์ผ (์ผ): ๋ค์ด์ด๋ฆฌ ์
ํ
,
์ปดํจํฐ๊ณ ์ ์คํฐ๋/20021013
๋ค์ด์ด๋ฆฌ ์
ํ
์ ํ๋ฉด์ ๊ผญ ํ์ํ ๊ธฐ๋ฅ & ๋นผ๋ ์๊ด์๋ ๊ธฐ๋ฅ๋ค ๊ถ๋ฆฌ์ค.
ํ์ฌ ๋ค์ด์ด๋ฆฌ ๋ด ์ธ์คํจ๋ ์์คํ .
์์ง์ ํ์ํ ์์คํ
๋ง Install ํ๋ ๋ชฉํ์ ์ถฉ์คํ๋๋ก ๋
ธ๋ ฅํ์. Refactoring.
ํ์ํ๋งํผ๋ง .
----
์ปดํจํฐ๊ณ ์ ์คํฐ๋/20021013
๋ฐํ์ค๋นํ ๋ ์ฑ
์ 3๋ฒ์ ๋ ์ฝ๊ณ , ๋๋ฒ์ ๋
ธํธ์์ฝ์ ๋ฆฌํ๋ค. ๋๋ฆ๋๋ก ์ดํดํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ค๊ฐ์ ๋๊ฐ ์ดํดํ๋ถ๋ถ์ ๋ํด ๋ด ์๊ฐ์ ๋ง๋ถ์ฌ์ ์ด์ผ๊ธฐํ๋ ์ฐ๋ฅผ ๋ฒํ๋ค. ์ผ๋จ์ ํ
์คํธ์ ์ถฉ์คํด์ผ ํ๋๋ฐ, ํ
์คํธ์ ์ถฉ์คํ๊ธฐ ์ํด์๋ ๊ธ์ 100% ์๋ฒฝํ๊ฒ ํด์ํด์ ์ฝ๋๊ฒ ์ฒซ ๋จ๊ณ์ด๋ฆฌ๋ผ. ์ด์ฑ์๊ธฐ๋ฅ ์์์ ๊น์ฉ์ฅ์ ์์ธ๋ฅผ ๋ค์ ์๊ฐํด์ผ๋ด์ผ๊ฒ ๋ค.
ํ
์คํธ ํด์์ ์ ๋๋ก ์ํ ์๋ก ๊ทธ ๋ชจ์๋ ๋ถ๋ถ์ ๋ด ์๊ฐ์ผ๋ก ์ฑ์ฐ๋ ค๊ณ ํ๋ ์ฑํฅ์ด ๋ณด์ธ๋ค. ๊ฒฝ๊ณ๊ฐ ํ์ํ๋ค. ์ PowerReading ์์, ๋ชจ๋ฅด๋ ๋จ์ด์ ๋ํด์๋ ๊ผฌ๋ฐ๊ผฌ๋ฐ ๋ฐ๋์ ์ฌ์ ์ ์ฐพ์๋ณด๋ผ๊ณ ํ๋์ง, ์ ์ - ๋
์์์ ๋ํํ๋ ์
์ฅ์์ ์ผ๋จ ์ ์์ ์๊ฐ์ ์ ๋๋ก ์ดํดํ๋๊ฒ ๋จผ์ ์ธ์ง, ์ค๋ ๋ค์ ๋๊ผ๋ค. ๋๋์ผ๋ก ๋๋์ง ์์์ผ๊ฒ ๋ค.
PosterAreaBy1002 , 2๋ฒ์งธ ๋ฌธ์ .
์ด๋ฒ์๋ TDD ๋ก ํ๋, TDD์ชฝ๋ณด๋ค๋ PBI ์ ๋ ์ฃผ์์ ๋๊ณ ํ๋ค. ์ด๋ฐ ์ํ๊ณต์ ๊ตฌํ๊ธฐ ์คํ์ผ์ ๋ฌธ์ ์ ๊ฒฝ์ฐ๋ StepwiseRefinement ์๋ ๊ฐ์ PBI๊ฐ ๊ต์ฅํ ์ ์ฉํ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ์ฒซ๋ฒ์งธ ๋ฌธ์ ํ๋ ์ฝ๋-ํ
์คํธ-์ฌ์ ์ ์์ผ๋ก(์ค๋ณต๋ณด๋ค๋ ์ฌ์ ์์ ๋ ์ ๊ฒฝ์ผ๊ธฐ ๋๋ฌธ์) ๋์ด๊ฐ๋๊ฒ ๊ฑฐ์ 1๋ถ์ ๋์ด๊ฐ์ง ์์๋ค.
์ฒ์์๋
๋ญ. OO ๋ก ํ ์๋ ์์์ง๋ง (์๋ง Box Object ๋ฅผ ๋ง๋ค๊ณ ๋๊ฐ์ intersect box ๋ฅผ create ํ๋ค, ๊ฐ๊ฐ์ box ์๊ฒ area ๋ฅผ ๋ฌผ์ด๋ณด๋ ์์ด ๋์์๋ฏ.) ๋น ๋ฅธ ๊ฐ์ด ๋์ค๋๊ฒ ์ผ๋จ ์ด์ ์ ๋ง์ถฐ๋ณด์๋ค.
๋จ, OO Style ์ ์ฝ๋์ ๋ํด์ PBI ๋ฅผ ๋๋ฌด ๊ฐ์กฐํ๋ค๋ณด๋ฉด StructuredProgramming ์ ๋ ๊ฐ๊น์ด OO ๊ฐ ๋์ง ์์๊น ํ๋ค. PBI๋ TopDown ์ด๋ฏ๋ก.
๋๋ฒ์งธ ๋ฌธ์ ์ ๋ํด์๋ STL ์ ์ต์ํ์ง ์์์ ์๊ฐ์ด 1์๊ฐ 18๋ถ์ด ๊ฑธ๋ ธ๋ค. -_-; ์์ ๋ฌธ์ ๊ฐ ๊ฑฐ์ 20๋ถ ๋ด์ ๋๋๊ฒ์ ๋นํ๋ฉด ๊ฝค ์ค๋๊ฑธ๋ฆฐ ์
์ธ๋ฐ. ์ฒ์ ๋ฌธ์ ์ดํด๋ ๊ต์ฅํ ๊ฐ๋จํ๊ณ , ์ ๊ทผ ๋ฐฉ๋ฒ๋ ๋ฌธ์ ์ฝ์ ๋ง๋ค 2๊ฐ์ง ์ ๋๊ฐ ๋ณด์๋ค. ๋ฌธ์ ๋ ๋ด๊ฐ permutation ์ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ด์๊ณ , ์ง์ ๋ง๋ค์ด์ผ ํ๋ค. ๋ญ ๊ทธ๋๋ ๋ณ๋ก ์์ด๋ ต๊ฒ ๋ค ์ถ์ด์ TDD ์์ ๊ฐ๋จํ ์ ๊ทผ์ ํด ๋ณด์๋ค. (ํ, ์์ค๋ฅผ ํ๊ต์ ๋๊ณ ์๊ตฐ. -_-;)
์ญ์ ์ ๊ทผ์ TDD, PBI
๋๊ฐ pseudo code ๋ก ์ ์ผ๋ฉด
๊ทธ๋ฌ๋ฉด์ ๋๊ฐ ๋ค์์ ์ฝ๋ ์คํ์ผ์ด ๋์จ ๊ฒ ๊ฐ๋ค. (์ ๋จ๊ณ๋ณด๋ค ๋ ์์ ๋จ๊ณ๊ฐ ์์์. ์ ํ์ด a ํ๋๋ง.)
11 ์ผ (๊ธ): TDD ClassifyByAnagram, ๋ฅด๋ค์์ค ํด๋ฝ
์์ง์ ๋์๊ฒ '~ํ ์ ์์ ๊ฒฐ๊ตญ์ ๋ค ๊ฐ๋ค' ๋ผ๋ ๋ง๋ณด๋ค๋ '~ํ ์ ์์ ๋ค๋ฅด๋ค' ๋ ๋ง๋ก ๋ฐฐ์ธ ์ ์๋๊ฒ ๋ ๋ง์ ๊ฒ ๊ฐ๋ค. ์๋ ์ ๋ฐฐ๋ '๊ฒฐ๊ตญ SE ์ ํฐ ํ ๋ด์์์ ๋ฒ์ฃผ๋ก ๋๊ณ ๋ณด๋ฉด RUP๋ XP๋ ๊ฐ์๊ฒ ์๋๋' ์์ผ๋ก ์ด์ผ๊ธฐํ๋ค. ๋๋ XP์ ๋ค๋ฅธ์ (์ง๊ทนํ๊ฒ ๊ฐ๋ฒผ์ด ๊ณณ๋ถํฐ ์์ํ์ฌ ํ์ํ ๋ ํ
์คํฌ๋ ์คํ ๋ฆฌ๋ก์ ์ถ๊ฐํ๋)์ผ๋ก ์ฅ์ ์ ์ป๊ณ ์ ํ๋ค. ์๋ ์ ๋ฐฐ๋ TDD๋ก ํ๊ฑด ๋ญ๋ก ํ๊ฑด ๊ฒฐ๊ตญ ๋น ๋ฅด๊ฒ ์ข์ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๋ฉด ๋๋ค๊ณ ํ๋ค. ๋๋ TDD๋ฅผ ๋๊น์ง ํด๋ด(๋๋ฒ๊น
ํด๋ก ๋๋ฆฌ๋ ์๊ฐ์ด ๊ฑฐ์ 0๋ผ๋ ์ , ๋ด๊ฐ ์ ์ดํ ์ ์๋ ์ข์ ์ง๋ฌธ & ์ข์ ๋ต์ ๋ง๋ค์ด๋ด๊ธฐ)์ผ๋ก์ ์ฅ์ ์ ์ป๊ณ ์ ํ๋ค. ์์ง๊น์ง๋ ๅฎ์ ๋จ๊ณ์ด๋ผ ์๊ฐํ๊ธฐ๋๋ฌธ์.
์์ง ๅฎ ๋ฅผ ํด์ผ ํ๋ ๋จ๊ณ ๊ฐ์๋ฐ, ์ฏ๋ถ๋ฅด๊ฒ ๏งช๋ก ๊ฐ๊ธฐ์ ์์ง ์ฅ์ ์ ๋ค ์น์ด๋จน์ด๋ณด์ง ๋ชปํ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ๋ค๋ง, ๋นจ๋ฆฌ ๋ฏผ๊ฐํด์ ธ์ ็ ด์ ๏งช์ ๋จ๊ณ๋ก ๋์ด๊ฐ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ์ง๋ง, ์์ง ๋์๊ฒ ๋ฌด์ํ๊ฒ ๊ณต๋ถํด์ ์ป์ ์ ์๋ ์ฅ์ ์ด ๋ ๋ง์ ๊ฒ ๊ฐ๋ค.
์ฌ์ ํ ๅฎ ์ ๋จ๊ณ๋ฅผ ๋ชป๋ฒ์ด๋๋๊ฒ ๊ฐ์ง๋ง.
ํน์ FakeIt & Refactoring ์ผ๋ก ์งํ์ด ๊ฐ๋ฅํ ๊น ์๊ฐํด๋ณด๋ฉด์ ์ฒ์์๋ FakeIt & Refactoring ๋ง์ผ๋ก ์งํํด๋ณด์๋ค. ๊ทผ๋ฐ, FakeIt ์ ํ๊ณ Refactoring ์ ํ๋ ค ํ ๋ ๋๋ฌด ์ฌ์ ์๋ฅผ ๋ง์ด ํ๋ ๊ฒ ๊ฐ์์ ๋๊ฐ ๋์ด๊ฐ๋๋ฐ, ๊ทธ๋ฌ๋๋ ๋ค์ ํ
์คํธ๋ก ์งํํ๊ธฐ ๋๋ฌด ํ๋ค์๋ค. ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋์ ๋ ๋ณด์ด๋ ค๊ณ ํ ๋, ์์์์ FakeIt ์ผ๋ก ์ ๋๋ ์ฝ๋๋ค์ ์์ ํ๋๊ฒ ์๋๋ผ ์์ ๋ฏ์ด์ผ ํ ๊ฒ ๊ฐ์์ ๋ง์ค์ฌ์ก๋ค.
๊ฒฐ๊ตญ ์ฝ๋๋ฅผ ๋ง๋ค์ด๊ฐ๋ฉด์ 'ํ์ต๋' ์ฝ๋ - ๊ฐ ๋จ์ด์ ์์๋ค sort index ๋ฅผ ๋ง๋ค๊ณ ํด์ฌํ
์ด๋ธ์ ์ด์ฉํ๋ ์์ผ๋ก - ๋ก ๋ฐ๋ก ํ ํ๊ณ ์งํํ๋๋ฐ, ์ฌ์ ํ TDD ๋ณดํญ์ด ํฌ๋ค๋ ์๊ฐ์ด ๋๋ ๊ทธ๋ฆฌ ๊ธฐ๋ถ์ด ์ข์ง ์๋ค. (๋จ์ด๋ค ์์ sort & hash ์ ์ฅ์ ์ฒ์ ๊ฐ๋ฐํ ๋๋ถํฐ ๋ ์ฌ๋๋ ์์ด๋์ด์ฌ์..)
์ ์ผ์ฃผ์ผ์งธ ๊ธฐ์ ์๊ฐ ๊ทธ๋ํ ๊ทธ๋ฆฌ๋์ค. ์ค๋ ๊ฐ์์ค๋ ์ค์ฝ์ด๊ฐ ๋๋ค.
์์ ์ค์ผ์ค ๊ด๋ฆฌ์ ์คํจํ๋ ์ด์
์ง๊ธ ์ผ์ฃผ์ผ์งธ ์ ์ง๋๋ ์์ฃผ์์ฃผ ๊ฐ๋ฒผ์ด ์์คํ
์ผ๋ก๋
Tortorise ๋ก ๋๋์ด SSH ๋๋ฆฌ๊ธฐ ์ฑ๊ณต!
MythicalManMonth ์ ๋ํด์ PowerReading ์์์ ๋ฐฉ๋ฒ๋ค์ ์ ์ฉํด๋ณด์๋ค. ์ผ๋จ์ ์ดํด ์์ฒด์ ์ด์ ์ ๋ง์ถ๊ณ , ์๊ฐ๋ฝ์ ์ง์๋์๋ ์ดํด๋ฅผ ๊ฐ๋ ์๋๋ฅผ ์ฐ์ ์ผ๋ก ํด ๋ณด์๋ค.
์ฝ๋์๊ฐ 10๋ถ, ์์ฝ 5๋ถ, ์์ฝ๋ณด์ถฉ 7๋ถ์ ๋. WPM ์๋ ์ธก์ ์ ๋ ๋์, ์ฑ ์ ์ฝ๋๋ฐ ๋ฆฌ๋ฌ์ด ์๊ธฐ๋ ๋๋์ด ๋ ๋ค. (Chapter ํ๋์ ๋ํด์ ๋ค๋ฒ์ ๊ฑธ์น๋ ๋์ด ๋ฌ๋ค. ์ดํด๋๋ ๊ฝค ๋ง์กฑํ๋์ค.)
MMM ์์์ ๋น์ ๋ค์ ์ฐธ ๋ฉ์ง๋จ ์๊ฐ์ด ๋ ๋ค. ์ ๋ฒ Tar Pit ๋ ๊ทธ๋ ์ง๋ง, ์ด๋ฒ ์ค๋ฏ๋ ์ ๋น์ ๋ํ ์ ๋ง;
8,9 ์ผ (ํ, ์): ๊ณต์ฐ๋ณด๋ฌ ๊ฐ๊ธฐ. ๊ฐ์ธ์ ๋ฆฌ.
๋ด์ฌ๋ฆ๊ฐ์๊ฒจ์ธ, ๋ถ๋
๋งจ์
, ํ๋ฒ
์ง๋ฐด๋ ๋ฑ์ ๋ณด๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ๊ธฐํ ์ฌ๋๋ค์ ๋ฒ ์ด์ค์ฐ์ฃผ์์ด๋ค. ๋ฆฌ๋ฌ์
๊ธฐ์ผ๊น ๋ฉ๋ก๋ ์
๊ธฐ์ผ๊น. ํ์ง๋ง, ๊ทธ ๋ํํ๊ณ ๋ฎ์ ์๋ฆฌ๋ ๋๋ผ์๋ฆฌ๋งํผ ๋ชธ์ ์ธ๋ฆฌ๊ณ ์ง๋๊ฐ๋ค.
๋ด์ฌ๋ฆ๊ฐ์๊ฒจ์ธ ๋ง์ง๋ง ๋ถ๋ถ ์ฐ์ฃผํ ๋, ๋ฒ ์ด์ค์ ๋๋ผ์ฐ์ฃผ๊ฐ ์ ์ ์๋๋ฅผ ์ฌ๋ฆฌ๋๋ ๋ ๋ผ๋ค๋๊ณ , ๊ทธ์ ํจ๊ป ๊ธฐํ๊ฐ ๊ฐ์ด ์ฐ์ฃผ๋ฅผ ํ๊ณ ๋ฌด์์ง๊ฒฝ์ผ๋ก ๋ค์ด๊ฐ๋ ๋ชจ์ต์ ๋ณด๋ฉด์, ๊ฐ๋.๊ฐ๋;
๊ณต์ฐ์ฅ์์์ ์์
์ฆ๊ธฐ๋๋ฒ๊ณผ ํ์์์ ์์
์ฆ๊ธฐ๋๋ฒ์ ๋ค๋ฅผ ํ์๊ฐ ์๋๊ฒ ๊ฐ๋ค. ๋ฌ๋ ค์~!
์๋์ง๊ฐ ๋์น๋ค. ์ฌ์ด๋๊ฐ ๋์น๋ ๊ณณ, ์ฌ๋์ด ๋์น๋ ๊ณณ์ ๋ณด๋ฉด.
----
Y ๋ก ์ค์์ UBS ๋ฐฉ์ก์ฅ๊ณผ ์ ๊ตฌ์ชฝ์ ํ์ด๋ จ ๋ชจ์์ ๋ณด๋ฉด์ ๋๋ ๋ฌํ ์๊ฐ์ด๋.
----
๊ฐ์ธ์ ์ผ๋ก '๋ง์ผ ๋ด๊ฐ ์ฑ ์ ์ด๋ค๋ฉด?' ํ๋ ์์ผ๋ก ํ ๋งค๋์ฐ ์ฌ๋ผ๊ฐ์ ๋ฐ๋์๋ฉฐ ๊ธ ์ ๋ฆฌ ํด๋ณด๊ธฐ.
๊ธ์ ์ ๋ฆฌํ๋ฉด์ '์ค์ ๋ด ํ๋์ ์ด์ ๋๋ก ์ง์์ ์ฐํ์ง ์๋๋ฐ' ํ๋ ์๊ฐ์ด ๋๋, ๊ธ์ ์ฐ๊ณ ์ถ์ง๊ฐ ์์์ง๋ค. ํํธ์ผ๋ก๋ ๊ธ์ ์จ ๋๊ฐ๋ฉด์ ํ๋์ ํ ๋์, ๋ด ํ๋์ ์ฒ์ฒํ ๊ด์ฐฐํ๊ณ ํ๋์ ํ๋ ๊ฒ ๊ฐ์๋ฐ.
๋ณดํต ํ์ต์ '์ฑ
์ ์ฝ์๋' ๊ทธ๋๋ณด๋จ '๋ฌตํ๋์๋ ๊ธฐ์ต์ ๋์ง์ด๋ผ๋' ์ด๋ฃจ์ด์ง๋๊ฒ ๊ฐ๋ค. ๋๋ 'ํ๋์ผ๋ก ๋์ง์ด๋ผ๋'.
----
์ฌ์ฌ, ๋ค์ '๊ฐ๊ณต๋ ๊ธฐ์ต'๋ชจ์ผ๊ธฐ ์์. ๋ชจ๋ ๊ฒ์ ๋ค ํ์ํ๋ ์๋ ๋ก๊ทธ๋ณด๋ค๋, ์ ์ดํ ์ ์๋ ๋์งํธ์ ์ํ๋ค.

Conceptual Integrity ์ ๋ํด ์ฐพ์๋ณด๋์ค ๊ผฌ๋ฆฌ์ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๊ณ ๋ ผ๋ฌธ์ ๋ณด๋ค๊ฐ ์์ธ์ ๊ธ์ ๋ณด๊ฒ ๋์๋ค.
http://www.utdallas.edu/~chung/patterns/conceptual_integrity.doc - Design Patterns as a Path to Conceptual Integrity ๋ผ๋ ๊ธ๊ณผ ๊ทธ ๊ธ๊ณผ ๊ด๋ จ, Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods ๋ผ๋ ๊ธ์ ๋ณด๊ฒ ๋์๋๋ฐ, http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps ์ด๋ค. ๋์์ธํจํด์ ์์ฑ์ฑ๊ณผ ๊ด๋ จ, RDD ์ EDD ๊ฐ ์ธ๊ธ์ด ๋๋ ๋ฏ ํ๋ค.
- TDD์ ํ
์คํธ๋ค์ ๋ง์น ๋ชจ๋์ฃผ๋จธ๋ ๊ฐ๋ค. ๋ฌต์งํ ๋๋์ ์ฃผ๋ฉด์ ํ๋ก๊ทธ๋๋ฐ ํ ๊ฒ๋ค์ ์ดํดํ๊ฒ ํ๋๊น. ๊ทธ๋ฆฌ๊ณ , ๊ฐ์๋ก ๋๋ผ๋ ๊ฒ์ด์ง๋ง, ํ
์คํธ ์๋ ๋ฆฌํฉํ ๋ง์ ์ ๋ง ์์ํ๊ธฐ ์ด๋ ต๋ค. ์์๋ ์ค๊ฐ์ค๊ฐ ํ
์คํธ๋ฅผ ์์ฑํ์ง ์๋ ์ฝ๋๋ค๋ ์ด์ฉํ๊ณ ์๋ค. ์กฐ์ฌ์ค๋ฝ๊ธด ํ์ง๋ง, ๋ชจ๋์ ๋ณต์ก๋,์ค์๋์ ๋ฐ๋ผ ์ ๋นํ ๊ณจ๋ผ์ธ ์ ์์ ๊ฒ ๊ฐ๋ค.
- ์์๋ค์ด ๋ค์๊ธ ๋๋ผ์ง๋ง, vi ๋ก ํ์ด์ฌ ํ๋ก๊ทธ๋๋ฐ ํ๋๊ฒ ๊ฐ์ฅ ํธํ๊ฒ ๊ฐ๋ค. cygwin ์ ์ฐ๋๊น ์๋์ฐ๊ฑด ZP ๊ณ์ ์ด๊ฑด ์์
์คํ์ผ์ด ๋๊ฐ์์ ์ข๋ค. ๊ทธ๋ฆฌ๊ณ , command ์์ฃผ์ ์์
ํ๊ฒฝ์ ๋ด๊ฐ ํ๋ ค๋ ์ผ์ ๋ํด ๋ช
์์ ์ผ๋ก ์๊ฐํ๊ฒ๋ ํ๋ ํจ๊ณผ๋ฅผ ์ฃผ๋๊ฒ ๊ฐ๋ค.
๋จ์ ์์์ค๋์ฅ์ ์ด๋๊น.
- 3์ผ ์ฝ๋ ์์ฐ๋ 691 ๋ผ์ธ. ํ
์คํธ ์ฝ๋ 245๋ผ์ธ์ธ์ค.
- ์์ PHP ํ๋ก๊ทธ๋๋ฐ ํ ๋ ๋งจ๋ ์ ๋ก๋ณด๋ ์์ค๋ณด๋ฉด์ ์ํ๋๋ฐ -_-; (๋ณด๊ณ ๋ฐฐ์ธ ์์ค ์๋๋ค ๋ฅ๋ฅ, ์ ์คํจ์ ์ํ๋ ์ฌ๋๋ค์ด ์์ค ์์ ํ์ฌ ๊ธฐ๋ฅ๋ค์ ๋ง๋ค์ด๋ด์ผ ํ๋๊ฐ ๋ฑ๋ฑ -_-.. ๋์์ธ์ ์ผ๋ก ๊ทธ๋ฆฌ ๋ณด๊ณ ๋ฐฐ์ธ ๊ฒ์ด ์๋๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ. ๊ทธ๋ฅ ๋
ธ๊ฐ๋ค ์ฝ๋๋ผ๊ณ ์๊ฐ.)

- ์ฝ๊ฐ ์์ฌ์: ํ๋งค๋์ (http://www.perlmania.or.kr/PDS/pds.pl?mode=view&num=38) ์ชฝ ํ๋ํ์๋ ๋ถ์ด ๋จผ์ ๊ฒ๋ฌ๋ฆฌ ์ง์๊ธฐ๋ฅ๊น์ง ๋ง๋ค์๋ค; ์คํธ๋ง ์ฒ๋ฆฌ์ ๋ํด ํ์ชฝ ๊ฐ๋ฐ์๊ฐ ์์ด ๋ ๋น ๋ฅธ๊ฑด๊ฐ.. ํ; (๋ฌผ๋ก ์ข ๋๋ดํ๊ฒ ์์
ํ๊ฒ๋ ์์ง๋ง. -_-)
- ์ด๊ฒ๋ ๋ณ์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค. --a ์ธ๋ฏธ๋ ๋ ์ง ๋ค๊ฐ์ฌ๋ ๋ฐฅ๋จน๋ค ์ฃฝ๊ฒ ๋ ์ง๊ฒฝ์ด๋, ๊ธฐ์ฌ ๋ง๊ฐ๋ ์ง ์๋ฐํ๋ ์ฃฝ๊ฒ ๋ ์ง๊ฒฝ์ด๋. ์ด๋ ์ ์ ๊ณผ ์น๋ฃ๋ผ๋ ๋ฐ์์ผ๊ฒ ๋ค. -_-a (๋ฌด์์์ ์ผ๋ก ์ฑ
์๊ฐ๋ฐ๊ด๋
์ฆ์ด๋ผ๋์ง, ์ค์ผ์ค๊ด๋ฆฌ๋ฏธ์์ผ๋ก์ธํ์ ๊ฒฝ์๋ฐ์ฆ ๊ธฐํ๋ฑ๋ฑ ๊ตฐ์๋ ๊ตฐ์๋ )
- ์ค์ผ์ค ๊ด๋ฆฌ๋ ํ์คํ ๋ฏธ์ํ๋ค. ์ง๋๋ฒ ๊ธฐ์ฌ ์ธ๋๋ Pair ์์๊ธฐ ๋๋ฌธ์ ๋น์ทํ ์๊ฐ์ ํ ๋นํด์๋ ๊ณค๋ํ๋ค๋ผ๋ ์๊ฐ์ค. ์คํ๋ ค 1.5๋ฐฐ ์ด์์ ์ก๊ณ ์ฌ๋น ๋ฅด๊ฒ ์งํํ์ด์ผ ํ๊ฑด๋ง. ๊ฒฐ๋จ์ ๋ด๋ฆฌ๋ ์๋๊ฐ ๋๋ฆฌ๋ค. ๋นจ๋ฆฌ ์ป์๊ฑด ๋นจ๋ฆฌ ์ป๊ณ , ๋นจ๋ฆฌ ๋ฒ๋ฆด๊ฑด ๋นจ๋ฆฌ ๋ฒ๋ ค์ผ ํ๊ฒ ๊ฑด๋ง.
์์นจ ๊ธฐ์์๊ฐ 7์. To Do List ์์ ์์ ์ผ๋ค์ ๋ํด์๋ ๊น๋ํ๊ฒ ์ฒ๋ฆฌ. ๋จ, ์ฝ๊ฐ ๋จ์๋ฅผ ํฌ๊ฒ ์ก์ ์ผ๋ค์ ๋ํด์ ์ ๋๋ก ์ฒ๋ฆฌ๋ฅผ ๋ชปํ์๋ค. (2-3์๊ฐ ๊ฑธ๋ฆด ๊ฒ์ด๋ผ ์๊ฐ๋๋ ์ผ๋ค) ์ฐจ๋ผ๋ฆฌ ์ด ์ผ๋ค์ 1์๊ฐ ๋จ์ ์ผ๋ค๋ก ๋ ์ชผ๊ฐฐ์์ผ๋ฉด ์ด๋ ํ์๊น ํ๋ ์์ฌ์์ด ๋ ๋ค.

- To Do List ์ ๋ํด์ Layering ์ด ํ์ํ๋ค - ์ ์ฒด์ง๋ : ๋ถ๋ถ์ง๋ ๋๊น. XP ๋ผ๋ฉด UserStory : EngineeringTask ๋ฅผ ์ด์ผ๊ธฐํ ์๋ ์๊ฒ ์ง. EngineeringTask ์์ค์ ๊ฒฝ์ฐ Index Card ๊ฐ ๋ ํธํ๊ธด ํ๋ฐ, ๋ณด๊ดํด์ผ ํ ์ผ์ด ์๊ธธ๋ ๋ฌธ์ ๋ค. (ํนํ 2-3์ผ๋ก ๋๋์ด์ ํ๋ ์์
์ ๊ฒฝ์ฐ) ์ด๊ฑด ๋ค์ด์ด๋ฆฌ ์ค๊ฐ์ค๊ฐ์ ๊ปด๋๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐ์์ . (๊ตฌ๋ฉ 3๊ฐ์ง๋ฆฌ ๋ค์ด์ด๋ฆฌ์ฉ ์ธ๋ฑ์ค์นด๋๋ ์์๊น. -_a ํ์์ ๋ณด๊ดํ๋ค ํ์ํ๋ฉด ๋ฏ์ด์ ์ฐ๊ณ ; ํฌ์คํธ์์ด ๋ ๋์๊น.)
- ๊ฐ์ธ ์ฌ์์ ์ธ ๊ณต๊ฐ ๋ถ์กฑ - ๋ฒ์ค์์ ์ค๊ฐ์ค๊ฐ ๋ ์ค๋ฅด๋ ๋จ์์ด ์์ฝ๋ค. (์ด๋ ์์ 3 x 5 ์ธ๋ฑ์ค์นด๋๋ฅผ ์ถฉ์ (?)ํ์ง ์์๊ฒ ๋ฌธ์ ์ธ๋ฏ ํ๋ค.)
- WPM ๋ก๊ทธ ์์ฑ - ์ฃผ๋ก ์ฐ์ต์ฅ์ Summary ๋ฅผ ํ๋๋ฐ, ์ธก์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ผ๊ธฐ๊ฐ ์ด๋ ต๋ค. Summary ๋
ธํธ๋ฅผ ๋ฐ๋ก ๋ง๋๋๊ฑด ๊ทธ๋ฆฌ ์ํ์ง ์๊ณ . (Summary ๋ด์ฉ์ ๋ณด๋ ๊ฒ๋ณด๋จ Summary ํ๋ฉด์ ํ์์์ฉ์ ํ๋๊ฒ ๋ ์๋ฏธ์๋ค๊ณ ์๊ฐํ๊ธฐ์) ์ด๊ฑด ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๋ ๊ฒ ๋ ์ฌ์ธ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ํ๋ ์ฒ์ ํ๋ง ๋ง๋ค์ด๋๋ฉด ํ์ํ๋๋ฐ 1๋ถ๋ ์๋ ๋ค๋ ์ ์์. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ํ๋ ๋ชจ๋์์ง 1๊ฐ๋ง ์ฐ๋ฉด ๋๋๊น.
ํ์ฌ ๋ค์ด์ด๋ฆฌ ๋ด ์ธ์คํจ๋ ์์คํ .
- ํ๋ฌ ํ ์ผ - ์ ์ฒด์ค '์ผ์ ์ด ์ ํด์ง ํ์' ์ ๋ํด ์ ํจํ๋ฏ๋ก ๋๋๊ธฐ
- ํ๋ฃจ ํ ์ผ - ๋งค์ผ ์์นจ. ๋๋ ๊ทธ ์ ๋ ์์ฑํ๊ธฐ.
- ๊ธฐ์ ์๊ฐ ์ฒดํฌ ๊ทธ๋ํ - ํ๋ฃจ 1๋ถ ์ด์ฉ. ์์ง '๊ฐ์ ' ๋จ๊ณ๊น์ง ๊ฐ์ง ๋ชปํ์ง๋ง, ์ผ๋จ ๊ณ์ ์ฒดํฌ์ฉ.
- ๋์์ฅ - ์ด๋
์์ ํ์์์๋ฏ. ์์ด๋์ด ๊ถ๋ฆฌํ ๋๋ ์ฐจ๋ผ๋ฆฌ ์ฐ์ต์ฅ์ด ๋ ํธํ๋๊น. ์ฐจ๋ผ๋ฆฌ Index Card ๋ ํฌ์คํธ์์ผ๋ก ์ฐ๊ณ ์ค๊ฐ์ ๋ถ์ด๋๊ฒ ๋ ์ ์ฐํ ๋ฐฉ๋ฒ์ด๋ผ ์๊ฐํ๋ค.

----

- '์ดํดํ๋ค' ๋ก ๋๋ผ๋ ๊ฒ๊ณผ ๊ทธ๊ฑธ ์ค๋ช
ํ๊ธฐ ์ํด ์์ฑ๋ ๊ธ๋ก ์ ๋ฆฌํ๊ณ , ๊ทธ๊ฑธ ๋ง๋ก ํ๊ธฐ ์ํด์ ํด์ผํ ์ผ์ ๋ค๋ฅธ ๊ฒ ๊ฐ๋ค.
- Opening Question ์ด ๋ถ์กฑํ๋ค. ๊ฐ์ธ์ ๊ฒฝํ๊ณผ ๊ฒฐ๋ถ์์ผ์ ์ง๋ฌธํด๋ณผ ์ ์์์๊ฑด๋ฐ. ์๋ ์ ๋ฐฐ (๋ญ ๋ปํ์ง๋ง) ๊ฐ ๋ํ๋ฅผ ํ ๋ ์ ๋ง ์ํ๋ ๊ธฐ์ ์ค ํ๋๊ฐ ์ ์ ํ ์ง๋ฌธ๋ฒ์ด๋ค. ๋ถ์์ด ํ์ํ๋ค.

~cpp int calculateVisiableBoxSize (int x1,int y1, int x2,int y2, int x3, int y3, int x4, int y4) { return 14; } void testCalculate () { assert(calculateVisiableBoxSize(2,3,5,8,4,7,6,10) == 14); } void test() { testCalculate(); }๋ก ์์ํ์ฌ.
~cpp int boxSize=15; int coverBoxSize=1; return boxSize-coverBoxSize;
~cpp int boxSize=(5-2)*(8-3); int coverBoxSize=1; }
~cpp int boxSize=(5-2)*(8-3); int coverBoxSize=(5-4)*(8-7);
~cpp int getCoverBoxSize (int x1,int y1, int x2,int y2, int x3, int y3, int x4, int y4) { return 1; } . . int boxSize=(x2-x1)*(y2-y1); int coverBoxSize=getCoverBoxSize(x1,y1,x2,y2,x3,y3,x4,y4);์ฌ๊ธฐ์ ๋ค์ ๋ฌธ์ ๋ฅผ ๋๋์๋ค. Cover Box. ์ฆ ๋นผ์ผ ํ๋ ๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ๋ง์ผ๋ก ํฌ์ปค์ค๋ฅผ ์ขํ๋ค. ๋๋ฌด๋๋ ๋ช ๋ฐฑํ๊ฒ ๋ณด์ด๊ธฐ์. ๊ทธ๋ฆฌ๊ณ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ฆ๊ฐ์์ผ ๋๊ฐ๋ฉด์ ์ฝ๋๋ฅผ ๋๋ ค๊ฐ๋ ์์ผ๋ก ๋ง๋ค์๋ค.
~cpp int getCoverBoxSize (int x1,int y1, int x2,int y2, int x3, int y3, int x4, int y4) { return 1; } void testGetCoverBoxSize() { assert(getCoverBoxSize(2,3,5,8,4,7,6,10) ==1); }
๋๋ ์ ๋๋ก ์๋๋ผ๊ณ ์๊ฐํ๋ค. PBI์ OO๋ ์ง๊ต์ ์ด๋ค. ๋ง์ฝ, ๋๋ฉ์ธ ๋ชจ๋ธ ์ค๋ธ์ ํธ๋ก "์ฌ๊ณ "ํ๊ณ "์๋"ํ๋ค๋ฉด OO์ ์ธ ์ฝ๋๊ฐ ๋์จ๋ค(see
PosterAreaByJune ). DDD๋ฅผ ์ฐธ๊ณ ํ๊ธธ. --JuNe

~cpp result = permutation("ab") assertEquals(result[0], "ab") assertEquals(result[1], "ba")๊ทธ๋ฆฌ๊ณ ์ด์ ๋ํด์ ๊ตฌํํ๊ณ (๊ฐ์ฅ ๊ฐ๋จํ๊ฑด ๋ฐ๋ก vector ์ ab,ba ๋ฅผ ๋ฃ๋๊ฒ) ํ ์คํธ๋ฅผ ๋๋ ธ๋ค. ํ๋จ๊ณ๋ง ๋๋ฆฌ๊ณ ๋ฐ๋ก ์๊ณ ๋ฆฌ์ฆ์ด ๋์ฌ ๊ฒ ๊ฐ์๋ค.
~cpp result = permutation("abc") assertEquals(result[0], "abc")๊ทธ๋ฆฌ๊ณ ์ ๊ทผ์ ํ๋๋ฐ, ๋๋ฌด ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ก ์ ๊ทผํ๋ ค๊ณ ํ๋ค. (์ฌ๊ทํธ์ถ์ ์ด์ฉํ๋ ์์ผ๋ก.. ๊ฑฐ์ ์ผ๋ฐํ์์ ๊ฐ๊น๊ฒ) ์ด๋ฐ 10๋ถ์ ๋๋ฅผ ๊ทธ์ ๋ ์จ๋จน์ผ๋ ๋๋ฌด ์๊ฐ์ด ์๊น์์, ์ผ๋จ์ abc ์์ฒด๋ง ํต๊ณผํ๊ธฐ ์ํด ๋ ธ๋ ฅ์ ํ๋ค.
~cpp permutation (str, selectable, position) { if (position == str.size() - 2) { vector<string> result result.push_back(selectable) reverse(selectable.begin(), selection.end()) result.push_back(selectable) return result } for select in selectable: result.push_back(select) nextSelectable=removeFrom(selectable, select) subresults = permutation(str, nextSelectable, position+1) for subresult in subresults: . . . }recursive ๋ฅผ ์ฐ๋๊ฒ์ผ๋ ๋ ์์ ๋จ๊ณ๋ฅผ ๋ฐ๋๊ฒ์ ์ฌ์ ํ ํธํ ๊ฒ ๊ฐ๋ค. (์ถํ์ถ๊ฐ)
- ๋จ, ๏งช ์ ๋จ๊ณ์ ์๋ ์ฌ๋์ ๋ง์ 'Target' ์ด๋ค. ๋จ, ๊ฐ์ ๊ฒฐ๋ก ์ ๋ผ ํ์๋ ์๊ฒ ์ง.
- ํ์ง๋ง, ๊ฒฐ๊ตญ์ '๋ด ์ด์ผ๊ธฐ'๋ฅผ ํด์ผ ํ๊ฒ ์ง. ๊ทธ๋ฆฌ๊ณ , ํฐ๋ ๋น์ ์ ๋น ์ง์ง ๋ง๊ณ ๋๊ฐ ๋ ๋์ ์ ํํ๊ฒ ๋ฌธ์ ๋ฅผ ์ธ์ํ ์ ์๊ธฐ๋ฅผ.
- ์ค๋ ๊ต์ฅํ ๋น ๋ฅธ ์๋๋ก XP๋ฅผ ํก์ํ๋ ค๋ ์ฌ๋์ ๊ตฌ๊ฒฝํ ์ ์๋ ๊ธฐํ๊ฐ ๋์๋ค. ์๊ธฐ ์ํ ๋ฐ์ ๊ณํ์ ๋ํด ๋ฐฉ๋ฒ๋ก ์ ์ ์ฉํ ๊ฒ์ด๋ค. ๋ฉ์ง ๊ฐ๋ก์ง๋ฅด๊ธฐ๋ผ ์๊ฐ.
- ๋ค์ ์๋ํ๋ค๋ฉด? ๋ค์ด์ค๋ ๊ฐ๋ค์ ๊ทผ๊ฑฐ๋ก ์ผ๋ฐํ์ํค๋ ๊ณผ์ ์ ํ ์ ์์๊น..
- ๊ฐ์ธ์ ์ผ๋ก ๋๋ ์๊ฐ์, ์ค๋ณต์ ์ค์ด๋ ๊ฒ ๋ณด๋ค ์๋, ์๋ฏธ๊ฐ ๋ถ๋ช
ํ๋๋ก ์ฝ๋๋ฅผ ์ง๋๊ฒ์ด ์์๊ฐ ๋ ๋์์ผ ๋ ๊ฒ ๊ฐ๋ค. (๊ทผ๋ฐ, ์กฐ๊ธ ๊ฒ์ด๋๋๊ฑด, intention ์ ์ฐ์ ์์๋ฅผ ๋์ด๋ค ๋ณด๋ฉด refinement ๋ฅผ ๋๋ฌด ๊น๊ฒ ๋ค์ด๊ฐ๊ฒ ๋๋ค. ํ์ง๋ง ๊ฐ์ธ์ ์ผ๋ก ์ด๊ฒ์ด ๋ ์ ์ฉํ๋ค๊ณ ์๊ฐํ๋ค. ๊ธ๋ฐฉ ์ค๋ณต๋๋ ๋ถ๋ถ์ด ๋ณด์ด๊ธฐ ๋๋ฌธ์.)
PBI์ TDD๋ฅผ ์ ๋ฒ๋ฌด๋ ค์ ์ ์ฉํด ๋ณด๋ ์คํ์ ํด๋ณด์๋ผ. ์ฅ์ ์ด ๋๋ฆ๋๋ก ์๋ค. ๋จ์ ์, ๊ตฐ๋๋๊ธฐ๊ฐ ์๊ธฐ๊ฑฐ๋ ์์ ํ ํฌ๊ธฐํ๊ณ ์๋ก์ง์ผ ํ ์ผ์ด ์ข ์ข ์๋ค๋ ์ . ๋ด๊ฐ ์ค์ํ๋ค๊ณ ์๊ฐํ ๋๋ฉ์ธ ์ค๋ธ์ ํธ๊ฐ ์ฌ์ค์ ํ์์๋ ๊ฒ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์๊ฐ์ด ๋๋ฉด DDD๋ ๊ณต๋ถํด ๋ณด๊ธธ. --JuNe
HotShot์ ๋๋ ค๋ณธ ๋ค, ๊ฐ์ฅ ์๊ฐ์ ๋ง์ด ์ก์๋จน๋ ๋ ๋ ์์ ๋ํด์ ๊ตฐ๋๋๊ธฐ๊ฐ ๋๋ ์ฝ๋๋ค์ ์ญ์ ํ๋ค. ๊ทธ๋ฌ๋ค๋ณด๋, ํฝ ํ๊ณ ์๊ณ ๋ฆฌ์ฆ์ ๋ ํฅ์ ์ํฌ ๋ฐฉ๋ฒ์ด ๋ณด์๋ค. ๋ญ, ์ด๊ฒ ๊ณ ์น๊ณ ๋๋ค ์ฌ๋๋ค ์์ค๋ค์ ๋ณด๋ ๊ฑฐ์ ๋น์ทํ ๋ฏ.
- Psyco ๋ฅผ ์ฒ์ ์ค์นํ๊ณ ์จ๋ณด๊ฒ ๋์๋๋ฐ, ํ ์ผ์ ๋นํด ์ฑ๋ฅํฅ์์ด ๋์์ ์ ๊ธฐํ๋ค.
psyco๋ ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ ํจ์, ํด๋์ค๋ง ๋ฐ์ธ๋ฉํด์ฃผ๋ฉด ํด๋น ์ฝ๋๊ฐ ํธ์ถํ๋ ๋ค๋ฅธ ์ฝ๋๋ค์ ์ง์ ์์์ ๋ค ๋ฐ์ธ๋ฉ ํด์ค๋ค. ์ฆ, main์ด๋ผ๋ ํจ์๊ฐ ์๋ค๋ฉด ๊ทธ๊ฒ๋ง ๋ฐ์ธ๋ฉํ๋ฉด ํ๋ก๊ทธ๋จ ๋ด์ ๋ชจ๋ ์ฝ๋๊ฐ ๋ฐ์ธ๋ฉ ๋๋ ์ . --JuNe
์ ์ผ์ฃผ์ผ์งธ ๊ธฐ์ ์๊ฐ ๊ทธ๋ํ ๊ทธ๋ฆฌ๋์ค. ์ค๋ ๊ฐ์์ค๋ ์ค์ฝ์ด๊ฐ ๋๋ค.
- ์์นจ์๊ฐ์ ์ ๋ชป ์ด์ฉํ๋ค. ์ฃผ๋ก ๋ฐฅ๋จน๊ณ ์ ๋ฌธ์ ๋ณด๊ณ ๋ฉ์ผ, ๊ฐ ์ํค๋ค ๊ตฌ๊ฒฝ ์ด๋ฐ์์ธ๋ฐ,
- ํฐ ์ผ์ ๋ํด์ ๋ ์์ ์ผ๋ค๋ก To Do List ์ ๋๋์ง ์์๋ค. ์์๋ ์ค์ผ์ค ๊ด๋ จ ์ ๋ณด๋ฅผ ํตํฉ๊ด๋ฆฌํ๊ธฐ์ํด ์ฃผ๋ก ๋ค์ด์ด๋ฅผ ์ด์ฉํ๋๋ฐ, ์
ํ
์ ๋ค์ํด์ค ํ์๊ฐ ์์๋ฏ.
- To Do List ์ ๋ํด์ Layering ์ด ํ์.
- ์์นจ์ ๋ฐ๋์! ์์นจํ์(?)๊ฐ ํ์. -_-;
- To Do List ์ ๋ํด์ Layering ์ด ํ์.
- To Do List - ์ด๊ฑด To Do List ์์ Layering ์ด ํ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ '์๊ฐ์ ๊ตฌ์๋๋ To Do' ์ ๋ํด์.
- ๊ธฐ์ ์๊ฐ ์ฒดํฌ - ๊ทธ๋ํ ๊พธ์คํ ๊ทธ๋ฆฌ๋์ค. ์ด์ ๋ ๋ถ์ & ๊ฐ์ ์ ํด๋ณผ ์ ์์ ๊ฒ ๊ฐ๋ค.
- Reading - ๋ฐ๋ก ๋
ธํธ๋ฅผ ์ค๋นํ์ง ์์๊ณ , WPM ์์น๊ฐ ์ง๊ทนํ ๋ฎ๊ธด ํ์ง๋ง. 20๋ถ์ ๋ ํฌ์๋ก ํ๋ฒ ์งํ ๊ฐ๋ฅ.
์ฝ๋์๊ฐ 10๋ถ, ์์ฝ 5๋ถ, ์์ฝ๋ณด์ถฉ 7๋ถ์ ๋. WPM ์๋ ์ธก์ ์ ๋ ๋์, ์ฑ ์ ์ฝ๋๋ฐ ๋ฆฌ๋ฌ์ด ์๊ธฐ๋ ๋๋์ด ๋ ๋ค. (Chapter ํ๋์ ๋ํด์ ๋ค๋ฒ์ ๊ฑธ์น๋ ๋์ด ๋ฌ๋ค. ์ดํด๋๋ ๊ฝค ๋ง์กฑํ๋์ค.)
- WPM ์ 36.3 - 60%, 60 - 70%, 70 - 65%, 56 - 60%, 67 - 65% . ์์ง 100 ์ ์๋๊ธด ํ๋ค -_-; ํ์ง๋ง, ๊ธ์ ๋ํด ์ฑ
์ ์๋ณด๊ณ ์ ๋ฆฌ๋ฅผ ํ ์ ์์์ ๋์ ๋ฆฌ๋ฌ์ ํ ๊ฒ ๊ฐ์์ ๋์์ง ์์๋ค. ์ผ๋จ์ ์ดํด๋๊ฐ ๋ ์ค์ํ๋ค๊ณ ์๊ฐํ๊ธฐ์.
- ์๋์ ์ดํด๋๊ฐ ๊ผญ ๋ฐ๋น๋กํ๋๊ฑด ์๋๊ฒ ๊ฐ๋ค. ์์ด์ ๋ฆฌ๋ฌ์ ์ ๋๋ก ํ๋ ์ดํด๋ ์ ๋๋ก ๋์๋ค.
- ๋ชจ๋ฅด๋ ๋จ์ด์ ๊ฒฝ์ฐ ๋จ์ด์ ๋น๋๋ฅผ ๋ด์ ์ฌ์ ์ ์ฐพ์๋์ ๋์ค์ ์ฌ์ ์ ์ฐพ์๋๋ฅผ ๊ตฌ๋ถํ๋๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค. ์ฌ์ ์ ๋ค์ ๊ฑฐ๋ฆฌ๋๋ฐ์ ์ผ์ข
์ Context Switching ์ด ์ผ์ด๋๋ค๊ณ ํ ๊น.
๋ด์ฌ๋ฆ๊ฐ์๊ฒจ์ธ ๋ง์ง๋ง ๋ถ๋ถ ์ฐ์ฃผํ ๋, ๋ฒ ์ด์ค์ ๋๋ผ์ฐ์ฃผ๊ฐ ์ ์ ์๋๋ฅผ ์ฌ๋ฆฌ๋๋ ๋ ๋ผ๋ค๋๊ณ , ๊ทธ์ ํจ๊ป ๊ธฐํ๊ฐ ๊ฐ์ด ์ฐ์ฃผ๋ฅผ ํ๊ณ ๋ฌด์์ง๊ฒฝ์ผ๋ก ๋ค์ด๊ฐ๋ ๋ชจ์ต์ ๋ณด๋ฉด์, ๊ฐ๋.๊ฐ๋;
----
Y ๋ก ์ค์์ UBS ๋ฐฉ์ก์ฅ๊ณผ ์ ๊ตฌ์ชฝ์ ํ์ด๋ จ ๋ชจ์์ ๋ณด๋ฉด์ ๋๋ ๋ฌํ ์๊ฐ์ด๋.
----
๊ฐ์ธ์ ์ผ๋ก '๋ง์ผ ๋ด๊ฐ ์ฑ ์ ์ด๋ค๋ฉด?' ํ๋ ์์ผ๋ก ํ ๋งค๋์ฐ ์ฌ๋ผ๊ฐ์ ๋ฐ๋์๋ฉฐ ๊ธ ์ ๋ฆฌ ํด๋ณด๊ธฐ.
----
์ฌ์ฌ, ๋ค์ '๊ฐ๊ณต๋ ๊ธฐ์ต'๋ชจ์ผ๊ธฐ ์์. ๋ชจ๋ ๊ฒ์ ๋ค ํ์ํ๋ ์๋ ๋ก๊ทธ๋ณด๋ค๋, ์ ์ดํ ์ ์๋ ๋์งํธ์ ์ํ๋ค.
8์ ¶
- XP Workshop
- ProjectPrometheus
- ํ๋ก๊ทธ๋๋ฐ์์น
- Chaos, MIB;
- ๋ฅด๋ค์์คํด๋ฝ
7์ ¶
7์ผ (์ผ): ์ฑ
์์ ๋ฆฌ.
์์ฃผ ๋๋ผ์ง๋ง, Data, Information, Knowledge, Wisdom. ์ ๋ณด๋ฅผ ์๋นํ๊ณ ์ฌ์ฐฝ์ถํ์ง ์์ผ๋ฉด. ์ ์ด๋์ ๋ฐ์ดํฐ๋ค ์ฌ๋ ํผ๊ณคํ๊ฒ๋ ํ๋๊ตฐ;
6์ผ (ํ ): ๋ฌ๋ฆฌ๊ธฐ.
์ง์์๋ถํฐ ์ข ํฉ์ด๋์ฅ๊น์ง 25๋ถ ๋ ผ์คํฑ ๋ฐ๊ธฐ.
๋ฐ๋ ์ค๊ฐ ์๋๋ฅผ ์ ์งํ๊ธฐ ์ํด ๊ฑฐ์ ๋น์ทํ ์๋๋ก ๋ฌ๋ ธ๋ค. ๋จ, ์์ ๋ ์ถ์ํ ์ฌ๋์ ๋ณด๋ ๊ฒฝ์์์์ด ์๊ฒจ์ ๊ทธ์ฌ๋ ์ถ์ํ๋๋๊ณ ์ฝ๊ฐ ์ค๋ฒํ๊ฑฐ ๋นผ๊ณค ๋ญ..;
RenaissanceClub20020705 .
์ด์ ์ ๋์๊ฒ์ ์ ์๋ฆฌ ๋ฑ์์ Java ๊ธฐ์ ์ด ์ด์ฉ๋ค ๋ง์ ๊ธฐ์ฌ๊ฐ ์ด๋ ๋ค, MT ๊ฐ์ IMT 2000 ์ด ์ด๋ ๋ค ํ๋ ์ด์ผ๊ธฐ๋ฅผ ํ ์ ์๋ ๊ณณ์ ZP ๋ฐ์ ์์๋ค. ์ด๋ฒ์ ํ๋ ๋ ์๊ธธ๊ฒ์ด๋ผ๋ ๊ธฐ๋๊ฐ.
4์ผ (๋ชฉ): ScheduledWalk/์์ฒ ์๋ฃ์์
.
์ฒ์ ๊ณ ๋ คํ ๋๋ถํฐ ๊ธ์ฐ๊ธฐ๋ฅผ ๊ณ ๋ คํ๊ณ ์์ฑํ ๋ฌธ์๋ ์๋์ฌ์; (๊ทธ๋ฅ ์์ค๋ง ์ฃผ์ฑ ๋ณํ๊ณผ์ ์ ๋ณด์ด๋ ค๊ณ ํ๋ค๋.) ์ฐจ๋ผ๋ฆฌ ์ฒ์๋ถํฐ ํ๋ก๊ทธ๋๋ฐํ ๋๋ง๋ค ๋ฐ๋๋ถ๋ถ์ ๋ํด์๋ง ๊ณผ์ ์ ์ ์ด๋๊ฐ๋๋ผ๋ฉด.
1์ผ (์): ScheduledWalk/์์ฒ
StructuredProgramming ์ '์์์ ์ผ๋ก', '์ด์ฌํ', '๋๊น์ง' ํด๋ณธ ์ฒซ๋ฒ์งธ ์์ ๊ฐ ์๋๊น. ์ ์ ์์นํด์ ์์ ํ ๋์ StepwiseRefinement ์คํ์ผ์ด ์ ์ฉํ๊ธด ํ์ง๋ง, ์ง๊ธ์ฒ๋ผ ์์์ ์ผ๋ก ํ์ง ์์ ๊ฒ์ผ๋ก ๊ธฐ์ตํ๋ค.
์์ฃผ ๋๋ผ์ง๋ง, Data, Information, Knowledge, Wisdom. ์ ๋ณด๋ฅผ ์๋นํ๊ณ ์ฌ์ฐฝ์ถํ์ง ์์ผ๋ฉด. ์ ์ด๋์ ๋ฐ์ดํฐ๋ค ์ฌ๋ ํผ๊ณคํ๊ฒ๋ ํ๋๊ตฐ;
์ง์์๋ถํฐ ์ข ํฉ์ด๋์ฅ๊น์ง 25๋ถ ๋ ผ์คํฑ ๋ฐ๊ธฐ.
๋ฐ๋ ์ค๊ฐ ์๋๋ฅผ ์ ์งํ๊ธฐ ์ํด ๊ฑฐ์ ๋น์ทํ ์๋๋ก ๋ฌ๋ ธ๋ค. ๋จ, ์์ ๋ ์ถ์ํ ์ฌ๋์ ๋ณด๋ ๊ฒฝ์์์์ด ์๊ฒจ์ ๊ทธ์ฌ๋ ์ถ์ํ๋๋๊ณ ์ฝ๊ฐ ์ค๋ฒํ๊ฑฐ ๋นผ๊ณค ๋ญ..;
- ๋ฐฐ์ด์ : ์ค์ํ๊ฑด ํธํก์ ๋ฆฌ๋ฌ. ์์์ ๊ฒฝ์ฐ ๋ฆฌ๋ฌ ๋ชป๋ง์ถ๋ฉด ์จ๋ ๋ชป์ฌ์ง๋ง. ์๋๋ฅผ ๋ผ๋์ ํธํก๋ฆฌ๋ฌ๊ณผ ํด์์ ์ํ ๋ฆฌ๋ฌ์ด ๋ค๋ฅด๋ค.
- ์ ๋ ์ง์ ๋ชป๋ค์ด๊ฐ์ ๊ทธ๋ฐ์ง (์ดํ, 64-1 ์ผ๊ฐ๋ฒ์ค๋ 1์ ์ด์ ์ ๋๊ธด๋ค. ์น์ฌํ๊ฒ.. 916๋ฒ์ 2์๋๋๋ก 10๋๋ ๋๊ฒ ์ง๋๋ค๋๊ฑด๋ง ์ฉ) ๋๋์์ฌ๋๋ ๋
ผ์คํฑ์ผ๋ก ๋ฐ์ง ๋ชปํ๋ค.

์ด์ ์ ๋์๊ฒ์ ์ ์๋ฆฌ ๋ฑ์์ Java ๊ธฐ์ ์ด ์ด์ฉ๋ค ๋ง์ ๊ธฐ์ฌ๊ฐ ์ด๋ ๋ค, MT ๊ฐ์ IMT 2000 ์ด ์ด๋ ๋ค ํ๋ ์ด์ผ๊ธฐ๋ฅผ ํ ์ ์๋ ๊ณณ์ ZP ๋ฐ์ ์์๋ค. ์ด๋ฒ์ ํ๋ ๋ ์๊ธธ๊ฒ์ด๋ผ๋ ๊ธฐ๋๊ฐ.
์ฒ์ ๊ณ ๋ คํ ๋๋ถํฐ ๊ธ์ฐ๊ธฐ๋ฅผ ๊ณ ๋ คํ๊ณ ์์ฑํ ๋ฌธ์๋ ์๋์ฌ์; (๊ทธ๋ฅ ์์ค๋ง ์ฃผ์ฑ ๋ณํ๊ณผ์ ์ ๋ณด์ด๋ ค๊ณ ํ๋ค๋.) ์ฐจ๋ผ๋ฆฌ ์ฒ์๋ถํฐ ํ๋ก๊ทธ๋๋ฐํ ๋๋ง๋ค ๋ฐ๋๋ถ๋ถ์ ๋ํด์๋ง ๊ณผ์ ์ ์ ์ด๋๊ฐ๋๋ผ๋ฉด.
- ์์ ์ผ์ ๋๋ฌด ์๊ฐ์ ๋ง์ด ๋์ด์ ๋ค๋ฅธ ์ผ๋ค์ ํ ์๊ฐ์ด ์ ์ด์ ธ๋ฒ๋ ธ๋ค. ์๊ฐ๊ด๋ฆฌ์๊ฐ๊ด๋ฆฌ.
- ์ค๋๋ฐ๋ผ ๋ชธ์ด ํผ๊ณคํจ์ ๊ดญ์ฅํ ๋ง์ด ๋๊ผ๋ค. ํ์ํ๋ก๊ทธ๋จ์ด ํ์ํ๋ค;
- ๋ง์ผ ์์ด๊ถ์์ ์ด์๋ ์ฌ๋์ด๋ผ๋ฉด ๋ ๋นจ๋ฆฌ ๋ง๋ค์์ํ
๋ฐ. ์ผ์ ์ฐ๋ ๋จ์ด๋ ํ๋ก๊ทธ๋๋ฐ๋์ ํจ์ ์ด๋ฆ์ด๋ ๋๊ฐ์ด ์ง์ํ
๋. ํ์. ํ๊ตฌ;
6์ ¶
25 ~ 28์ผ (ํ~๊ธ): ObjectOrientedProgramming ์ธ๋ฏธ๋ ์ค๋น๊ธฐ.
์ธ๋ฏธ๋ ์๋ฃ ์ค๋น์ ์ฐฝ์ค์ดํ์ผ๋ก๋ถํฐ ์ฌ๋ฌ ์กฐ์ธ๋ค์ ๋ค์์๋ค. 'Sub Type ๊ณผ Sub Class ์ ๋ํ ๊ตฌ๋ถ์ ๋ํด์ ์ค๋ช
ํ์ผ๋ฉด ์ข๊ฒ ๋ค', 'OOP ๋ฅผ ํ๋ฉด ์ ์ข์์ง ๋๋ ์ ์๋๋ก ์ธ๋ฏธ๋๋ฅผ ์งํํ๋ฉด ์ข๊ฒ ๋ค', '๋ฌธ์ ํด๊ฒฐ์ ๋ํ ์ฌ๊ณ ๊ณผ์ ์ ๋ณด์ฌ์ค ์ ์์ผ๋ฉด ์ข๊ฒ ๋ค' ๋ฑ๋ฑ. ๊ตฌ๊ตฌ ์ ์ ์๊ฐํด๋ณด๋ฉด ์ฐธ ์ผ๋ฆฌ์๋ ์ด์ผ๊ธฐ๋ค์ด์๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ์ธ๋ฏธ๋ ์ค๋นํ๋ ๊ฐ์ฅ ๊ณ ํ๋ฒ์ด๋ ๋งํผ ์ ํ๊ณ ์ถ์๊ณ .
Sub Type ๊ณผ Sub Class ์ ๋ํด ์๋ฃ๋ฅผ ๋ค์ง๋์ค ํฌ์์ด์ ๋ฉ์ ์ ์์ ๋ํํ๋ฉด์ '์.. ์ ๋ฐ ์ ์์ ์ค๋ช ์ ํ์๋ ๋ป์ด์๊ตฌ๋' ํ๋ฉฐ ์์ ์กฐ์ธ๋ค์ ๋ํ ์ค์์ฑ์ ์ธ์งํ๋ค.
"์ธ๋ฏธ๋๋ ์ธ์ ๋? ๋๋ ์ฐธ์ํ๋๋ก ํ์ง."
"ํ; ํ..ํ.."
"์? ์ซ๋?"
"์.. ์๋จ. ํํํ;"
"์๋๊ฒ ๋ณด๋ ์ข์๊ฐ ๋ณด๊ตฌ๋. ^^"
"์.. ์ฐ..์์์ ๋ง์ ์๋ฏธ๊ฐ ์๊ณค ํ์ฃ . ํ..ํํ;"
ํ..ํํ; ๊ทธ๋ฅ ํ๋๋๋ก ์ค๋นํ๋ค๊ฐ ๊นจ์ง๊ฒ ๊ตฌ๋; ์ฝ๊ฐ์ ๋ถ๋ด์ ๊ฐ์ง๊ณ . ์์. - -;
์ธ๋ฏธ๋ ์ค๋น
์.. ๊ทธ๋ฌ๊ณ ๋ณด๋ ๋๋ ์ OOP๋ฅผ ํ๋๊ฑฐ์ง? ๊ฐ์ธ์ ์ผ๋ก ์ฒ์ ํด๋์ค๋ฅผ ๊ตฌํํ๋ฉด์ ์ฐพ์๋ธ ์ฅ์ ์ ๋ค์์ด์๋ค.
๋ค์ 'OOP๋ ์ ํ๋๊ฐ' ์ ๋ํ ์ง๋ฌธ์ ํ๋ฉด์ ๋ด๊ฐ ํ๋ฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ๊ฒ ๋์๊ณ , ๋ด๊ฐ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฉด์ ์ ์ฉํ๊ฒ ์ด์ฉํ์๋ ์ฌ๊ณ ์ต๊ด(์ผ๋ จ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค ์ ํํ๊ฒ๋;) ์ ๋ํด ์๊ฐํ๋ฉฐ OOP ์ธ๋ฏธ๋ ์ค์ผ์ค 1์ฐจ ์ด์์ ๋ง๋ค์ด๋ณด๊ธฐ ์์ํ๋ค.
์ธ๋ฏธ๋๋ ๊ฑธ๋ฆด ์๊ฐ์ ๋๊ฐ ์ก์๋ณด๋, ๋ค์๋ 6์๊น์ง ๊ฑฐ์ Full ๋ก ๋ฐ์ด์ผ ํ๋ค. ์ฐ.. ๋ด๊ฐ ์ข ๋๋ฌดํ๋ ํ๋ ์๊ฐ์ด ๋ค๊ธด ํ์ง๋ง, ์ผ๋จ์ ์ค์ํ๋ค๊ณ ์๊ฐํ ๊ฐ๋
๋ค์ ๋นผ๋จน๊ธฐ๋ ์ซ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์์ ์ฐฝ์ค์ดํ์๊ฒ ๋ณด์ฌ๋๋ฆฌ๊ณ ์กฐ์ธ์ ๊ตฌํ๋ค.
23 ~ 29 : ๋ฐ๋ธ์ค์บ ํ2002/์งํ์ํฉ
3,4,5,7 : ProjectZephyrus/ClientJourney
1์ผ (ํ ):
์ฆ, Application Class ์ ์ธ์คํด์ค๊ฐ ๋ง๋ค์ด์ง๊ธฐ ์ํด์ MainFrame ํด๋์ค๊ฐ ์์ฑ๋์ด์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ, MainFrame ์์๋ Application ์ ์ธ์คํด์ค๋ฅผ ์๊ตฌํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Application์ getInstance๋ฅผ ํธ์ถํ๊ณ , ์์ง ์ธ์คํด์ค๊ฐ ๋ง๋ค์ด์ง์ง ์์์ผ๋ฏ๋ก ๋ getInstance ์์ Application ์ Class ๋ฅผ ์๋ก ๋ ๋ง๋ค๋ ค๊ณ ํ๊ณ ๋ค์ MainFrame ํด๋์ค๋ฅผ ์์ฑํ๋ ค ํ๊ณ .. ์ด๋ฅผ ๋ฐ๋ณตํ๊ฒ ๋๋ ๊ฒ์ด์๋ค.
๊ฒฐ๊ตญ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ก ํด๊ฒฐ์ ํ๋ค.
Class ์ ์ญํ ๋ค์ Delegation ์ผ๋ก ๋ค๋ฅธ ํด๋์ค๋ค์๊ฒ ์์์์ผ์ฃผ๋ฉด์ ์ผ๋ ํจํด์ด ๋๊ฐ ์ด๋ฌ๋ ๊ฒ ๊ฐ๋ค.
Sub Type ๊ณผ Sub Class ์ ๋ํด ์๋ฃ๋ฅผ ๋ค์ง๋์ค ํฌ์์ด์ ๋ฉ์ ์ ์์ ๋ํํ๋ฉด์ '์.. ์ ๋ฐ ์ ์์ ์ค๋ช ์ ํ์๋ ๋ป์ด์๊ตฌ๋' ํ๋ฉฐ ์์ ์กฐ์ธ๋ค์ ๋ํ ์ค์์ฑ์ ์ธ์งํ๋ค.
"ํ; ํ..ํ.."
"์? ์ซ๋?"
"์.. ์๋จ. ํํํ;"
"์๋๊ฒ ๋ณด๋ ์ข์๊ฐ ๋ณด๊ตฌ๋. ^^"
"์.. ์ฐ..์์์ ๋ง์ ์๋ฏธ๊ฐ ์๊ณค ํ์ฃ . ํ..ํํ;"
- Global ๋ณ์๋ฅผ ์ฐ๊ธด ์ซ๊ณ , ์์ฐ์๋ ๋ถํธํ๊ณ , Global ๋ณ์๊ธ๋น ๊ฐ์ฒดํ๋์ฉ์ด๋ฉด ํธํ๊ฒ ๋ค. ํ๋, ํ
ํฌ๋์ ๊ธฐ๋ฐํ.
- Visual C++ ์์ ํด๋์ค๋ก ๋ง๋ค์ด์ฐ๋ฉด ์ธํ
๋ฆฌ์ผ์ค ๊ธฐ๋ฅ ์ง์์ ๋ฐ์์ ํ๋ก๊ทธ๋๋ฐ ํ๊ธฐ ํธํ๋ค๋.
- ๋ฌด์์ ํ ๊ฒ์ธ๊ฐ : ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ์ ๊ด์ . ๋๋ ์ด๊ธฐ์ ํ๊ต ์ ๊ณต ์ค Science ์ Engineeing ์ ๊ธฐ์ค์ ์ ๊ฒ์ผ๋ก ๋๋์์๋ค. ๋ด๊ฐ '๋ฌด์์ ๊ณต๋ถํ ๊น?' ๋ผ๊ณ ์ง๋ฌธ์ ํ ๋๋ ์์ ๋ถ๋ฅ๋ฅผ, '์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ?' ๋ผ๋ ์ง๋ฌธ์ ํ ๋๋ ๋ค์ ๋ถ๋ฅ๋ฅผ. ๋ฐ๋ก ์ ์ฉ๋์ง ์๊ฒ ์ง๋ง, "OOP ๋ 'ํ๋ก๊ทธ๋๋ฐ์ ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ?' ๋ผ๋ ๋ถ๋ฅ์ ์ํ๋ค" ๋ผ๊ณ ๋งํด์ฃผ๋ฉด ๋จธ๋ฆฟ์์์ ๋ถ๋ฅํ๊ธฐ ํธํ ๊ฒ์ด๋ ์๊ฐ์ ํ๋ค.
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ ๊ณผ์ - OOP๋ฅผ ํ๋ฉด์ ๋๋ ๊ธฐ๊ณ๋ก ๋ง๋ค์ด์ง ์์ง์ ๋ ์ฌ๋ฆฌ๊ณค ํ๋ค. ๋ณผํธ, ๋ํธ, ์ค๋ฆฐ๋, ํฌ๋ญํฌ, ๋ฐฐ๊ธฐ๋ฐธ๋ธ... ์ ๊ฒ๋ค์ ๋ฆ๊ณ ์กฐ์ด๊ณ ๊ธฐ๋ฆ์ณ๊ฐ๋ฉฐ ๋ง๋ค์ด๊ฐ๊ธฐ. ์ด ๋ถ๋ถ์ ์ด๋ป๊ฒ ์ค๋ช
ํ ๊น ํ๋ฉด์ '์ฐจ๋ผ๋ฆฌ ๋ฒกํฐ ๊ทธ๋ํฝ ํด์ ๋ง์ ธ๋ณด๊ฒ ํ ๊น' ํ๋ ์๊ฐ๋ ํด๋ดค์๋ค. ์ค๊ฐ์ Python Interpreter ๋ฅผ ๋ง์ ธ๋ณด๊ฒ ํ๋๊ฒ์ด ์ข๊ฒ ๋ค๋ ์๊ฐ์ ํ์๊ณ , ์ฐฝ์ค์ดํ๊ณผ์ ์ ํ์ค ๋์ฑ ๋ ํ์ ์ ๊ฐ์ง๊ฒ ๋์๋ค.
- ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์ ๋ฐ์ ์ ๊ทผ - ๋ฌธ์ ๋ฅผ Top Down ์ผ๋ก ๋๋๋ค๋ ๊ด์ . 2ํ๋
๋ DirectX ๋ก ์ํ
๊ฒ์์ ๋ง๋ค๋ ๊ฐ๋ ์์ํ๋๊ฒ์ด ์๊ณ ๋ก ๋ง๋ ์์ ์กฐ๊ฐํ๋ ๊ณผ์ ์ด์๋ค. ์กฐ๊ฐ์ ํ ๋์ ์ฒ์์ ์ ์ฒด์ ์ ๋ชจ์์ ๋ง๋ค๊ธฐ ์ํด ํฌ๊ฒ ํฌ๊ฒ ๊นจ ๋๊ฐ๋ค. ๊ทธ๋ฌ๋ค๊ฐ ์ ์ ์ธ๋ฐํ๊ฒ ์กฐ๊ฐ์นผ๋ก ํ ๋๊ฐ๋ฉด์ ์ํ์ ๋ง๋ค์ด๋๊ฐ๋ค. ์ด๋ฐ ์์ผ๋ก ์ค๋ช
ํ ์ ์๊ฒ ๊ตฐ ํ๋ฉฐ ์ถ๊ฐ.
- Stepwise Refinement - ์ด๋ฒ์ ์ ๊ณผํ ์ฌ๋์ค์ ์ํ๊ณผ๊ฐ ์์๋๊ฒ ๊ฐ๋ค. ๊ทธ๋ฐ ์ฌ๋๋ค์๊ฒ ์ํ๋ฌธ์ ์ ๋ํ ์ ๊ฐ๊ณผ์ ๊ณผ๋ ๊ฐ์๋ณด์ด๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ๋ณด์ฌ์ฃผ๋ฉด ์ข๊ฒ ์ง ํ๋ ์๊ฐ์ ํ๋ ๊ณจ๋ผ๋ณด์๋ค. ๊ฐ์ธ์ ์ผ๋ก ์์นํด์ ์์ ๋ฅผ ํ ๋ ์ ์ฉํ๊ฒ ์จ๋จน์๋ ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํด์.
- DesignPatterns ์ฐ์ต์ฐจ ๊ฐ๋จํ๊ฒ ๊ทธ๋ฆผํ์ ๊ตฌํํด๋ด. ์ฒ์ ๊ฐ๋จํ๊ฒ ์ ๋ถ MainFrame class ์ ๋ค ๊ตฌํํ๊ณ , ๊ทธ ๋ค์ Delegation ์ผ๋ก ์ ์ฐจ ๋ค๋ฅธ ํด๋์ค๋ค์๊ฒ ์ญํ ์ ์ด์ํด์ฃผ๋ ๋ฐฉ๋ฒ์ ์จ ๋ณด์๋ค. ๊ทธ๋ฌ๋ ์ค MFC์์์ WinApp ์ฒ๋ผ Application class ๋ฅผ SingletonPattern ์คํ์ผ๋ก ๋ฐ์ผ๋ก ๋บ์๋๋ฐ, ๊ณ์ Stack Overflow ์๋ฌ๊ฐ ๋๋ ๊ฒ์ด์๋ค. '์ด๋ผ? ์ด๋๊ฐ ๊ณ์ ์ฌ๊ทํธ์ถ์ด ๋๋?..'
~cpp Application.java public static Application getInstance () { if (theApp == null) { theApp = new Application (); theApp.init (); } return theApp; } public Application () { toolManager = new ToolManager (); mainFrame = new MainFrame (); mainFrame.setSize (640,480); mainFrame.show (); } MainFrame.java public JMenu _makeToolMenu () { JMenu menuTool = new JMenu ("Tool"); toolActionListener = new ToolActionListener (); Enumeration toolList = Application.getInstance().getToolsList(); String toolName; JMenuItem toolMenuItem; while (toolList.hasMoreElements()) { toolName = toolList.nextElement().toString(); toolMenuItem = new JMenuItem (toolName); toolMenuItem.addActionListener(toolActionListener); menuTool.add(toolMenuItem); } return menuTool; }
๊ฒฐ๊ตญ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ก ํด๊ฒฐ์ ํ๋ค.
~cpp public static Application getInstance () { if (theApp == null) { theApp = new Application (); theApp.init (); } return theApp; } public Application () { } public void init () { toolManager = new ToolManager (); mainFrame = new MainFrame (); mainFrame.setSize (640,480); mainFrame.show (); }
- SingletonPattern - Application Instance๋ฅผ Global ๊ฐ์ฒด๋ก. ๊ทผ๋ฐ, ์ด๋ ์ผ์ฅ์ผ๋จ์ธ๊ฒ ๊ฐ๋ค. ์๋ชปํ๋ฉด Application ์ค์์ง์ค์ฒด์ ๊ฐ ๋๋ค. Application ๋ด์์ Delegationํ๋ ๊ฐ์ฒด๋ค์ด ๋ง์๋ฐ, ๊ทธ ๋์ Application ์ด ๋๋ฌด ์ค๊ฐ ๋ฉ์ธ์ง ์ ๋ฌ์ญํ ๋ก๋ง ์์ฉํ๋๊ฒ ๊ฐ๋ค. ๋ญ, FacadePattern ์ธ์ ๋๋ค๋ฉด ๋ชจ๋ฅด๊ฒ ์ง๋ง. ์ด๊ฑด ์ฝ๋ ์ปค์ง๊ณ ๋ ๋ค ๋๊ณ ๋ณผ ์ผ์ธ๊ฒ ๊ฐ๋ค.
- StatePattern - Tool ์ ํ์์ ์ด์ฉ. ํ์ฌ Tool์ ์ถ๊ฐํ๋ ค๋ฉด 1. Tool ์์. 2. interface ๊ตฌํ. ์ด๋ค. ์ค์ง์ ์ธ ๊ธฐ๋ฅ์ ํ๋ ค๋ฉด ํ์ฌ ์ฝ๋์์ CommandPattern ๊ณผ ๋ถ์ด์ผ ํ ๋ฏ.
5์ ¶
24์ผ (๊ธ), 27์ผ (์):
19์ผ (์ผ):
10์ผ (๊ธ):
8์ผ (์):
19์ผ (์ผ):
10์ผ (๊ธ):
8์ผ (์):
- SE ์๊ฐ์ CBD (CBD & Business ๋ผ๋ ์ธก๋ฉด. 3๊ฐ ์ฐ์) ๋ฅผ ๋ฐฐ์ธ๋๋ง๋ค ๋๋ผ๋ ์ ์ด ์๋ค๋ฉด, ๋ค๋ฅธ ๊ณตํ (๊ธฐ๊ณ, ์ ์, ๊ฑด์ถ) ๋ค์ ๊ฐ๋
๋ค์ ์ด์ฉํ์ฌ Software ๋ฅผ Hardware ํ ์ํจ๋ค๋ ๋๋์ด ๋ ๋ค. ๋ 'ํ์ค' ์ ๊ฐ์กฐํ์๋ ๊ต์๋. ์ปดํฌ๋ํธ์ชฝ๊ณผ QA์ชฝ์์ ๊ทธ ์ด๋ฆ์ด ๋น ์ง ์ ์๋ ๊ต์๋์ด์๊ธฐ์, ๊ทธ๋ฆฌ๊ณ ํ์ ์์
๋ ์์ ์ ๋์ด๋งํผ ์ฐ๋ฅ์์ผ์ ๋ง์์ ํ์๊ธฐ์ ๋ง์์ด ํ๋ค๋ฆฌ์ง ์์ ์ ์๊ณ , ๊ฒฐ๊ตญ 'ํฑ๋๋ฐํด๋ค ์ค ํ๋'๋ผ๋ ์๊ฐ์ ํ๊ณ ๋๋ฉด ์ฝ๊ฐ ํ์ค๋ฝ๋ค. ๊ทธ๋์ ๊ต์๋๊ป์๋ ๋ 'Domain Expert' & 'Speciality' ๋ฅผ ๊ฐ์กฐํ์์ง๋ง.
- ์ด๋์ฏค ํด์ผ ํ ์ง๋ฌธ์ด '๊ทธ ๋ค์์ ํ ์ผ์?' ์ด๊ฑด๋ง. ์ ์๋ง ๋ณด๋ฅ.
- ์ด๋์ฏค ํด์ผ ํ ์ง๋ฌธ์ด '๊ทธ ๋ค์์ ํ ์ผ์?' ์ด๊ฑด๋ง. ์ ์๋ง ๋ณด๋ฅ.
- Wiki ์ค๋ช
ํ๋ ๋๋ JuNe ์ ๋ฐฐ์ ๋ํ ๋ถ์ (
AnalyzeMary) - ์ด๋ป๊ฒ ํ๋ฉด ๋ณ ๊ด์ฌ์์ดํด๋ณด์ด๋ ์ฌ๋๋ค๋ก๋ถํฐ ์ง๋ฌธ์ ์ ๋ํด๋ด๊ณ ๋ฐ์์ ๋์ด์ฌ ์ ์์๊น? ์ ๋ง ์ ๊ธฐํ ๊ฒฝํ์ด์๋ค. ์ฒ์์๋ ๊ทธ๋ฅ ๋ณ ์๊ฐ์์ด ๋ณด์ด๋ ์ฌ๋๋ค๋ ์ค๋ช ์ Turn (์ค๋ช ๋ด์ฉ๋ณ๋ก ์ฝ๊ฐ์ฝ๊ฐ ๋จ๋ฝ์ด. ์ค๊ฐ Feedback ์ ์ดํผ๊ณ , ๋ค์ ์๋ก์ด ์ค๋ช ์ ํ๋ ๋ชจ์ต) ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ค์ค๋ก '์ง๋ฌธ' ์ ํ๊ฒ ๋์์๊น.
- ๋ชฉ์๋ฆฌ ํค & ์๋ - ์ด๋ ์ฌ๋๋ค์ ์ง์ค๋์ ์ด๋์ ๋ ์ํฅ์ ๋ผ์น๋ค๊ณ ์๊ฐ. ๋ํ ์ด๊ฒ์ ์์ ๊ฐ์ ์ฒ๋์ธ๊ฒ ๊ฐ๋ค. ์์ ๊ฐ์์ด๋ ์ ์ ํ ์๋์กฐ์ ์ ๋ชปํ๊ณ , ๋ชฉ์๋ฆฌ ํฌ๊ธฐ๋ฅผ ์๋ง๊ฒ ์กฐ์ ํ ์ ์๋ค.
- ๋ด์ฉ์ ์ ๊ทผ๋ฐฉ๋ฒ - ์ง๋ฌธ์ ๋์ง๊ณ , ๋ด์ฉ์ ์ด์ผ๊ธฐํ๊ณ , ๋ ์ง๋ฌธ์ ๋์ ธ๋ณด๊ณ ... XP์ TDD๋ฅผ ๋ณด๋ ๊ฒ ๊ฐ์๋ฐ, ์ด ๋ํ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ๋ค. Feedback ์ ์ดํ๋ค๋ ์ ์์.
- ๋ค์ํ ๊ฒฝํ - ๋ด์ฉ์ ๋ง๋ค์ด๋ด๋ ค๋ฉด, ๊ทธ๋งํผ ๊ฒฝํ์ด ํ์ํ๊ธฐ์. ์ฑ์ฅ๊ณ๋จ์ด๋ผ๋๊ฐ, ์์ ์ด '๋ฐฐ์ด' ๋ด์ฉ์ '์ ์ฉ' ํด๋ณผ ์ ์๋ ํฐ๋ก์ ์ด์ฉํ๋ค๋๊ฐ, Refactoring ๊ณผ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฐ์ ๊ด์ ์์ ์ค๋ช
ํ๋ค๋๊ฐ ๋ฑ๋ฑ (์ด๊ฒ๊ฐ์ ๊ฒฝ์ฐ ๋ด์ฉ์ ์๊ณ ์์ด๋, ์ฌ๋๋ค์ ๋ ๋ฒจ์ ๋ง์ถฐ์ผ ํ๊ธฐ๋๋ฌธ์ ์ ์ ํ๊ฒ ๊บผ๋ผ ํ์ด๋ฐ์ ๋ง์ถฐ์ผ ํ ๊ฒ ๊ฐ์๋ฐ. ์ด์ผ๊ธฐ๊ฐ ํ๋ฌ๊ฐ๋ฉด์ ํ์ด์ง ๊ตฌ์กฐ์กฐ์ , Refactoring ์ผ๋ก๊น์ง์ ์ด์ผ๊ธฐํ๋ฆ์ ๊ฐ. ์ด๋ป๊ฒ ํ๋ฌ์จ๊ฑธ๊น.)
- ๋ชฉ์๋ฆฌ ํค & ์๋ - ์ด๋ ์ฌ๋๋ค์ ์ง์ค๋์ ์ด๋์ ๋ ์ํฅ์ ๋ผ์น๋ค๊ณ ์๊ฐ. ๋ํ ์ด๊ฒ์ ์์ ๊ฐ์ ์ฒ๋์ธ๊ฒ ๊ฐ๋ค. ์์ ๊ฐ์์ด๋ ์ ์ ํ ์๋์กฐ์ ์ ๋ชปํ๊ณ , ๋ชฉ์๋ฆฌ ํฌ๊ธฐ๋ฅผ ์๋ง๊ฒ ์กฐ์ ํ ์ ์๋ค.
- ํ๊ต์์ ๋ ํฌํธ๋ฅผ ์ฐ๊ธฐ ์ํด (ProgrammingLanguageClass/Report2002_2) ๋์๊ด์ ๋ค๋ ธ๋ค. HowToReadIt ์ ๋ฐฉ๋ฒ์ค ๋ค๋
์ ๊ดํ ๋ฐฉ๋ฒ์ ๋ ์ฌ๋ฆฌ๋ฉด์ ์ฝ๊ฐ ๋น์ทํ ์๋๋ฅผ ํด๋ดค๋ค. (์ค. ๋ฐฉ๋ฒ๋ค ์์ฒด๊ฐ Extreme~ ํด๋ณด์ธ๋ค;) 1์๊ฐ 30๋ถ ๋์ Java ์ฑ
๊ธฐ์ด์ 2๊ถ๊ณผ ์์ 1๊ถ, VB์ฑ
3๊ถ์ ๋๋ฅผ ํ์ด์ฝ์๋ค. (10์ฌ๊ถ๊น์ง๋ ์๋๊ฐ ์๋์; ๋์๊ด์ด 3์๊น์ง๋ฐ์ ์ํ๋ ๊ด๊ณ๋ก) ์์ ์ ์๋ฐ๋ฅผ ํ๊ธด ํ์์ง๋ง, ์ ๋๋ก ํ ๊ธฐ์ต์ ์๋ค. ์ฒ์์๋ ์์์ ๊ณ ๊ธ์์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ ์ฝ์ผ๋ ค๋๊น ๋จธ๋ฆฌ์ ์ ์๋ค์ด์๋ค. ๊ทธ๋์ ๊ฐ์ฅ ์ฌ์๋ณด์ด๋ ๊ธฐ์ด์ (์๊ธฐ์ฌ์ด Java2, Java2 ์๋ฐํ ํผ์ ๋ฑ ๋๊ป ์์ ํ์๋ค) ๋ฅผ ์ฝ๊ณ ์ ์ฝ์ด๊ฐ๋๊น ๊ฐ์์ด ๋ถ์ด์ ์ฝ๊ธฐ ์ฌ์ ๋ค. 3๋ฒ์งธ์ฏค ์ฝ์ด๋๊ฐ๋๊น Event Listener ์ Delegation ์ ์๋ฏธ๋ฅผ ์ ๋๋ก ์ดํดํ ๊ฒ ๊ฐ๊ณ (์์ ์๋ ์์ค ๋ฐ๋ผ์น๊ธฐ๋ง ํ์๋ค.) StatePattern์ผ๋ก์ ์งํ (์งํ๋ณด๋จ '์ถํ์ ์' ์ด ๋ ๋ง์ผ๋ ค๋) ๊ฐ ์ฉ์ดํ ๊ตฌ์กฐ์ผ ์ ์๊ฒ ๋ค๋ ์๊ฐ์ ํ๊ฒ ๋์๋ค. (Event Listener ์์ ์์ฑํ๋ ์ฝ๋๋ฅผ ์กฐ๊ธ๋ง Refactoring ํ๋ฉด ๋ฐ๋ก StatePattern ์ผ๋ก ์ ์ฉ์ ์ํฌ ์ ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ์์ง ๊ตฌํํด๋ณด์ง ์์๊ธฐ ๋๋ฌธ์ ๋ญ๋ผ ํ ๋ง์ ์๋์ง๋ง.) ์๊ฐ์ด ์์๋ค๋ฉด ํ๋ฃจ์ข
์ผ ์๋ํด๋ณด๋๊ฑด๋ฐ ์์ฝ๊ฒ๋ ํ๊ต์ ๋ฆ๊ฒ ๋์ฐฉํด์;
- ์์ ์ ํ์๋ ์ผ์ด MFC ์ฑ
ํ๊บผ๋ฒ์ ์ฝ๊ธฐ์๋๋ฐ, ๊ทธ๋ ์ด์์ฝ์จ ์ฑ
(bible, 2์ฃผ์์ฑ, 5ํ ์๋ฒฝ๊ฐ์ด๋)์ด๋ Jeff Prosise ์ ์ฑ
๋ฒ์ญํ์ ๊ฐ์ด ์ฝ์ผ๋ฉด์ ์ด์์ฝ์จ์ฑ
์ ์ฅ์ ๊ณผ Jeff ์์ ์จ (?) ์ฑ
์ ์ฅ์ ์ ๊ถ๋ฆฌํ์์๋ค. ํํธ์ ์ค์ ์ด๋์ ๋ VC++ Programming ์ ํ๊ณ ๋๋ค์์ Tip ๋ค์ด๋ผ ํ๋ค๋ฉด, ํํธ์ API Programming ์ ์ญ๋ ตํ๊ณ ๋ ๋ค์ MFC๋ฅผ ์ฐจ๊ทผ ์ฐจ๊ทผ ์ดํดํด๋๊ฐ๋ ๊ณผ์ ์ ์ค๋ช
ํ๋ค๊ณ ํด์ผ ํ ๊น. MFC๋ฅผ ์ฒ์ ํ๊ณ ๋๋ค '์ปดํจํฐ๊ฐํ๋ค ์ ๋นํน๊ฐ์ ์๋ฒฝ๊ฐ์ด๋ ์๋ถ๋ถ MFC Framework ์ค๋ช
๊ณผ Jeff ์ ์ฑ
์ผ๋ก ํด๊ฒฐํ ์ ์์๋ ๊ธฐ์ต์ด ์๋ค.
- ์์ ์ ํ์๋ ์ผ์ด MFC ์ฑ
ํ๊บผ๋ฒ์ ์ฝ๊ธฐ์๋๋ฐ, ๊ทธ๋ ์ด์์ฝ์จ ์ฑ
(bible, 2์ฃผ์์ฑ, 5ํ ์๋ฒฝ๊ฐ์ด๋)์ด๋ Jeff Prosise ์ ์ฑ
๋ฒ์ญํ์ ๊ฐ์ด ์ฝ์ผ๋ฉด์ ์ด์์ฝ์จ์ฑ
์ ์ฅ์ ๊ณผ Jeff ์์ ์จ (?) ์ฑ
์ ์ฅ์ ์ ๊ถ๋ฆฌํ์์๋ค. ํํธ์ ์ค์ ์ด๋์ ๋ VC++ Programming ์ ํ๊ณ ๋๋ค์์ Tip ๋ค์ด๋ผ ํ๋ค๋ฉด, ํํธ์ API Programming ์ ์ญ๋ ตํ๊ณ ๋ ๋ค์ MFC๋ฅผ ์ฐจ๊ทผ ์ฐจ๊ทผ ์ดํดํด๋๊ฐ๋ ๊ณผ์ ์ ์ค๋ช
ํ๋ค๊ณ ํด์ผ ํ ๊น. MFC๋ฅผ ์ฒ์ ํ๊ณ ๋๋ค '์ปดํจํฐ๊ฐํ๋ค ์ ๋นํน๊ฐ์ ์๋ฒฝ๊ฐ์ด๋ ์๋ถ๋ถ MFC Framework ์ค๋ช
๊ณผ Jeff ์ ์ฑ
์ผ๋ก ํด๊ฒฐํ ์ ์์๋ ๊ธฐ์ต์ด ์๋ค.
- SE - UML. ๋ฏธ๋ฆฌ ์ ํ ๋ด์ฉ์ด๋ผ ์๊ฐ๋์ด์์ธ์ง ๊ธด์ฅ๊ฐ์ด ๋จ์ด์ก๋ค. 80-100 ์ฌ์ฅ์ PPT๋ฅผ 1์๊ฐ์ ๋์ ๋ค ์ค๋ช
ํ์๋ ๊ต์๋์ ๋ณด๋ฉด PL ์๊ฐ๊ณผ ์ฒ์ง์ฐจ์ด๋ค. (PL๋ 1์๊ฐ์ 6~12์ฅ;)
- Numerical Analysis Report ์ OS Report ๋ฅผ ํ๋๋๊ณ ๊ฑฐ์ ๋ฐค์ ์๋๋ฐ ('๊ฑฐ์' ์ธ ์ด์ ๋, ์ค๊ฐ์ ์ธ์ ์ค๋์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ ์ ; OS ์ ๋ํ Design ๊ทธ๋ฆฐ ์ข
์ด๊ฐ ์๊ธด ํ ๊ฒ ๋ณด๋ฉด ๋ถ๋ช
OS Report ๋ฅผ ํ๋ ์ค๊ฐ์ด์๋๊ฒ ๊ฐ์๋ฐ; ์ด๋ถ๋ ์ ๋ฎ๊ณ ์๊ฒ ๋ณด๋ฉด ์ ๊ธฐํ๊ธด ํ๋ค;;) NA ์์ ์ ๋ํ Quality Management ์ ๋ํ ์คํจ๋ผ๊ณ ํด์ผ ํ ๊น. ์๊ฐ ์กฐ์ ์ ํ๊ณ OS Report ์ ์๊ฐ์ ๋ ํฌ์ํ ๋ฐฉ๋ฒ์ด ์์์์๋ ๋ถ๊ตฌํ๊ณ ์กฐ๊ธ ์์ฝ๋ค. ์ฌํด์ ํ๋๋ ๊ฐ์ธ์ ์๊ฐ๊ด๋ฆฌ๋ฅ๋ ฅ๋ฐฐ์์ด ๋ ๊ฒ ๊ฐ๋ค. (99ํ๋ฒ. 3ํ๋
์ด ๋๋๋ก ์ด๋ชจ์์ด๋ ๋ถ๋๋ฝ๋ค;)
- Simple Design ์ ๋ํด์ ๋ด๊ฐ ์๋ชป ์๊ฐํ ๊ฒ ๊ฐ๋ค. Up-Front Design ์์ฒด๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ๋ค์ด๊ฐ์๋ ์ผ๋ง๋ ๋ณต์กํ ์ ์๋์ง๋ ๋ชจ๋ฅด๋ฉด์ ์ฒ์๋ถํฐ Simple Design ์ ๋
ผํ ์ ์์๊น ํ๋ ์๊ฐ๋ ํด๋ณธ๋ค. ์๊ฐํด๋ณด๋, ์ฌํ๊ป ๋ด๊ฐ ๊ทธ๋ฆฐ ์ ์ฒด UML Class Design ์ ๊ฑฐ์ ๋ค Simple Design ์ด๊ฒ ๊ตฐ. -_-; (Interface ๋ค Method ์ด๋ฆ๋ ๊ฒฐ์ ์ํ์ผ๋๊น.)
- ๋ฐ๋ฆฌ๋ To Read Later๋ฅผ ๋ณด๋ฉด์ ๋ค์๊ธ ๋ค์ง์;
4์ ¶
15์ผ (์):
- ์ํ๊ณต๋ถ ์ฌ๊ฐ์ค. ๊ทนํ & ์ฐ์ & ๋ฏธ๋ถ ๋ค์ ๋ณด๋์ค. ์กฐ๊ธ ๊ธํ ๋จน๊ณ ์์ด์ ์ฒดํ ๊น๋ด ์ฝ๊ฐ๊ฑฑ์ ๋จ. ์์ง์ ์ด ๋์ํ๊ณผ ๊ธฐํํ์ ๊ต์ฐจ์ ์ด๋ผ๋ ๋ง์ด ์ธ์๊น์๋ค. (์ด ๋ง์ด ๋์ค๊ธฐ ์ ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ ๋ฆฌ๊ฐ ์ฌ๋ฌ๊ฐ ๋์๋ค. ์ค์๊ณ์ ์์ง์ ์ด ๊ทธ ์์์ ๋ง๊ฒ 1:1๋งค์นญ์ด ๋๋ค๋ ๊ฒ๋ถํฐ. ์. ์ธ๊ณ์ ์ธ๊ณ๊ฐ ์ฐ๊ฒฐ๋๊ธฐ๋ ์ฝ์ง ์๋๋ค.)
- ๋ด๊ฐ ์๊ฐ ๊ณ์ฐ์ ๊ทธ๋ ๊ฒ ํฌ์ฒ ํ์ง ๋ชปํ๋ค๋ ์ ๋ฐ๊ฒฌ. ๋ค๋ฅธ ์ฌ๋ Pair ํ ๋๋ ๊ฑธ๋ฆฐ ์๊ฐ์ฒดํฌ ์ด์ฌํ ํ๊ฑด๋ง, ์ ์ ๋ด๊ฐ ์ฐ๊ณ ์๋ ์๊ฐ์ ์ ๋๋ก ๊ธฐ๋กํ์ง ๋ชปํ์๋ค. (์ง๊ธ 1์๊ฐ์ ๋๋ฅผ ๊ณํ์ ์๋ ์ผ๋ก ์ค๋ฒ์ค;;)
- ์ด์ฑ์ ๊ธฐ๋ฅ์ ๋ค์ ์ฝ์.
- SWEBOK Software Construction ๋ถ๋ถ ํ๋ฒ์ ๋ฆฌ. Software Design Part๋ ๊ทธ๋๋ ๋ง์์ ๋ค์์๋๋ฐ, Construction ์ ๋ถ๋ฅ ๋ถ๋ถ์ด ๋ง์ ์๋ค์ดํ๋์ค. SWEBOK ์ด ์๋ ์ด์ ๊ฐ ํด๋น Knowledge Area ์ ๋ํด์ ์ผ์ข
์ ์ดํด์ ํ์ ์ ๊ณตํ๋ ๊ฒ์ธ๋ฐ, ์ด๋ฒ ์ฑํฐ๋ ๊ทธ ์ญํ ์ ์ ๋๋ก ํ์ง ๋ชปํ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ๋ค๋ฅธ ์ฑ
์ ์ฐพ์๋ณด๋์ง ์ผ๋จ ๊ฑด๋๋ฐ๋์ง ํด์ผ๊ฒ ๋ค. ๊ทธ๋๋ ์ผ๋จ ๋ด์ผ์ ์ํด ํ๋ฒ๋;
- Operating System Concepts. Process ๊ด๋ จ ์ ๋ฐ์ ์ผ๋ก ํ์ด๋ด. ๋๊ธฐํ ๋ฌธ์ ๋ ๋ฐ๋๋ฝ ๊ฐ์ ์ฉ์ด๋ค์ ์ด์ ์ Client / Server Programming ํ ๋ ์ค๋ ๋ ๋๊ธฐํ ๋ถ๋ถ์ ํ๋ฉด์ ์ ํด๋ณธ์ง๋ผ ๋น๊ต์ ์น์ํ๊ฒ ๋ค๊ฐ์๋ค. (Process ๋ Thread ๋ ๋๊ธฐํ ๋ถ๋ถ์ ๋ํด์๋ ๊ฑฐ์ ๋ค๋ฅผ๋ฐ ์์ด๋ณด์ธ๋ค.)
- ์ข ๋ ์ฒด๊ณ์ ์ผ๋ก ๊ณต๋ถํ ์์ ์งํ Chapter ๋ฅผ ์ ๋ ๊ฒ์ด ๋ ๋ชฉํ๊ฐ ๋ช
์์ ์ผ๋ก ๋ณด์ผ๊ฒ ๊ฐ๋ค. (์ด๊ฒ์ '๋ชฐ์
์ ์ฆ๊ฑฐ์' ์์์ ๋ชฐ์
ํ๊ธฐ ์ฌ์ด ํํ๋ฅผ ๋ง๋ค์ด ์ค๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๊ทผ๋ฐ, ์ด๋ฏธ ์ด๋ฐ๊ฑฐ ๋ค ๊ณ์ฐํ๊ณ ์๋ค๊ณ ์๊ณ ์๋ ์ํ์์๋ ๋ชฐ์
์ด ๋๋ ค๋;)
- SWEBOK ์์๋ MindMap ์ด ์ ์ ์ฉ๋์์๋๋ฐ, OSC ์์๋ ์คํ๋ ค ConceptMap ์ ์ ๊ทผ์ด ๋ ์ฉ์ดํด๋ณด์๋ค. ์ด๊ฒ๋ ์ฑ
์ ์คํ์ผ์ ์ํฅ์ ๋ฐ์๋ฏ. (๊ธฐ์กด์ SWEBOK ์ ํ์ฑ์ ์ ์ Index-Hierarchy ์คํ์ผ์ด ๋ฌธ์ ๊ฐ ์๊ธด ํ๋ค.)
- ์ข ๋ ์ฒด๊ณ์ ์ผ๋ก ๊ณต๋ถํ ์์ ์งํ Chapter ๋ฅผ ์ ๋ ๊ฒ์ด ๋ ๋ชฉํ๊ฐ ๋ช
์์ ์ผ๋ก ๋ณด์ผ๊ฒ ๊ฐ๋ค. (์ด๊ฒ์ '๋ชฐ์
์ ์ฆ๊ฑฐ์' ์์์ ๋ชฐ์
ํ๊ธฐ ์ฌ์ด ํํ๋ฅผ ๋ง๋ค์ด ์ค๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๊ทผ๋ฐ, ์ด๋ฏธ ์ด๋ฐ๊ฑฐ ๋ค ๊ณ์ฐํ๊ณ ์๋ค๊ณ ์๊ณ ์๋ ์ํ์์๋ ๋ชฐ์
์ด ๋๋ ค๋;)
- SWEBOK Construction ๋ถ๋ถ ํ๋ฒ ๋ ๋ด. ํ์ง๋ง ์ฌ์ ํ ๋ง์์ ์๋ค์ดํ๋์ค; (์๋ฏผ์ฐ ๋ง์ฒ๋ผ '์์ด๋ก ๋ ๋ํ์ฑ
์ฝ๊ณ ์ธ์ต์คํผ์ด ์๋ฌธํ ์ฝ์ด์ผ' ์ดํดํ๋ ๋ด์ฉ์ด์ฌ์ ๊ทธ๋ฐ๊ฐ;) Code Construction ์ ์๋ฌด๋๋ Design ์์ญ์ด๋ Test ์์ญ์ ๋นํด์ art (์์ ๋๋ ๊ธฐ์ ) ์ ์ธ ์ธก๋ฉด์ด ์ปค์ ๊ทธ๋ฌ๋ ค๋. ์ด๊ฑด ๋ค๋ฅธ ๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๋ ๊ฒ์ด ๋์ ๊ฒ ๊ฐ๋ค. ํ๊ณ๋ฅผ ์๊ฐํ์.
- ๋ค์น๋ฐ๋ ๋ค์นด์์ ์ฑ
์ฝ์. ๋ฒ์ค ์์์ ์ ๋ฐ (์ผ๋ฐ์ ์ธ ์ฑ
์ฌ์ด์ฆ ๊ธฐ์ค ๊ฐ๋ฒผ์ด ๋ด์ฉ๊ธฐ์ค์ผ๋ก ์๊ฐ๋น 100ํ์ด์ง๋ ์ฝ๋ ๊ฒ ๊ฐ๋ค.)์ฏค ์ฝ๊ณ , ์ง์์ 1์๊ฐ 10๋ถ์ ๋ ์จ์ ๋๋จธ์ง๋ฅผ ๋ค ์ฝ์๋ค. (์ด๋ฒ์ฃผ๋ด๋ก ์ ๋ฆฌ & ๊ธ ์ฌ๋ฆฌ๊ธฐ)
- ์ธ์ ๊น์๋ ๋ด์ฉ ๋๊ฐ: '์,์ฌ, ์ ๋น ์ฒดํ' ์์ ์ํ์ฉ์ด์ค 'ๆๅจ่ญ' ์ด๋ผ๋ ๊ฒ์ด ์๋ค๊ณ ํ๋ค. ๋ณ์์์ ํ์์ ์์์์ค์ด ์ ์ ๋ฎ์์ง๊ณ ์์ ๋ ๊ทธ ์์ค์ ๊ฒ์ฌํ๊ธฐ์ํด ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ํ๋ค.
'์ฌ๊ธฐ๋ ์ด๋์
๋๊น?' - ์ธ์ ๊น์๋ ๋ด์ฉ ๋๊ฐ: '์,์ฌ, ์ ๋น ์ฒดํ' ์์ ์ํ์ฉ์ด์ค 'ๆๅจ่ญ' ์ด๋ผ๋ ๊ฒ์ด ์๋ค๊ณ ํ๋ค. ๋ณ์์์ ํ์์ ์์์์ค์ด ์ ์ ๋ฎ์์ง๊ณ ์์ ๋ ๊ทธ ์์ค์ ๊ฒ์ฌํ๊ธฐ์ํด ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ํ๋ค.
'๋น์ ์ ๋๊ตฌ์ ๋๊น?'
'์ง๊ธ์ ์ธ์ ์ ๋๊น?'
- OSC ์ ์ฒด์ ์ผ๋ก ํ์ด๋ณด๊ธฐ 2์ฐจ (ํ์ด๋ณด๊ธฐ๋ก ๋๋ต 2์๊ฐ ์ด์ฉ). ์ฑ
์์ฒด๊ฐ ์ ๋ง๋ค์ด์ก๋ค๋ ์๊ฐ์ด ๋ ๋ค. 'Concept' ์ ์ถฉ์คํ๋ค. ์ฑ
์ ๋ํ ์ ๋ฐ์ ์ธ ์์ผ๋ ์กํ ๊ฒ ๊ฐ๋ค.
- ์ ๋ฐ์ ์ธ OS ์๋์๋ฆฌ๊ฐ 1,2์ฅ์ ๊ฑธ์ณ.
- Process Management ๊ฐ 3,4,5,6,7์ ๊ฑธ์ณ. ์ํ๋ฒ์๋ Process Synchronization ๊น์ง.
- Memory Management
- I/O Management
- ์ ๋ฐ์ ์ธ OS ์๋์๋ฆฌ๊ฐ 1,2์ฅ์ ๊ฑธ์ณ.
- ๋ฌธ์ : ์คํ ํฉ๊ธ์๊ฐ์ 4์๊ฐ์ด๋