πŸ“ Book/✏ Effective

    [Book] Effective C# - CHAPTER 3 μ œλ„€λ¦­ ν™œμš©

    μ œλ„€λ¦­μ€ μ»¬λ ‰μ…˜ 외에도 μΈν„°νŽ˜μ΄μŠ€, 이벀트 ν•Έλ“€λŸ¬, 곡톡 μ•Œκ³ λ¦¬μ¦˜ κ΅¬ν˜„ λ“± 맀우 λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ ν™œμš©λœλ‹€. μ•„μ΄ν…œ 18. λ°˜λ“œμ‹œ ν•„μš”ν•œ μ œμ•½ 쑰건만 μ„€μ •ν•˜λΌ νƒ€μž… λ§€κ°œλ³€μˆ˜μ— λŒ€ν•œ μ œμ•½ 쑰건은 ν΄λž˜μŠ€κ°€ μž‘μ—…μ„ μ˜¬λ°”λ₯΄κ²Œ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œ νƒ€μž… λ§€κ°œλ³€μˆ˜λ‘œ 전달할 수 μžˆλŠ” νƒ€μž…μ˜ μœ ν˜•μ„ μ œν•œν•˜λŠ” 방법이닀. μ œμ•½ 쑰건은 μ œλ„€λ¦­ νƒ€μž…μ— λŒ€ν•΄ μš°λ¦¬κ°€ κ°€μ •ν•˜κ³  μžˆλŠ” 사싀을 μ»΄νŒŒμΌλŸ¬μ™€ λ‹€λ₯Έ κ°œλ°œμžμ—κ²Œ μ•Œλ €μ£ΌλŠ” μš©λ„λ‘œ μ‚¬μš©λœλ‹€. μ»΄νŒŒμΌλŸ¬λŠ” νƒ€μž… λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬λœ νƒ€μž…μ΄ μ œμ•½ 쑰건으둜 μ„€μ •ν•œ κΈ°λŠ₯을 λͺ¨λ‘ κ΅¬ν˜„ν•˜κ³  μžˆμ„ 것이라 κ°€μ •ν•  수 μžˆλ‹€. μ»΄νŒŒμΌλŸ¬λŠ” μ œλ„€λ¦­ νƒ€μž…μ„ μ‚¬μš©ν•˜λŠ” μ‚¬μš©μžκ°€ νƒ€μž… λ§€κ°œλ³€μˆ˜λ‘œ μ˜¬λ°”λ₯Έ νƒ€μž…μ„ μ§€μ •ν–ˆλŠ”μ§€ 컴파일 νƒ€μž„μ— 확인할 수 μžˆλ‹€. μ œμ•½ 쑰건을 μ„€μ •ν•˜λŠ” λŒ€μ‹  ν˜•λ³€ν™˜μ΄λ‚˜ λŸ°νƒ€μž„μ— ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜λ„λ‘ μž‘..

    [Book] Effective C# - CHAPTER 2 .NET λ¦¬μ†ŒμŠ€ 관리

    [Book] Effective C# - CHAPTER 2 .NET λ¦¬μ†ŒμŠ€ 관리

    μ•„μ΄ν…œ 11. .NET λ¦¬μ†ŒμŠ€ 관리에 λŒ€ν•œ 이해 .NET ν™˜κ²½μ—μ„œλŠ” νŠΉλ³„νžˆ λ©”λͺ¨λ¦¬ 관리와 가비지 μˆ˜μ§‘κΈ°μ˜ λ™μž‘ 방식을 μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€. 가비지 μˆ˜μ§‘κΈ°(Garbage Collector)λŠ” κ΄€λ¦¬λ˜λŠ” λ©”λͺ¨λ¦¬λ₯Ό κ΄€μž₯ν•˜λ©° λ„€μ΄ν‹°λΈŒ ν™˜κ²½κ³ΌλŠ” λ‹€λ₯΄κ²Œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜, λŒ•κΈ€λ§ 포인터, μ΄ˆκΈ°ν™”λ˜μ§€ μ•Šμ€ 포인터, μ—¬νƒ€μ˜ λ©”λͺ¨λ¦¬ 관리 문제λ₯Ό κ°œλ°œμžλ“€μ΄ 직접 닀루지 μ•Šλ„λ‘ μžλ™ν™”ν•΄μ€€λ‹€. λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²°, COM 객체, μ‹œμŠ€ν…œ 객체 λ“±κ³Ό 같은 비관리 λ¦¬μ†ŒμŠ€λŠ” μ—¬μ „νžˆ κ°œλ°œμžκ°€ 관리해야 ν•œλ‹€. μˆœν™˜ 참쑰의 λ¬Έμ œλ‚˜ λ³΅μž‘ν•œ μ—°κ΄€ κ΄€κ³„μ˜ λ¬Έμ œλ„ 관리 ν™˜κ²½μ—μ„œλŠ” 비ꡐ적 μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€. 가비지 μˆ˜μ§‘κΈ°μ˜ λ™μž‘ 방식 마크/콀팩트 μ•Œκ³ λ¦¬μ¦˜μ€ μ—¬λŸ¬ 객체 μ‚¬μ΄μ˜ μ—°κ΄€ 관계λ₯Ό 효율적으둜 νŒŒμ•…ν•˜μ—¬ 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” 객체λ₯Ό μžλ™μœΌλ‘œ 제..

    [Book] Effective C# - CHAPTER 1 C# μ–Έμ–΄μš”μ†Œ

    μ•„μ΄ν…œ 1. μ§€μ—­λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•ŒλŠ” varλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 λ‚«λ‹€. var ν‚€μ›Œλ“œλŠ” μ•”μ‹œμ  νƒ€μž…μ˜ μ§€μ—­λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ‚¬μš©ν•˜λŠ”λ° λŒ€μž…λœ κ°’μ˜ νƒ€μž…μœΌλ‘œ κ²°μ •λœλ‹€. μ§€μ—­λ³€μˆ˜μ—λ§Œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜κ³  μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ•Ό ν•œλ‹€. μ •ν™•ν•œ λ°˜ν™˜ νƒ€μž…μ„ μ•Œμ§€ λͺ»ν•œ 채 μ˜¬λ°”λ₯΄μ§€ μ•Šμ€ νƒ€μž…μ„ λͺ…μ‹œμ μœΌλ‘œ μ§€μ •ν•˜λŠ” 경우λ₯Ό λ°©μ§€ν•œλ‹€. ex) IQueryable λ₯Ό IEnumerable 둜 κ°•μ œ ν˜•λ³€ν™˜ νƒ€μž…μ„ μœ μΆ”ν•  수 μžˆλŠ” λ³€μˆ˜ 이름을 μ‚¬μš©ν•˜μ—¬ μ½”λ“œμ˜ 가독성을 높일 수 μžˆλ‹€. κ·ΈλŸ¬λ‚˜... 정적 타이핑을 ν›Όμ†μ‹œν‚¨λ‹€: 동적 타이핑이 μˆ˜ν–‰λ˜λŠ” 것이 μ•„λ‹ˆλΌ μ»΄νŒŒμΌλŸ¬κ°€ νƒ€μž…μ„ μΆ”λ‘ ν•˜μ—¬ κ²°μ •ν•œλ‹€. κ³Όλ„ν•œ μ‚¬μš©μœΌλ‘œ μ½”λ“œμ˜ 가독성을 ν•΄μΉ˜κ±°λ‚˜ λ°œκ²¬ν•˜κΈ° μ–΄λ €μš΄ 버그λ₯Ό λ§Œλ“€μ–΄ λ‚Ό 수 μžˆλ‹€. κ°œλ°œμžκ°€ μƒκ°ν•œ νƒ€μž…κ³Ό μ»΄νŒŒμΌλŸ¬κ°€ μΆ”λ‘ ν•œ νƒ€μž…μ΄ 달..