E D R , A S I H C RSS

Seminar How To Program It

์• ๋“ค๋Ÿฌ์˜ How to Read a Book๊ณผ ํด๋ฆฌ์•ผ์˜ How to Solve it์˜ ์ „ํ†ต์„ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ชฝ์—์„œ ์ž‡๋Š” ์„ธ๋ฏธ๋‚˜๊ฐ€ 2002๋…„ 4์›” 11์ผ ์ค‘์•™๋Œ€ํ•™๊ต์—์„œ ์žˆ์—ˆ๋‹ค.


ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฐ€? ์–ด๋–ค ์‚ฌ๊ณ ์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š”๊ฐ€? ์–ด๋–ค ์ธ์ง€์  ๋ณด์กฐ๋ฌผ์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€? ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋” ์ž˜ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

  • CrcCard (Index Card -- The finalist of Jolt Award for "design tools" along with Rational Rose Enterprise Edition)
  • Paper Shell Programming -- Becoming a Pseudo-Turing Machine Yourself
  • TestDrivenDevelopment -- ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ฝ”ํŽ˜๋ฅด๋‹ˆ์ฟ ์Šค์  ์ „ํ™˜
  • Stepwise Refinement -- ์ง„๋ถ€ํ•œ ๋ฏธ๋ž˜, ์‹ ์„ ํ•œ ๊ณผ๊ฑฐ (see also NoSmok:ProgrammingOnPurpose )
  • White Board -- Communicate with the Board
  • PairProgramming -- 1+1 > 2
  • Refactoring -- ํ›„๊ฐ ๊ฐœ๋ฐœ๋ฒ•
  • DesignPatterns -- ๋””์ž์ธํŒจํ„ด ๊ณต๋ถ€ ์ ˆ๋Œ€๋กœ ํ•˜์ง€ ๋งˆ๋ผ
  • Coding Style -- esp. How to Name it (ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ์ •๋ช…ํ•™. "ๅญๆ›ฐ ๅฟ…ไนŸๆญฃๅไนŽ...ๅ๏ฅงๆญฃๅ‰‡่จ€๏ฅง้ † ่จ€๏ฅง้ †ๅ‰‡ไบ‹๏ฅงๆˆ" <๋…ผ์–ด> ์ž๋กœํŽธ)
  • Managing To Do List -- How to Become More Productive Only With a To-do List While Programming
  • Programmer's Journal -- Keeping a Diary (see also NoSmok:KeepaJournalToLiveBetter )
  • Lifelong Learning as a Programmer -- Teach Yourself Programming in Ten Years (http://www.norvig.com/21-days.html )
  • What to Read -- Programmer's Reading List

์œ„์˜ ๊ฒƒ์„ ๋‘์‹œ๊ฐ„ ๋™์•ˆ ๋‹ค ํ•œ๋‹ค๋Š” ๊ฒƒ์€ -- ์„ธ๋ฏธ๋‚˜ ์ด์ „๊ณผ ์ดํ›„์— ์‚ฌ๋žŒ์ด ๋‹ฌ๋ผ์ง€๋Š” ์ˆ˜์ค€์—์„œ -- ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , TDD์™€ PP, ๊ทธ๋ฆฌ๊ณ  DP(RF)๋ฅผ ์ง‘์ค‘์ ์œผ๋กœ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ์ œ ๊ตฌ๋‘์„ค๋ช…์€ ์งง๊ฒŒ ์ค„์ด๊ณ  ๋‚˜๋จธ์ง€ ์‹œ๊ฐ„์€ ์ด ์„ธ๊ฐ€์ง€๋ฅผ ์ง์ ‘ ์‹ค์Šต, ํ† ๋ก ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•  ๊ฒƒ์€ ๋งŽ๊ณ  ์‹œ๊ฐ„์€ ์งง์Šต๋‹ˆ๋‹ค. ์š”์ฆ˜ ์ €์˜ "์„ธ๋ฏธ๋‚˜ ํ™”๋‘"๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด "์ ๊ฒŒ ์ „๋‹ฌ"ํ•˜๊ณ  ๊นŠ์ด ๊นจ๋‹ซ๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ๋ฐ˜์„ฑํ•˜๊ณ  ๋˜ ๋‹ค์–‘ํ•˜๊ฒŒ ์‹คํ—˜ํ•ด ๋ณผ ์—ฌ์ง€๋ฅผ ๋งŽ์ด ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์„๊นŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋Œ€์ƒ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•œ ๋ถ„, ํ˜น์€ ๋„ˆ๋ฌด ๋งŽ์€ ๋ถ„.

์„ธ๋ฏธ๋‚˜๋Š” ์‹ค์Šต/ํ† ๋ก  ์ค‘์‹ฌ์˜ ํ•ธ๋“œ์˜จ ์„ธ๋ฏธ๋‚˜๊ฐ€ ๋  ๊ฒƒ์ด๋ฉฐ, ๋”ฐ๋ผ์„œ ์ธ์›์ œํ•œ์ด ์žˆ์–ด์•ผ ํ•  ๊ฒƒ์ž„. ์•ฝ 20๋ช… ๋‚ด์™ธ๊ฐ€ ์ ๋‹นํ•  ๋“ฏ. ("Tell me and I forget, teach me, and I may remember, involve me and I learn." -- Benjamin Franklin)

ํ˜‘๋™์  ํ•™์Šต์„ ๋ชฉํ‘œ๋กœ ํ•จ -- ์ €๋Š” ์„œ๋กœ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š”์ง€ ๋งค๋ฒˆ ๋†€๋ž๋‹ˆ๋‹ค.

--๊น€์ฐฝ์ค€


์‹œ๊ฐ„๊ณผ ์žฅ์†Œ

  • ์žฅ์†Œ: ์ค‘์•™๋Œ€ํ•™๊ต ๊ณต๋Œ€(๋ด…์ŠคํŠธํ™€) 7์ธต PC์‹ค (4744)
  • (๊ณต์‹์ ) ์‹œ๊ฐ„:4์›” 11์ผ 7์‹œ 30๋ถ„~9์‹œ 30๋ถ„ (ํ† ๋ก ์€ 9์‹œ 30๋ถ„์—์„œ 10์‹œ๊นŒ์ง€ ์ง„ํ–‰๋  ์˜ˆ์ •)
  • ๋Œ€์ƒ: ์ค‘์•™๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ ๊ณตํ•™๊ณผ ์ œ๋กœํŽ˜์ด์ง€ ํšŒ์› ๋ฐ ๋น„ํšŒ์›, ํ˜น์€ ํƒ€๊ณผ, ํƒ€ํ•™๊ต ํ•™์ƒ/๊ต์ˆ˜/์ผ๋ฐ˜์ธ
  • ๊ตํ†ตํŽธ : 212, 21๋ฒˆ ํ‘์„๋™ ์ค‘๋Œ€์ž…๊ตฌ. ์ง€ํ•˜์ฒ  7ํ˜ธ์„  ์ƒ๋„์—ญ ํ•˜์ฐจ (์ƒ๋„์—ญ์—์„œ 20๋ถ„ ๊ฑฐ๋ฆฌ)

ํ”„๋กœ๊ทธ๋žจ (pun intended)

์ค€๋น„
  • 7:00-7:30 ์„ธ๋ฏธ๋‚˜ ์ค€๋น„, ํ™˜๊ฒฝ ์„ค์น˜, ์ž๋ฆฌ ์„ ํƒ, ๊ฐ ์–ธ์–ด ๊ทธ๋ฃน๋ณ„ xUnit(or assert) ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ/์Šคํ„ฐ๋””

๋ณธ ์„ธ๋ฏธ๋‚˜
  • 7:30-7:50 ๊ฐ•์‚ฌ ๋„์ฐฉ. TDD ๋ฐ RF ์‹œ์—ฐ(Python). ๋Œ€ํ˜• ํ™”๋ฉด์„ ๋ณด๊ณ  ์›ํ•˜๋Š” ์ปคํ”Œ์€ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ์Œ.
  • 7:50-8:00 PP์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ, ์ฃผ์˜์  ๋“ฑ.
  • 8:00-8:10 ์ปคํ”Œ๋ณ„๋กœ TDD ์‹ค์Šต
  • 8:10-8:30 ๊ทธ๋ฃน ๋‚˜๋ˆ„๊ธฐ, Crc Card ์†Œ๊ฐœ, ํ”„๋กœ์ ํŠธ ์š”๊ตฌ์‚ฌํ•ญ ์†Œ๊ฐœ ๋ฐ ๊ทธ๋ฃน๋ณ„ ํ† ์˜
  • 8:30-9:30 ๊ทธ๋ฃน๋ณ„ ๊ฐœ๋ฐœ ์ง„ํ–‰ (๊ฐœ๋ฐœ ์ค‘ ๊ณ ๊ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ •)

ํ† ๋ก 
  • 9:30-9:35 ๊ทธ๋ฃน๋ณ„ (๋‚ด๋ถ€) ํ† ๋ก , ํ‰๊ฐ€
  • 9:35-10:00 ํ”„๋กœ๊ทธ๋žจ ์‹œ์—ฐ, ์„ค๋ช…, ์ „์ฒด ํ† ๋ก 

์ค€๋น„ ์‚ฌํ•ญ

  • PC ๋ฏธ๋ฆฌ ์…‹ํŒ… - ํ”„๋กœ์ ์…˜ ํ•  ์ปดํ“จํ„ฐ : Idle Fork + Python 2.2
  • ๊ธฐํƒ€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋“ค์€ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”? ๊ธฐ๋ณธ์œผ๋กœ Visual Studio ๋Š” ๊น”๋ ค์žˆ์„ ๊ฒƒ์ด๋ฏ€๋กœ C, C++ ๋Š” ๋˜๊ฒ ์ง€๋งŒ, Java ์“ฐ์‹œ๋Š” ๋ถ„๋“ค์€?
    • ๊ธฐ๋ณธ์ ์œผ๋กœ Idle Fork์™€ Python 2.2๋Š” ๋ชจ๋‘ ๊น”์•„์•ผ ํ•จ. (๊ฐ•์‚ฌ๊ฐ€ Python์œผ๋กœ ์‹œ๋ฒ”์„ ๋ณด์ผ ๊ฒƒ์ด๊ณ , ์ด๊ฑธ ๋ณด๋ฉด์„œ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผํ•˜๊ณ  ์‹ถ์€ ์ปคํ”Œ์€ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก)
    • Java 3๋Œ€ : JDK 1.3.1_02, eclipse 2.0 SDK(pre-release), Editplus ์„ค์น˜ ๋ฐ ์„ธํŒ…
    • C++ 3๋Œ€ : VC++ 6.0 (์„ค์น˜ ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ ํ™•์ธ์ฐจ์›)
    • python 4๋Œ€ : Python 2.2, Idle Fork


~cpp 
7์‹œ ~ 7์‹œ 30๋ถ„ ์ค‘๋น„ ๊ณผ์ • (์ค€๋น„ ์ธ์›์€ 3~4๋ช…์ด ์ ๋‹นํ• ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.)

0. ์ฒญ์†Œ, ์ •๋ฆฌ
1. user ์ œ์™ธ ๊ณต์œ  ์ ๊ฒ€ & ๋ฐ”์ด๋Ÿฌ์Šค ์ฒดํฌ(v3 ๋””์Šค์ผ“)
2. ์ž๋ฆฌ ๋ฐฐ์น˜
    Java 3๋Œ€ : JDK 1.3.1_02,   eclipse 2.0 SDK(pre-release),   Editplus ์„ค์น˜ ๋ฐ ์„ธํŒ…
    C++ 3๋Œ€ : VC++ 6.0 (์„ค์น˜ ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ ํ™•์ธ)
     python 4๋Œ€ : Python 2.2, Idle Fork
     ํ”„๋กœ์ ์…˜ ํ•  ์ปดํ“จํ„ฐ : Idle Fork + Python 2.2
3. ํ”„๋กœ์ ํŠธ ์„ค์น˜

0,1,2 ๋ฒˆ ์ธ์›์ด ๋ ๊ฒฝ์šฐ ๋™์‹œ ์ง„ํ–‰, 2๋ฒˆ ๊ณผ์ • ๋ณ‘๋ ฌ ์ˆ˜ํ–‰ 3๋ฒˆ ๋‹จ์ผ
๊ธฐํƒ€ ์‚ฌํ•ญ :
ํ•ด๋‹น ๋‚ ์งœ์— 7์ธต์˜ PC์‹ค์— ์„ธ๋ฏธ๋‚˜ ๊ณต๊ณ ๋ฅผ ๋ถ™์—ฌ๋„ ๋œ๋‹ค๊ณ  ํ—ˆ๋ฝ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ €๋ณด๋‹ค ๋จผ์ € pc์‹ค์— ๋„์ฐฉํ•ด ์‹œ๊ฐ„์ด ์žˆ์œผ์‹ ๋ถ„๋“ค์€ ์ ๋‹นํ•œ ๊ณต๊ณ ๋ฅผ 7์ธต PC์‹ค ๋ฌธ์— ๋ถ™์—ฌ ์ฃผ์„ธ์š”. PC์˜ ํ™•๋ณด์—ญ์‹œ ์ž์œจ์ ์ด์ง€๋งŒ, ๋งˆ์ฐฌ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค. --์ƒ๋ฏผ

Thread

์žฅ์†Œ ๊ด€๋ จ ์—ฌ๋‹ด : ๋•์ค€์ด์™€, ์„์ฒœ์ด๊ฐ€ 2์ธต์„ ๋Œ€์—ฌ๋ฅผ ์œ„ํ•ด ์•Œ์•„ ๋ณด์•˜์ง€๋งŒ, ํ•™์ƒ์˜ ๊ถŒํ•œ์œผ๋กœ๋Š” ๋นŒ๋ฆด์ˆ˜ ์—†๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๊ณ  ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‹ค์Œ์— ํ•„์š”ํ• ๋•Œ๋Š” ํ•™๊ณผ์žฅ๋‹˜๊ป˜ ํ•ด๋‹น ํ–‰์‚ฌ์˜ ๋ฌธ์„œ ์ œ์ถœํ›„์— ์žฅ์†Œ ํ™•๋ณด๊ฐ€ ๊ฐ€๋Šฅํ• ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ๊ณผ์‚ฌ์—์„œ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์–‘์‹์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.(๊ณผ๊ฑฐ PC ๋นŒ๋ ธ์„๋•Œ ์ฒ˜๋Ÿผ) --์ƒ๋ฏผ

4์›” 12์ผ์€ ์ดMT์™€ ๊ฒน์น˜๊ณ , ๋‚˜๋จธ์ง€, 9์ผ์ด๋‚˜ 11์ผ์ด ์ข‹์„๊ฑฐ ๊ฐ™์€๋ฐ์š”.. ์„ธ๋ฏธ๋‚˜ ๊ธฐ๋Œ€๋˜๋Š”๋ฐ์š”..^^ - ์ƒํ˜‘

ํ‘.. ์ •๋ง ํ•˜๊ณ  ์‹ถ์€๋ฐ.. 9์ผ์€ ํšŒ์˜๊ฐ€(๊ธฐ์ด๋ถ€) ์•„์•„์•….. ์–ด..์–ด์ฉŒ๋ฉด ์ข‹์ง€์š”.. ์ €๋Š”..?? ใ… .ใ…  --์„ ํ˜ธ

ํšŒ์˜ ์งธ๊ณ  ์™€~ ๋‚œ ๊ธฐ์ˆ™์‚ฌ ๋™๊ธฐํšŒ ์งธ๊ณ  ๊ฐ€๋Š”๊ตฌ๋งŒ.. ํšŒ์˜๋ž‘ ๋™๊ธฐํšŒ๋ž‘ ๋น„๊ตํ•ด๋ณด๋ฉด.. ๋™๊ธฐํšŒ๊ฐ€ ํ›จ์”ฌ๋” ํƒ€๊ฒฉ์ด ์ปค. -์ƒํ˜‘

์˜ค์˜ˆ~~~ ์ด์ œ ๊ธฐ์ˆ™์‚ฌ ๋™๊ธฐํšŒ ์•ˆ๋น ์ ธ๋„ ๋˜๋„ค์š”... 9์ผ๋‚  ๋™๊ธฐํšŒ ์˜€๋Š”๋ฐ.. -์ƒํ˜‘


์ •๋ง ์žฌ๋ฐŒ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋„ ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์„ํ…๋ฐ... ์ฐธ์„ํ•˜์ง€ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์†Œ์ค‘ํ•œ ์„ธ๋ฏธ๋‚˜ ์ž๋ฃŒ๋ฅผ ๊ณต์œ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฐฝ์ค€๊ตฐ์„ ๋งŒ๋‚œ ๊ฑด ์—ฌ๋Ÿฌ๋ถ„์ด๋‚˜ ์ €๋‚˜ ์ฐธ ํ–‰์šด์ž…๋‹ˆ๋‹ค. 24์‹œ๊ฐ„ ๊ฐ€๋ฅด์ณ๋‹ฌ๋ผ๊ณ  ํ•˜์„ธ์š”. ^^ ์ด๋Ÿฐ ๊ฐ•์˜๋Š” ํ•™๊ต์กธ์—…ํ•˜๋ฉด ๋‹ค์‹œ๋Š” ์ ‘ํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ^^ (๊ทธ๋‚˜์ €๋‚˜ ์ œ๋กœํŽ˜์ด์ €๋„ ์•„๋‹Œ๋ฐ ๊ธ€์„ ์˜ฌ๋ ค๋„ ๋˜๋Š” ๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ๊ตฐ์š”.) - ๋ฐ•์ง€ํ›ˆ
neocoin:์œ„ํ‚ค์— ํŠน์ • ๋กœ๊ทธ์ธ์ด ์กด์žฌ ํ•˜์ง€ ์•Š๊ณ ,์—ด์–ด๋…ผ ์ด์œ ๊ฐ€ ๊ธ€์„ ์“ฐ๊ณ  ์˜๊ฒฌ์„ ์ฃผ์‹ญ์‚ฌ ํ•ด์„œ ์ž…๋‹ˆ๋‹ค. ์ €๋ฒˆ๋‹ฌ ๋ˆ„๊ตฐ๊ฐ€ ํ•จ๋ถ€๋กœ ์ง€์šฐ๋Š” ์‚ฌํƒœ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์ผ๋‹จ ์ง€์šฐ๋Š” ๊ถŒํ•œ์— ๋Œ€ํ•˜์—ฌ HGC(Human Garbage Collector- ์•„๋‹ˆ๋ผ KHGC์ธ๊ฐ€.--a)์ฒด์ œ๋กœ ๋ฐ”๊พธ์—ˆ์ง€๋งŒ์š”. --์ƒ๋ฏผ

ํƒ€ํ•™๊ต ํ•™์ƒ์˜ ์ฐธ์„์„ ๊ฐ€๋Šฅ์ผ€ํ•ด์ฃผ์…”์„œ ๋ˆˆ๋ฌผ๋‚˜๊ฒŒ ๊ฐ์‚ฌํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ^^; --์ฑ„ํฌ์ƒ
DeleteMe) ์•—! ํฌ์ƒ์”จ๋‹ท; ๋ถ€์ง€๋Ÿฐ๋„ ํ•˜์…”๋ผ; -- ์„์ฒœ

๊ฐ•์˜๋ฅผ ๋…นํ™”ํ•ด์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋„ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ดœ์ฐฎ๊ฒ ์Šต๋‹ˆ๊นŒ? --์ •ํฌ๋ก
์•—.. ใ…ก.ใ…ก๋…นํ™”.. ์ข€. ๋นผ์ž…๊ณ  ๊ฐ€์•ผํ•˜๋‚˜.. --์„ ํ˜ธ

์‚ฌ๋žŒ์ด ๋งŽ์•„ ์ง€๋‹ˆ ์ฐธ๊ฐ€์— ๋Œ€ํ•˜์—ฌ ๋ถˆ์•ˆํ•œ ๊ฐ์ด ๋“œ๋„ค์š”. zpํšŒ์›์— ํ•œํ•˜์—ฌ ๋Šฆ๊ฒŒ ์˜ค๋Š” ์‚ฌ๋žŒ ์Œ๋ฃŒ์ˆ˜ ์‚ฌ๊ธฐ!!! --์ƒ๋ฏผ

์ €๋„ ํƒ€ํ•™๊ต์ƒ์ด๊ฑฐ๋“ ์š”.. ํฌ์ƒ์ดํ˜• ํ›„๋ฐฐ๋ž๋‹ˆ๋‹ค. ์‹ค๋ ฅ์ด ์•ˆ๋˜์„œ ์ง์ ‘ ์ฐธ๊ฐ€๋Š” ๋ชปํ•˜๊ณ  ์ฐธ๊ด€ํ•ด๋ณด๊ณ  ์‹ถ๋„ค์š”. ์ž˜๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ()(__)() -- ์ตœ์œ ํ™˜

vim ์“ฐ์‹œ๋Š” ๋ถ„๋“ค์€ ์—ฌ๊ธฐ๋ฅผ.

์ˆœ๋ฒˆ ์ฐธ๊ฐ€ ์‹ ์ฒญ์ž
1 ์ด์„ ์šฐ
2 ์ตœ๊ด‘์‹
3 ๋ฐ•ํ˜œ์˜
4 ๊ฐ•์„์ฒœ
5 ๋‚จ์ƒํ˜‘
6 ๊ฐ•์ธ์ˆ˜
7 ๋ฅ˜์ƒ๋ฏผ
8 ์ž„๊ตฌ๊ทผ
9 ์ •์ง„๊ท 
10 ์ด๋ด๋ผ
11 ๊น€๋‚จํ›ˆ
12 ์ด์ •์ง
13 ์‹ ์žฌ๋™
14 ์ด์ฐฝ์„ญ
15 ์ด์„ ํ˜ธ
16 ์ฑ„ํฌ์ƒ
17 ์ด๋•์ค€
18 ์ž„์ฐจ์„ญ
19 ๊น€ํ˜•์šฉ
20 ๊น€์Šน๋ฒ”
21 ์„œ์ง€์›
22 ํ™์„ฑ๋‘


์ˆœ๋ฒˆ์ฐธ๊ด€ ์‹ ์ฒญ์ž
1 ์ตœํƒœํ˜ธ
2 ์ •ํฌ๋ก
3 ๋ฐ•์ง€ํ™˜
4 ์ตœ์œ ํ™˜
5 ์ดํ•œ์ฃผ
6 ๊น€์ •์ค€
7 ๊น€์šฉ๊ธฐ

  • ์ฐธ๊ฐ€์ž(aka Player) : ์ง์ ‘ ํ•™์Šต์— ๋™์ฐธํ•˜๊ณ  ํ•จ๊ป˜ ํ† ๋ก ํ•˜๊ณ  ํ•œ๋ฐ”ํƒ• ์žฌ๋ฏธ์žˆ๊ฒŒ ๋†€์•„๋ณผ ์‚ฌ๋žŒ.
  • ์ฐธ๊ด€์ž(aka Spectator) : ๊ทธ๋“ค์„ ๊ตฌ๊ฒฝํ•  ์‚ฌ๋žŒ. (์ด ๋ถ„๋“ค์€ ์ด ํŒ€๊ณผ ์ € ํŒ€์€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅด๊ฒŒ ํ•˜๋”๋ผ, ๊ทธ ํŒ€์€ ๋ญ๋ฅผ ํ•˜๊ณ , ๊ทธ ํŒ€์€ ๋ญ๋ฅผ ์•ˆํ•˜๋”๋ผ, ๊ทธ๋žฌ๋”๋‹ˆ ๋‚˜์ค‘์— ์š”๋ ‡๊ฒŒ ์ €๋ ‡๊ฒŒ ๊ณ ์ƒ์„ ํ•˜๋”๋ผ ๋“ฑ์˜ ๊ด€์ฐฐ์„ ํ•˜๊ณ , ํ† ๋ก ์‹œ์— ์–ธ๊ธ‰ํ•ด ์ฃผ์‹œ๋ฉด ๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค)

๋ฌด์—‡์„ ์ข€ ๋” ์ง‘์ค‘์ ์œผ๋กœ ์ฆ๊ธฐ๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ? 2๊ฐ€์ง€๋งŒ ๊ณ ๋ฅธ๋‹ค๋ฉด? (๋ฌด๊ธฐ๋ช… ํˆฌํ‘œ; n++ )
Crc Card & Index Card & White Board1
Paper Shell Programming 1
TestDrivenDevelopment 5
Stepwise Refinement 1
PairProgramming 6
Refactoring 3
DesignPatterns 4
Coding Style 2
Managing To Do List 3
Programmer's Journal, Lifelong Learning & What to Read2

์ง์ง“๊ธฐ


C
  • ๊น€๋‚จํ›ˆ, ์ด์ •์ง

C++
  • ๊ฐ•์ธ์ˆ˜, ์‹ ์žฌ๋™
  • ์ด์„ ํ˜ธ, ๋‚จ์ƒํ˜‘
  • ์ด์ฐฝ์„ญ, ๋ฐ•ํ˜œ์˜

Java
  • ์ด์„ ์šฐ, ์ž„์ฐจ์„ญ
  • ์ด๋•์ค€, ์ž„๊ตฌ๊ทผ
  • ์ตœ๊ด‘์‹, ์ •์ง„๊ท 

Python
  • ์ฑ„ํฌ์ƒ, ๊น€์Šน๋ฒ”
  • ๊ฐ•์„์ฒœ, ์ด๋ด๋ผ
  • ๊น€ํ˜•์šฉ, ๋ฅ˜์ƒ๋ฏผ
  • ํ™์„ฑ๋‘, ์„œ์ง€์›

ํŒ€ ์„ ์ •

ํ•ด๋‹น ํŒ€์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ์–ธ์–ด ์„ ์ •๋ถ€ํ„ฐ, ํ”„๋กœ๊ทธ๋žจ ๋””์ž์ธ, ์ฝ”๋”ฉ๊นŒ์ง€ ๋ชจ๋‘ ํ•จ๊ป˜ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•œ๊ฐ€์ง€ ๋ฌธ์ œ ์ƒํ™ฉ์ด ์ฃผ์–ด์งˆ ๊ฒƒ์ด๊ณ , ์ œ๊ฐ€ ๊ณ ๊ฐ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ง„ํ–‰ ์ค‘์— ๋ช‡๋ฒˆ์˜ ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ •์ด ์žˆ์„ ๊ฒƒ์ด๋ฏ€๋กœ, "์ ์‘๋„"์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ์ด๋ฃจ์–ด ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์™„๋ฃŒ ํ›„์—๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๊ตฌํ˜„๋œ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์‚ดํŽด๋ณด๋ฉฐ ๋น„๊ต ํ† ๋ก ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Lemon Team ๊น€๋‚จํ›ˆ, ์‹ ์žฌ๋™, ๋‚จ์ƒํ˜‘, ์ด์„ ์šฐ, ์ด์ฐฝ์„ญ

Orange Team ์ด์ •์ง, ๊ฐ•์ธ์ˆ˜, ์ด์„ ํ˜ธ, ์ด๋•์ค€

Cocoa Team ์ตœ๊ด‘์‹, ์ •์ง„๊ท , ์ž„๊ตฌ๊ทผ, ์ž„์ฐจ์„ญ, ๋ฐ•ํ˜œ์˜

Pipe Team ์ฑ„ํฌ์ƒ, ๊ฐ•์„์ฒœ, ๋ฅ˜์ƒ๋ฏผ, ๊น€ํ˜•์šฉ

Snake Team ๊น€์Šน๋ฒ”, ์ด๋ด๋ผ, ์„œ์ง€์›, ํ™์„ฑ๋‘


์ฒ˜์Œ์—๋Š” ์‹ ์ž…์ƒ ๋Œ€์ƒ์œผ๋กœ Python ๊ฐ•์˜๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด์„œ, ๊ฑฐ๊ธฐ์— ๋ณดํƒฌ์ด ๋ ๊นŒ ํ•˜๋Š” ๋งˆ์Œ์œผ๋กœ ์„ธ๋ฏธ๋‚˜๋ฅผ ํ•ด๋“œ๋ฆฌ๊ฒ ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์–ด๋–ป๊ฒŒ ์ค‘๊ฐ„์—์„œ "ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ „๋ฐ˜"์— ๋Œ€ํ•œ ์„ธ๋ฏธ๋‚˜๋กœ ์„ฑ๊ฒฉ์ด ๋ณ€ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹ค์Šต ์ค‘์‹ฌ์œผ๋กœ ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๊ณ , ์•„๋ฌด๋ฆฌ Python์ด ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์šด ์–ธ์–ด๋ผ๊ณ  ํ•ด๋„ Python์— ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ์ด ํ•˜๋‚˜๋„ ์—†๋Š” ํŽ˜์–ด๊ฐ€ ๋‘์‹œ๊ฐ„ ์•ˆ์— ๋ญ”๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์„ (Python์„ ํ†ตํ•ด) ์ตํžŒ๋‹ค๋Š” ๊ฒƒ์€ ์–ด๋ ต๊ณ , ๋˜ ํšจ์œจ์ ์ด์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์—ฌ๋Ÿฌ๋ถ„๋“ค ์ž์‹ ์ด ๊ฐ€์žฅ "์ž์‹ ์žˆ๋Š”" ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ๊ฒŒ ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋•Œ, OOP๊ฐ€ ๊ฐ€๋Šฅํ•œ ์–ธ์–ด๋ฅผ ์ถ”์ฒœํ•˜๊ณ , ํ•ด๋‹น ์–ธ์–ด์˜ xUnit ์‚ฌ์šฉ๋ฒ•์„ ๋ฏธ๋ฆฌ ์ตํ˜€์˜ค๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. (๋ฐ˜๋‚˜์ ˆ ์ •๋„๊ฐ€ ํ•„์š”ํ•  ๊ฒ๋‹ˆ๋‹ค) http://www.xprogramming.com/software.htm ์—์„œ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(See Also PyUnit, UnitTest, JUnit, CppUnit. C ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ ASSERT ๋ฌธ์œผ๋กœ UnitTest ๋ถ€๋ถ„์„ ์–ด๋А์ •๋„ ๋Œ€์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

ํ•˜์ง€๋งŒ ๋™์  ์ž๋ฃŒํ˜• ์–ธ์–ด๋ฅผ ์ ‘ํ•˜๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ํฐ ์žฅ์ ์ผ ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ TDD์™€ Refactoring์€ ๋™์  ์ž๋ฃŒํ˜• ์–ธ์–ด์—์„œ ๋น›์„ ๋ฐœํ•˜๊ณ , ๋Œ€๋‹ค์ˆ˜์˜ DP๋Š” ์–ธ์–ด ์ˆ˜์ค€์—์„œ ์ง€์›์ด ๋˜๊ฑฐ๋‚˜ ์•„์ฃผ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. 20๋ถ„ ์ •๋„๋ฉด Python์„ ๊ฐ„๋žตํ•˜๊ฒŒ ํ›‘์„ ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ๊ฐ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

00ํ•™๋ฒˆ ๊น€๋‚จํ›ˆ์ž…๋‹ˆ๋‹ค. C ๋กœ๋„ ์ƒ๊ด€์—†์„๊นŒ์š”?
๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค๋งŒ, ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด OOP์–ธ์–ด๋ฅผ ๊ถŒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž์‹ ์ด ์„ ํƒํ•œ ์–ธ์–ด์™€ ๋™์ผํ•œ ์–ธ์–ด๋ฅผ ์„ ํƒํ•œ ์‚ฌ๋žŒ์ด ์ตœ์†Œํ•œ ํ•œ๋ช…์€ ๋” ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ธ๋ฏธ๋‚˜ ์ „์— ํŽ˜์–ด๋ฅผ ์งœ๋Š”๊ฒŒ ์ข‹๊ฒ ๊ตฐ์š”.. -๋‚จํ›ˆ
์ด ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ์งœ๋Š” ๊ฒŒ ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ์„œ๋กœ ์ž˜ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋ผ๋ฆฌ๊ฐ€ ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฐฐ์šธ ๊ฒƒ์ด ๋” ๋งŽ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ด€์ž ์ตœํƒœํ˜ธ ์œค์ •์ˆ˜ ์†Œ์Šค์ฝ”๋“œ: VendingMachine_์ฐธ๊ด€์ž


see also 02_Python

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:00
Processing time 0.0121 sec