이 ν¬μŠ€νŒ…μ€ 쿠팑 νŒŒνŠΈλ„ˆμŠ€ ν™œλ™μ˜ μΌν™˜μœΌλ‘œ, 이에 λ”°λ₯Έ μΌμ •μ•‘μ˜ 수수료λ₯Ό μ œκ³΅λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜μ‘ν˜•

좜처 : http://www.hyunlog.com/blog/entry/μ™œ-μ•Œκ³ λ¦¬μ¦˜μ„-μ•Œμ•„μ•Ό-ν•˜μ§€

 

 

μ™œ μ•Œκ³ λ¦¬μ¦˜μ„ μ•Œμ•„μ•Ό ν•˜μ§€?

μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•΄ 글을 써 보기둜 ν–ˆλ‹€.
λ‚˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ μ „μ‚°ν•™μ˜ κ°€μž₯ κΈ°λ³Έ, 감초라 μƒκ°ν•œλ‹€.  인곡지λŠ₯, 운영체제, DBMS λ“± μ „μ‚°ν•™μ˜ 어디에고 μ μ ˆν•œ μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•œ 이해가 ν•„μš”ν•˜μ§€ μ•ŠλŠ” 곳이 μ—†λ‹€.  νŠœλ§μƒμ„ 받은 μ‚¬λžŒλ“€μ„ 보더라도 κ·Έ 쀑 λ§Žμ€ μ‚¬λžŒλ“€μ΄ μ•Œκ³ λ¦¬μ¦˜μ„ λ°°μš°λ‹€ 보면 λ‚˜μ˜€λŠ” μ–‘λ°˜λ“€μ΄λ‹€.
λ‚˜λŠ” λŒ€ν•™μ›μ—μ„œ μˆ˜ν•™μ  논리학과 μ•Œκ³ λ¦¬μ¦˜μ„ λ°°μš°λ©΄μ„œ λ‚΄κ°€ 이 μͺ½μ—μ„œ μ—‘μŠ€νΌνŠΈκ°€ 될 만큼 μŠ€λ§ˆνŠΈν•˜μ§€ μ•Šλ‹€λŠ” 것을 μ•Œμ•˜λ‹€.  κ·Έλž˜λ„ μ•Œκ³ λ¦¬μ¦˜μ€ 전산학을 ν•˜κΈ°μ— ν•„μš”ν•˜λ―€λ‘œ μ•Œκ³  μžˆμ–΄μ•Ό ν•œλ‹€κ³  생각해 λ…Έλ ₯ν–ˆλ‹€.  μ•Œκ³ λ¦¬μ¦˜ 책을 λ§ˆμ§€λ§‰ 본격적으둜 λ³Έ 것이 92λ…„ 경이라 κΈ°μ–΅ν•œλ‹€.  
μ™œ μ§€κΈˆ λ‹€μ‹œ μ•Œκ³ λ¦¬μ¦˜μ΄ μƒκ°λ‚ κΉŒ?
우리 νšŒμ‚¬μ—μ„œ μƒˆλ‘œμš΄ μƒν’ˆμ„ μ€€λΉ„ν•˜λŠ”λ° μ•Œκ³ λ¦¬μ¦˜ ν›ˆλ ¨μ΄ ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.  μ•Œκ³ λ¦¬μ¦˜ ν›ˆλ ¨μ΄ λ˜μ§€ μ•Šμ€ μ‚¬λžŒμ€ λ‹¨μˆœ coder 이고, μ•Œκ³ λ¦¬μ¦˜μ„ μ΄ν•΄ν•˜κ³  μ μš©ν•˜λ©΄μ„œ λΆ€ν„° ν”„λ‘œκ·Έλž˜λ¨ΈλΌ λΆ€λ₯Ό 수 μžˆλ‹€.  μ•Œκ³ λ¦¬μ¦˜ ν›ˆλ ¨μ΄ 되고 이에 λ°”νƒ•ν•œ μ „μ‚°ν•™μ˜ μ—¬λŸ¬ λΆ„μ•Όλ₯Ό μ•Œκ²Œλ˜λ©΄ 컴퓨터 μ—”μ§€λ‹ˆμ–΄ λ˜λŠ” κ³Όν•™μžλΌ λΆ€λ₯Έλ‹€.  컴퓨터 μ—”μ§€λ‹ˆμ–΄/κ³Όν•™μžμ˜ μ˜μ›ν•œ 사뢀인 Donald Knuth의 The Art of Computer Programming 을 보자.  책이름을 "컴퓨터 ν”„λ‘œκ·Έλž˜λ° 기술" 이라고 ν–ˆλ‹€.  이 것 보고 이해해야지 ν”„λ‘œκ·Έλž˜λ¨Έλž€λ‹€.  우리 νšŒμ‚¬κ°€ 쒋은 ν”„λ‘œκ·Έλž˜λ¨Έ, μ—”μ§€λ‹ˆμ–΄κ°€ ν•„μš”ν•˜κ³  λ‚˜λΆ€ν„° λ‹€μ‹œ ν›ˆλ ¨ν•΄μ•Ό 직원듀 도와 쀄 수 μžˆμ„ 것 κ°™λ‹€.
μ•Œκ³ λ¦¬μ¦˜μ„ Cormen 등이 μ“΄ Introduction to Algorithms 으둜 κ³΅λΆ€ν–ˆλ‹€.  κ½€ λ‘κΊΌμš΄ μ±…μœΌλ‘œ 이 μͺ½ 뢄야에 λ² μŠ€νŠΈμ…€λŸ¬λ‹€.  μ•Œκ³ λ¦¬μ¦˜ 쉽지 μ•Šλ‹€.  μ˜€μ£½ν•˜λ©΄ 빌 κ²Œμ΄μΈ κ°€ "λ„ˆκ°€ 정말 쒋은 ν”„λ‘œκ·Έλž˜λ¨ΈλΌλ©΄ Knuth의 The Art of Programming을 보아야 ν•˜κ³ , 정말 λ‹€ μ½μ—ˆμœΌλ©΄ 재빨리 μžκΈ°μ—κ²Œ 이λ ₯μ„œ 보내라" ν–ˆμ„κΉŒ?  이 μ±… 총 4κΆŒμ΄λ‹€.  μ•„λ§ˆ 이 λΆ„μ•Όμ—μ„œ κ°€μž₯ 유λͺ…ν•˜λ©΄μ„œλ„ κ°€μž₯ 많이 쳐닀 보기만 ν•œ 책일 것이닀.  이 μ±…λ“€ 4ꢌ λ‹€ 읽은 μ‚¬λžŒμ΄λΌλ©΄ λˆ„κ°€ μ±„κ°€λŠ”μ§€λ„ λͺ¨λ₯΄κ²Œ 채 갈 것이닀.  κ΅¬κΈ€μ˜ μ„Έλ₯΄κ²Œμ΄ 브린이 μ•„λ§ˆλ„ μ „μš© λΉ„ν–‰κΈ° 보낼 지도 λͺ¨λ₯Έλ‹€.
이 정도면 μΈμ„Όν‹°λΈŒ λ˜μ§€ μ•Šμ„κΉŒ?
90λ…„λŒ€ μ΄ˆμ™€ μ§€κΈˆ κ½€ μ•Œκ³ λ¦¬μ¦˜ μ§€ν˜•μ΄ λ°”λ€Œμ—ˆλ‹€.  μ•Œκ³ λ¦¬μ¦˜μ΄ 바뀐 것이 μ•„λ‹ˆλΌ μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜λŠ” SW ν™˜κ²½μ΄ λ°”λ€Œμ—ˆλ‹€.  κ°€μž₯ 큰 λ³€ν™”λŠ” JAVA와 같은 객체지ν–₯ 언어와 기술이 λ³΄κΈ‰λ˜λ©΄μ„œ JAVA의 Collection 같이 νŽΈλ¦¬ν•œ 자료ꡬ쑰 API 듀이 λ“±μž₯ν•œ 것이닀.  μ•„μ£Ό 쒋은 ν˜„μƒμ΄λ‹€. 
JAVA Collection 같은 도ꡬ, ν•™λΆ€μ—μ„œ 자료ꡬ쑰λ₯Ό κ°€λ₯΄μΉ˜λ©΄μ„œ 느꼈던 어렀움, 그리고 μ΅œκ·Όμ— λŒ€ν•™μ›μ—μ„œ 객체지ν–₯ κΈ°μˆ μ„ κ°•μ˜ν•˜λ©΄μ„œ 생긴 μ†Œν”„νŠΈμ›¨μ–΄ κ΄€μ μ˜ λ³€ν™”, SW의 μž¬μ‚¬μš©μ„±, ν˜„μ‹€μ μœΌλ‘œ μ–΄μ©” 수 없이 계속 μš”κ΅¬μ‚¬ν•­μ΄ λ°”λ€ŒκΈ° λ•Œλ¬Έμ— SWλŠ” μ§€μ†μ μœΌλ‘œ λ°”λ€”μˆ˜ 밖에 μ—†λ‹€λŠ” extreme programming 방법둠 등이 λ‹€ μš°λ¦¬κ°€ μ•Œκ³ λ¦¬μ¦˜μ„ λ³΄λŠ” λ°©λ²•μ˜ λ³€ν™”λ₯Ό μš”κ΅¬ν•˜κ³  μžˆλ‹€κ³  μƒκ°ν•œλ‹€.  μ˜ˆμ „μ— μš°λ¦¬κ°€ red-black treeλ₯Ό 직접 μ§°λ‹€λ©΄ μ΄μ œλŠ” JAVA Collection 쀑에 μ λ‹Ήν•œ 녀석을 뢈러 μ“Έ 수 있게 된 것이닀.  νŽΈλ¦¬ν•¨μ„ μ–»μ—ˆμ§€λ§Œ ν”„λ‘œκ·Έλž˜λ° μŒλ―Έν•˜λŠ” κΈ°μˆ μ„ μžƒμ–΄ κ°„λ‹€.  μ–Όλ§ˆλ‚˜ 잘 Collection APIκ°€ κ΅¬ν˜„λ˜μ—ˆμ„κΉŒ κΆκΈˆν•˜κΈ°λ„ ν•˜λ‹€.  20λ…„ μ „μ—λŠ” λ‹€λ₯Έ μ‚¬λžŒμ΄ λ§Œλ“  것 믿지 λͺ»ν•˜λ‹ˆ 직접 μžμ‹ μ΄ κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€κ³  ν–ˆκ² μ§€λ§Œ, μ΄μ œλŠ” κ°–λ‹€ μ“°λŠ” 것이 λ§žλ‹€.  λ‚΄κ°€ μž¬μ‚¬μš©ν•˜λ„λ‘ κ°€λ₯΄μΉ˜λŠ”데... 
이런 κ΄€μ μ—μ„œ μ•Œκ³ λ¦¬μ¦˜μ„ 보고 μ‹Άλ‹€.  객체지ν–₯의 클래슀, encapsulation, hierarchy, polymorphism이 정말 μ–Όλ§ˆλ‚˜ μ•Œκ³ λ¦¬μ¦˜μ΄ μ˜μ‘΄ν•˜λŠ” 데이터ꡬ쑰 (Abstract Data Type)에 λ”± λ§žλŠ” 지 (정말 κ·Έλ ‡λ‹€), 포인터 μ—†λŠ” JAVA둜 μ–΄λ–»κ²Œ μ•Œκ³ λ¦¬μ¦˜μ΄ 잘 κ΅¬ν˜„λ˜λŠ”μ§€ μ•Œμ•„ 보렀 ν•œλ‹€.  ν•˜λ‹€ 보면 κΎ€κ°€ 많이 λ‚  터인데.  재λŠ₯이 λΆ€μ‘±ν•˜λ‹ˆ μ‹œκ°„λ„ 걸리겠고,  κ·Έλ ‡μ§€λ§Œ 또 ν•œνŽΈ λ‚΄κ°€ 이해 ν•  정도면 μ΅œμ†Œν•œ The Art of Programming 을 κ·Έλƒ₯ λ³΄λŠ” 것 λ³΄λ‹€λŠ” 낫지 μ•Šμ„κΉŒ?
μ˜€λžœλ§Œμ— 머리도 써 보고, μžλ°”λ„ ν›ˆλ ¨ν•  것 κ°™μ•„ μ„€λ Œλ‹€.   
Knuthκ΅μˆ˜λ‹˜μ˜ κ°•μ˜λ₯Ό 보고 μ‹ΆμœΌλ©΄ μ—¬κΈ°λ‘œ.   μž¬λ―ΈμžˆλŠ” 것이 여기에 λ§ŽμŠ΅λ‹ˆλ‹€.   μ˜μ–΄μ™€ μ•Œκ³ λ¦¬μ¦˜μ„ μ•Œκ²Œλ˜λ©΄ μƒˆλ‘œμš΄ 세상이 보일 κ²ƒμž…λ‹ˆλ‹€. 
Hang on.

λ°˜μ‘ν˜•

+ Recent posts