[Book] Effective C# - CHAPTER 3 μ œλ„€λ¦­ ν™œμš©
Β·
πŸ“ Book/✏ Effective
μ œλ„€λ¦­μ€ μ»¬λ ‰μ…˜ 외에도 μΈν„°νŽ˜μ΄μŠ€, 이벀트 ν•Έλ“€λŸ¬, 곡톡 μ•Œκ³ λ¦¬μ¦˜ κ΅¬ν˜„ λ“± 맀우 λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ ν™œμš©λœλ‹€. μ•„μ΄ν…œ 18. λ°˜λ“œμ‹œ ν•„μš”ν•œ μ œμ•½ 쑰건만 μ„€μ •ν•˜λΌ νƒ€μž… λ§€κ°œλ³€μˆ˜μ— λŒ€ν•œ μ œμ•½ 쑰건은 ν΄λž˜μŠ€κ°€ μž‘μ—…μ„ μ˜¬λ°”λ₯΄κ²Œ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œ νƒ€μž… λ§€κ°œλ³€μˆ˜λ‘œ 전달할 수 μžˆλŠ” νƒ€μž…μ˜ μœ ν˜•μ„ μ œν•œν•˜λŠ” 방법이닀. μ œμ•½ 쑰건은 μ œλ„€λ¦­ νƒ€μž…μ— λŒ€ν•΄ μš°λ¦¬κ°€ κ°€μ •ν•˜κ³  μžˆλŠ” 사싀을 μ»΄νŒŒμΌλŸ¬μ™€ λ‹€λ₯Έ κ°œλ°œμžμ—κ²Œ μ•Œλ €μ£ΌλŠ” μš©λ„λ‘œ μ‚¬μš©λœλ‹€. μ»΄νŒŒμΌλŸ¬λŠ” νƒ€μž… λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬λœ νƒ€μž…μ΄ μ œμ•½ 쑰건으둜 μ„€μ •ν•œ κΈ°λŠ₯을 λͺ¨λ‘ κ΅¬ν˜„ν•˜κ³  μžˆμ„ 것이라 κ°€μ •ν•  수 μžˆλ‹€. μ»΄νŒŒμΌλŸ¬λŠ” μ œλ„€λ¦­ νƒ€μž…μ„ μ‚¬μš©ν•˜λŠ” μ‚¬μš©μžκ°€ νƒ€μž… λ§€κ°œλ³€μˆ˜λ‘œ μ˜¬λ°”λ₯Έ νƒ€μž…μ„ μ§€μ •ν–ˆλŠ”μ§€ 컴파일 νƒ€μž„μ— 확인할 수 μžˆλ‹€. μ œμ•½ 쑰건을 μ„€μ •ν•˜λŠ” λŒ€μ‹  ν˜•λ³€ν™˜μ΄λ‚˜ λŸ°νƒ€μž„μ— ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜λ„λ‘ μž‘..
[Book] Effective C# - CHAPTER 2 .NET λ¦¬μ†ŒμŠ€ 관리
Β·
πŸ“ Book/✏ Effective
μ•„μ΄ν…œ 11. .NET λ¦¬μ†ŒμŠ€ 관리에 λŒ€ν•œ 이해 .NET ν™˜κ²½μ—μ„œλŠ” νŠΉλ³„νžˆ λ©”λͺ¨λ¦¬ 관리와 가비지 μˆ˜μ§‘κΈ°μ˜ λ™μž‘ 방식을 μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€. 가비지 μˆ˜μ§‘κΈ°(Garbage Collector)λŠ” κ΄€λ¦¬λ˜λŠ” λ©”λͺ¨λ¦¬λ₯Ό κ΄€μž₯ν•˜λ©° λ„€μ΄ν‹°λΈŒ ν™˜κ²½κ³ΌλŠ” λ‹€λ₯΄κ²Œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜, λŒ•κΈ€λ§ 포인터, μ΄ˆκΈ°ν™”λ˜μ§€ μ•Šμ€ 포인터, μ—¬νƒ€μ˜ λ©”λͺ¨λ¦¬ 관리 문제λ₯Ό κ°œλ°œμžλ“€μ΄ 직접 닀루지 μ•Šλ„λ‘ μžλ™ν™”ν•΄μ€€λ‹€. λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²°, COM 객체, μ‹œμŠ€ν…œ 객체 λ“±κ³Ό 같은 비관리 λ¦¬μ†ŒμŠ€λŠ” μ—¬μ „νžˆ κ°œλ°œμžκ°€ 관리해야 ν•œλ‹€. μˆœν™˜ 참쑰의 λ¬Έμ œλ‚˜ λ³΅μž‘ν•œ μ—°κ΄€ κ΄€κ³„μ˜ λ¬Έμ œλ„ 관리 ν™˜κ²½μ—μ„œλŠ” 비ꡐ적 μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€. 가비지 μˆ˜μ§‘κΈ°μ˜ λ™μž‘ 방식 마크/콀팩트 μ•Œκ³ λ¦¬μ¦˜μ€ μ—¬λŸ¬ 객체 μ‚¬μ΄μ˜ μ—°κ΄€ 관계λ₯Ό 효율적으둜 νŒŒμ•…ν•˜μ—¬ 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” 객체λ₯Ό μžλ™μœΌλ‘œ 제..
[Book] Effective C# - CHAPTER 1 C# μ–Έμ–΄μš”μ†Œ
Β·
πŸ“ Book/✏ Effective
μ•„μ΄ν…œ 1. μ§€μ—­λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•ŒλŠ” varλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 λ‚«λ‹€. var ν‚€μ›Œλ“œλŠ” μ•”μ‹œμ  νƒ€μž…μ˜ μ§€μ—­λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ‚¬μš©ν•˜λŠ”λ° λŒ€μž…λœ κ°’μ˜ νƒ€μž…μœΌλ‘œ κ²°μ •λœλ‹€. μ§€μ—­λ³€μˆ˜μ—λ§Œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜κ³  μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ•Ό ν•œλ‹€. μ •ν™•ν•œ λ°˜ν™˜ νƒ€μž…μ„ μ•Œμ§€ λͺ»ν•œ 채 μ˜¬λ°”λ₯΄μ§€ μ•Šμ€ νƒ€μž…μ„ λͺ…μ‹œμ μœΌλ‘œ μ§€μ •ν•˜λŠ” 경우λ₯Ό λ°©μ§€ν•œλ‹€. ex) IQueryable λ₯Ό IEnumerable 둜 κ°•μ œ ν˜•λ³€ν™˜ νƒ€μž…μ„ μœ μΆ”ν•  수 μžˆλŠ” λ³€μˆ˜ 이름을 μ‚¬μš©ν•˜μ—¬ μ½”λ“œμ˜ 가독성을 높일 수 μžˆλ‹€. κ·ΈλŸ¬λ‚˜... 정적 타이핑을 ν›Όμ†μ‹œν‚¨λ‹€: 동적 타이핑이 μˆ˜ν–‰λ˜λŠ” 것이 μ•„λ‹ˆλΌ μ»΄νŒŒμΌλŸ¬κ°€ νƒ€μž…μ„ μΆ”λ‘ ν•˜μ—¬ κ²°μ •ν•œλ‹€. κ³Όλ„ν•œ μ‚¬μš©μœΌλ‘œ μ½”λ“œμ˜ 가독성을 ν•΄μΉ˜κ±°λ‚˜ λ°œκ²¬ν•˜κΈ° μ–΄λ €μš΄ 버그λ₯Ό λ§Œλ“€μ–΄ λ‚Ό 수 μžˆλ‹€. κ°œλ°œμžκ°€ μƒκ°ν•œ νƒ€μž…κ³Ό μ»΄νŒŒμΌλŸ¬κ°€ μΆ”λ‘ ν•œ νƒ€μž…μ΄ 달..
[Book] ν”„λ‘œκ·Έλž˜λ° λ©΄μ ‘ μ΄λ ‡κ²Œ μ€€λΉ„ν•œλ‹€
Β·
πŸ“ Book/✏
책을 읽으며 λ”°λ‘œ μ •λ¦¬ν•˜λ©΄ 쒋을 λ‚΄μš©λ§Œ μž‘μ„±ν•˜μ˜€λ‹€. 기술 면접을 μ€€λΉ„ν•˜λŠ” μ‚¬λžŒμ—κ²Œ μ „μ²΄μ μœΌλ‘œ λ‹€μ‹œ λ³΅μŠ΅ν•˜κΈ° 쒋은 책인 것 κ°™λ‹€. μΆ”μ²œ! 1. λΉ… 였 뢄석법 μž…λ ₯ κ°’μ˜ κ°œμˆ˜μ— 따라 μ•Œκ³ λ¦¬μ¦˜μ΄ μˆ˜ν–‰λ˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ„ λ°”νƒ•μœΌλ‘œ μ•Œκ³ λ¦¬μ¦˜ νš¨μœ¨μ„±μ„ ν‰κ°€ν•˜λŠ” μ‹€ν–‰ μ‹œκ°„ 뢄석법이닀. n이 맀우 큰 경우λ₯Ό κ°€μ •ν•˜κΈ° λ•Œλ¬Έμ— 점근적인 μ‹€ν–‰ μ‹œκ°„λ§Œ 따진닀. 즉 μ΅œκ³ μ°¨ν•­λ§Œ ν‘œμ‹œν•œλ‹€. μž…λ ₯ κ°’μ˜ 개수λ₯Ό n개둜 κ°€μ •ν•˜κ³  n개의 μž…λ ₯ 값을 λͺ‡ λ²ˆμ΄λ‚˜ 확인해야 ν•˜λŠ”μ§€λ₯Ό n의 μ‹μœΌλ‘œ ν‘œν˜„ν•œλ‹€. O(1): μƒμˆ˜ μ‹œκ°„ 내에 μˆ˜ν–‰λœλ‹€λŠ” 뜻으둜 μž…λ ₯의 κ°œμˆ˜μ™€ λ¬΄κ΄€ν•˜κ²Œ 항상 μΌμ •ν•œ μ‹œκ°„ μ•ˆμ— 싀행이 μ™„λ£Œλœλ‹€. O(n): μ„ ν˜• μ‹œκ°„ 내에 μˆ˜ν–‰λœλ‹€λŠ” 뜻으둜 μ•Œκ³ λ¦¬μ¦˜μ„ μ‹€ν–‰μ‹œν‚€λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ΄ μž…λ ₯된 ν•­λͺ©μ˜ κ°œμˆ˜μ— μ„ ν˜•μ μœΌλ‘œ λΉ„λ‘€ν•˜μ—¬ μ¦κ°€ν•œλ‹€...