book.jpeg


πŸ““ λ…μ„œν›„κΈ°

γ€Œν΄λ¦°μ½”λ“œγ€ 9 ~ 12μž₯ λ…μ„œ ν›„κΈ°

  • 9μž₯. λ‹¨μœ„ ν…ŒμŠ€νŠΈ
  • 10μž₯. 클래슀
  • 11μž₯. μ‹œμŠ€ν…œ
  • 12μž₯. μ°½λ°œμ„±


1주일에 4μž₯μ”© 읽기가 λͺ©ν‘œμ΄λ©° 읽은 ν›„κΈ°λ₯Ό λΈ”λ‘œκ·Έμ— ν›„κΈ°λ‘œ μ •λ¦¬κΉŒμ§€ ν•΄λ³΄λ €ν•œλ‹€.

μ΄λ²ˆμ£ΌλŠ” 9μž₯ γ€Œλ‹¨μœ„ ν…ŒμŠ€νŠΈγ€ ~ 12μž₯ γ€Œμ°½λ°œμ„±γ€ κΉŒμ§€ 읽은 ν›„κΈ°λ₯Ό κ°„λž΅νžˆ λ‚¨κ²¨λ³΄μ•˜λ‹€.



9. λ‹¨μœ„ ν…ŒμŠ€νŠΈ


사싀 λ‚˜λŠ” ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό 짜본 κ²½ν—˜μ΄ λ³„λ‘œ μ—†λ‹€.
μ œλŒ€λ‘œ 배우고 μ‹Άμ§€λ§Œ TDDλŠ” μ•„μ§κΉŒμ§„ λ‚˜μ—κ²Œ νŒνƒ€μ§€λ‘œ λŠκ»΄μ§€λŠ” 개발둠 쀑 ν•˜λ‚˜μ΄λ‹€.

이번 μž₯μ—μ„œλŠ” ν…ŒμŠ€νŠΈ μ½”λ“œμ˜ μ€‘μš” 성을 κ°•μ‘°ν•˜λ©° TDD 법칙을 μ„€λͺ…ν•œλ‹€. 그리고 TDD의 κ°€μž₯ μ€‘μš”ν•œ 세가지 법칙은 λ‹€μŒκ³Ό κ°™λ‹€ κ°•μ‘°ν•œλ‹€.


  • β€œμ‹€νŒ¨ν•˜λŠ” λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•  λ•ŒκΉŒμ§€ μ‹€μ œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ§€ μ•ŠλŠ”λ‹€.”

  • β€œμ»΄νŒŒμΌμ€ μ‹€νŒ¨ν•˜μ§€ μ•ŠμœΌλ©΄μ„œ 싀행이 μ‹€νŒ¨ν•˜λŠ” μ •λ„λ‘œλ§Œ λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•œλ‹€.”

  • β€œν˜„μž¬ μ‹€νŒ¨ν•˜λŠ” ν…ŒμŠ€νŠΈλ₯Ό 톡과할 μ •λ„λ‘œλ§Œ μ‹€μ œ μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€.”



이번μž₯은 μ½μ–΄λ³΄λ‹ˆ β€œν…ŒμŠ€νŠΈβ€ λΌλŠ” κ±Έ λ§‰μ—°νžˆ μ–΄λ ΅κ²Œ λŠκ»΄μ™”λ˜ 점에 λŒ€ν•΄ 벽이 쑰금 ν—ˆλ¬Όμ–΄μ§„ λŠλ‚Œμ„ λ°›μ•˜λ‹€.


  • β€œμ‹€μ œ μ½”λ“œκ°€ ν™•μž₯λ˜κ±°λ‚˜ λ³€κ²½λ˜λ©΄ λ‹Ήμ—°νžˆ ν…ŒμŠ€νŠΈ μ½”λ“œλ„ λ°”λ€Œμ–΄μ•Όν•˜λ‹ˆ 일이 두배가 λ˜λŠ” 것 μ•„λ‹Œκ°€..?”

μœ„ 생각이 λ‚΄κ°€ λ§‰μ—°νžˆ μƒκ°ν–ˆλ˜ β€œTDDλŠ” νŒνƒ€μ§€λ‹€.” λΌλŠ” κ²°λ‘ μ΄μ—ˆλ‹€.

κ·Έλž˜μ„œ μΆ©λΆ„ν•œ ν…ŒμŠ€νŠΈ 없이 μ½”λ“œλ₯Ό μΆœμ‹œν•˜κ³ , κ·Έ μ±…μž„μ„ β€œνŒ€μ›λ“€ ν˜Ήμ€ μ‚¬μš©μžλ“€μ—κ²Œ μ „κ°€ν•˜κ³  μžˆμ—ˆλ˜κ²Œ μ•„λ‹κΉŒ?” λž€ 생각을 λ‹€μ‹œν•˜κ²Œ λ˜μ—ˆλ‹€.

이 μž₯을 읽고 기얡에 λ‚¨λŠ” 문ꡬλ₯Ό 꼽자면 μ•„λž˜μ˜ λ¬Έμž₯을 꼽을 것 κ°™λ‹€.


"ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ μ—†λ‹€λ©΄ λͺ¨λ“  변경이 μž μ •μ μΈ 버그닀."


10. 클래슀


ν•¨μˆ˜λΏλ§Œ μ•„λ‹ˆλΌ ν΄λž˜μŠ€μ—λ„ ν•΄λ‹Ή 원칙은 μ μš©λœλ‹€.


"단일 μ±…μž„ 원칙"


클래슀 ν˜Ήμ€ ν•¨μˆ˜λ‚˜ λͺ¨λ“ˆμ„ λ³€κ²½ν•΄μ•Όν•œλ‹€λ©΄ κ·Έ μ΄μœ λŠ” 단 ν•˜λ‚˜μ—¬μ•Ό ν•œλ‹€λŠ” 원칙이닀.

항상 ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜λŠ” μž‘κ²Œ μͺΌκ°œμ–΄μ Έμ•Ό ν•œλ‹€. λ“±λ“± β€œλͺ¨λ“ˆν™””에 λŒ€ν•œ μ΄μ•ΌκΈ°λŠ” 많이 λ“€μ—ˆλ‹€.

κ·Έ μž‘κ²ŒλΌλŠ” 기쀀이 λ˜λŠ” μš”μ†ŒλŠ” μ½”λ“œμ˜ 길이가 μ•„λ‹Œ, β€œμ±…μž„β€ μ΄λΌλŠ” κ±Έ 이번 μž₯μ—μ„œλŠ” κ°•μ‘°ν•œλ‹€.

tool.jpg

도ꡬ μƒμžλ₯Ό λ– μ˜¬λ €λ³΄μž, ν•œκ°€μ§€μ˜ λ„κ΅¬λŠ” ν•œκ°€μ§€μ˜ μ±…μž„μ„ κ°–κ³  ν•œκ°€μ§€μ˜ 일을 잘 ν•΄λ‚Έλ‹€.

3μž₯ ν•¨μˆ˜μ—μ„œ 닀룬 λ‚΄μš©κ³Ό 크게 λ‹€λ₯΄μ§€ μ•Šλ‹€ μƒκ°ν•œλ‹€. ν΄λž˜μŠ€λ„ λ§ˆμ°¬κ°€μ§€λ‘œ 체계적인 정리 없이 쓰인닀면 버그가 μˆ¨μ–΄λ“€κΈ° 쒋을 수 밖에 μ—†λ‹€.

큰 클래슀만으둜 이뀄진 μ‹œμŠ€ν…œλ³΄λ‹€λŠ” μž‘μ€ 클래슀 μ—¬λŸΏμœΌλ‘œ 이뀄진 μ‹œμŠ€ν…œμ΄ 더 λ°”λžŒμ§ν•˜λ‹€.



11. μ‹œμŠ€ν…œ


λ„μ‹œλ₯Ό κ³„νšν•˜λ©΄ ν–‰μ •λ³„λ‘œ 각 λΆ€μ„œλ₯Ό λ‚˜λˆ„κ³  λΆ€μ„œλ§ˆλ‹€ λΉ„μŠ·ν•œ μˆ˜μ€€μ˜ 일을 λ‹΄λ‹Ήν•œλ‹€.

μ†Œν”„νŠΈμ›¨μ–΄λ„ λ§ˆμ°¬κ°€μ§€λ‹€. μ μ ˆν•œ 좔상화와 λͺ¨λ“ˆν™”λ‘œ κΈ°λŠ₯을 μ±…μž„ λ³„λ‘œ λ‚˜λˆ„κ³  κ΄€λ¦¬ν•œλ‹€.


"λ³΅μž‘μ„±μ€ μ£½μŒμ΄λ‹€. κ°œλ°œμžμ—κ²Œμ„œ 생기λ₯Ό μ•—μ•„κ°€λ©°, μ œν’ˆμ„ κ³„νšν•˜κ³  μ œμž‘ν•˜κ³  ν…ŒμŠ€νŠΈν•˜κΈ° μ–΄λ ΅κ²Œ λ§Œλ“ λ‹€."


이 μž₯μ—μ„œλŠ” μ œμž‘κ³Ό μ‚¬μš©μ„ λΆ„λ¦¬ν•΄μ•Όν•œλ‹€λΌλ©° κ°•μ‘°λ₯Ό ν•œλ‹€.

건물을 예둜 λ“€λ©΄, 건좕과정 쀑 기쀑기와 μŠΉκ°•κΈ°κ°€ ν•„μš”ν•˜μ§€λ§Œ 완곡 μ‹œμ  μ΄ν›„μ—λŠ” ν•„μš”κ°€ 없어지듯이 μ‘μš© ν”„λ‘œκ·Έλž¨ κ°œλ°œμ—λ„ 이와 같은 섀계 기법인 β€œκ΄€μ‹¬μ‚¬β€ 뢄리에 λŒ€ν•΄ κ°•μ‘°ν•œλ‹€.

건좕 섀계 κΈ°λ²•μ²˜λŸΌ μ‹œμŠ€ν…œ λ˜ν•œ μ‹œμž‘ 단계뢀터 관심사λ₯Ό λΆ„λ¦¬ν•˜μ—¬ μ„€κ³„ν•˜λŠ” 것에 λŒ€ν•œ μ€‘μš”μ„±μ„ μ–ΈκΈ‰ν•˜λŠ” μž₯μ΄μ—ˆλ‹€.


difficult.jpg


이번 11μž₯은 μ–΄λ €μš΄ κ°œλ… (νš‘λ‹¨ 관심사, μ˜μ†μ„±, 관점 지ν–₯ ν”„λ‘œκ·Έλž˜λ°(AOP) λ“±λ“±..) 이 λ„ˆλ¬΄ 많이 λ‚˜μ™€μ„œ.. 객체지ν–₯ κ°œλ…μ— λŒ€ν•΄ 쑰금 더 κ³΅λΆ€ν•œ λ’€ λ‹€μ‹œ 읽어봐야겠닀.



이 μž₯의 결둠은 μ±…μ˜ λ°©ν–₯μ„±κ³Ό μΌμΉ˜ν•œλ‹€.


"μ‹œμŠ€ν…œ μ—­μ‹œ 깨끗해야 ν•œλ‹€."


κΉ¨λ—ν•˜μ§€ λͺ»ν•œ μ•„ν‚€ν…μ³λŠ” 논리λ₯Ό 흐리며 μ΄λŠ” μ œν’ˆ ν’ˆμ§ˆμ˜ ν•˜λ½μœΌλ‘œ 이어진닀.

ν’ˆμ§ˆμ΄ λ–¨μ–΄μ§€λŠ” μ½”λ“œμ—λŠ” μ—­μ‹œ 버그가 μˆ¨μ–΄λ“€κΈ° μ‰¬μ›Œμ§€κ³  μŠ€ν† λ¦¬λ₯Ό κ΅¬ν˜„ν•˜κΈ° μ–΄λ €μ›Œμ§„λ‹€λ₯Ό κ°•μ‘°ν•œλ‹€.



12. μ°½λ°œμ„±


사싀 이 단어λ₯Ό 책을 읽으며 처음 μ ‘ν–ˆλ‹€. (창발?..)

μœ„ν‚€λ°±κ³Όμ—λŠ” 이 단어λ₯Ό λ‹€μŒκ³Ό 같이 μ •μ˜ν•œλ‹€.


창발(剡發)λ˜λŠ” λ– μ˜€λ¦„ ν˜„μƒμ€ ν•˜μœ„ 계측(ꡬ성 μš”μ†Œ)μ—λŠ” μ—†λŠ” νŠΉμ„±μ΄λ‚˜ 행동이 μƒμœ„ 계측(전체 ꡬ쑰)μ—μ„œ 자발적으둜 λŒμ—°νžˆ μΆœν˜„ν•˜λŠ” ν˜„μƒμ΄λ‹€. λ˜ν•œ λΆˆμ‹œμ— μ†Ÿμ•„λ‚˜λŠ” νŠΉμ„±μ„ μ°½λ°œμ„±(μ˜μ–΄: emergent property) λ˜λŠ” μ΄λ¨Έμ „μŠ€(μ˜μ–΄: emergence)라고도 λΆ€λ₯Έλ‹€. μžκΈ°μ‘°μ§ν™” ν˜„μƒ, λ³΅μž‘κ³„ κ³Όν•™κ³Ό 관련이 κΉŠλ‹€.


이 μž₯μ—μ„œλŠ” 창발적 μ„€κ³„μ˜ μ€‘μš”μ„±μ„ κ°•μ‘°ν•œλ‹€.

β€œμ°½λ°œμ  섀계” λΌλŠ” λ¬Έμž₯을 λ‹¨μ–΄μ˜ λœ»μ„ μ ‘λͺ©ν•΄μ„œ ν•΄μ„ν•˜λ©΄ λ‹€μŒκ³Ό κ°™λ‹€.


"μ°©μ‹€ν•˜κ²Œ κ·œμΉ™(ν•˜μœ„ 계측)을 λ”°λ₯΄κΈ°λ§Œ ν•˜λ©΄ μš°μˆ˜ν•œ 섀계(μƒμœ„ 계측)κ°€ λ‚˜μ˜€λŠ” 섀계 방식."


즉, 이 μž₯μ—μ„œλŠ” 잘 λ”°λ₯΄κΈ°λ§Œν•˜λ©΄ μš°μˆ˜ν•œ 섀계λ₯Ό 보μž₯ν•˜λŠ” κ·œμΉ™ ν˜Ήμ€ μ›μΉ™μ΄λž€ 무엇인지 μ„€λͺ…ν•˜λŠ” μž₯이닀.

이번 μž₯μ—μ„œ 꼽은 κ·œμΉ™μ€ λ‹€μŒκ³Ό κ°™λ‹€. (μ€‘μš”λ„ μˆœμ΄λ‹€.)

  • β€œλͺ¨λ“  ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•œλ‹€.”

  • β€œμ€‘λ³΅μ„ μ—†μ•€λ‹€.”

  • β€œν”„λ‘œκ·Έλž˜λ¨Έ μ˜λ„λ₯Ό ν‘œν˜„ν•œλ‹€.”

  • β€œν΄λž˜μŠ€μ™€ λ©”μ„œλ“œ 수λ₯Ό μ΅œμ†Œλ‘œ 쀄인닀.”


know.jpeg


이미 이전 μ±•ν„°λ“€μ—μ„œ λ„ˆλ¬΄ κ°•μ‘°ν–ˆλ˜ λ‚΄μš©λ“€μ΄λ‹€.

이 책은 μ½μœΌλ©΄μ„œ λŠλΌμ§€λ§Œ ν•œκ²°κ°™μ€ λ°©ν–₯을 μ œμ‹œν•˜κ³  같은 λ‚΄μš©μ„ μ§€μ†μ μœΌλ‘œ κ°•μ‘°ν•œλ‹€. (그만큼 μ€‘μš”ν•˜λ‹¨κ²ƒμ΄μ§€!)

뢀둝을 μ œμ™Έν•˜λ©΄ 17μž₯κΉŒμ§€ μ‘΄μž¬ν•˜λŠ” μ΄μ±…μ—μ„œ λ§ν•˜κ³ μžν•˜λŠ” λ°©ν–₯을 μ΄μ œμ•Ό 어렴풋이 λ³΄μ΄λŠ”λ“―ν•˜λ‹€.

λ‹€μ‹œν•œλ²ˆ λ³΅κΈ°ν•˜λŠ” 마음으둜 μ½μ—ˆλ˜ μ±•ν„°μ˜€λ‹€.