Skip to content

πŸ“Œ μ•„μ΄ν…œ 체크리슀트 #1

@zuminzi

Description

@zuminzi

μ•„μ΄ν…œ 체크리슀트

μ•„μ΄ν…œμ„ μ²΄ν¬ν•œ λ’€ 본인의 이름을 μ•„μ΄ν…œλͺ… 뒀에 μž‘μ„±ν•΄ μ£Όμ„Έμš”.

μ˜ˆμ‹œ:

  • μ•„μ΄ν…œ N. μ•„μ΄ν…œλͺ… (본인의 이름)

2μž₯ 객체 생성과 파괴

  • μ•„μ΄ν…œ 1. μƒμ„±μž λŒ€μ‹  정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλ₯Ό κ³ λ €ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 2. μƒμ„±μžμ— λ§€κ°œλ³€μˆ˜κ°€ λ§Žλ‹€λ©΄ λΉŒλ”λ₯Ό κ³ λ €ν•˜λΌ
  • μ•„μ΄ν…œ 3. private μƒμ„±μžλ‚˜ μ—΄κ±° νƒ€μž…μœΌλ‘œ μ‹±κΈ€ν„΄μž„μ„ λ³΄μ¦ν•˜λΌ (μœ μ •)
  • μ•„μ΄ν…œ 4. μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 5. μžμ›μ„ 직접 λͺ…μ‹œν•˜μ§€ 말고 의쑴 객체 μ£Όμž…μ„ μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 6. λΆˆν•„μš”ν•œ 객체 생성을 ν”Όν•˜λΌ
  • μ•„μ΄ν…œ 7. λ‹€ μ“΄ 객체 μ°Έμ‘°λ₯Ό ν•΄μ œν•˜λΌ (λ―Όμ§€)
  • μ•„μ΄ν…œ 8. finalizer와 cleaner μ‚¬μš©μ„ ν”Όν•˜λΌ
  • μ•„μ΄ν…œ 9. try-finallyλ³΄λ‹€λŠ” try-with-resourcesλ₯Ό μ‚¬μš©ν•˜λΌ

3μž₯ λͺ¨λ“  객체의 곡톡 λ©”μ„œλ“œ

  • μ•„μ΄ν…œ 10. equalsλŠ” 일반 κ·œμ•½μ„ μ§€μΌœ μž¬μ •μ˜ν•˜λΌ (λ―Όμ§€)
  • μ•„μ΄ν…œ 11. equalsλ₯Ό μž¬μ •μ˜ν•˜λ €κ±°λ“  hashCode도 μž¬μ •μ˜ν•˜λΌ
  • μ•„μ΄ν…œ 12. toString을 항상 μž¬μ •μ˜ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 13. clone μž¬μ •μ˜λŠ” μ£Όμ˜ν•΄μ„œ μ§„ν–‰ν•˜λΌ
  • μ•„μ΄ν…œ 14. Comparable을 κ΅¬ν˜„ν• μ§€ κ³ λ €ν•˜λΌ (μœ μ •)

4μž₯ ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€

  • μ•„μ΄ν…œ 15. ν΄λž˜μŠ€μ™€ λ©€λ²„μ˜ μ ‘κ·Ό κΆŒν•œμ„ μ΅œμ†Œν™”ν•˜λΌ (λ―Όμ§€)
  • μ•„μ΄ν…œ 16. public ν΄λž˜μŠ€μ—μ„œλŠ” public ν•„λ“œκ°€ μ•„λ‹Œ μ ‘κ·Όμž λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 17. λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ (μœ μ •)
  • μ•„μ΄ν…œ 18. μƒμ†λ³΄λ‹€λŠ” μ»΄ν¬μ§€μ…˜μ„ μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 19. 상속을 κ³ λ €ν•΄ μ„€κ³„ν•˜κ³  λ¬Έμ„œν™”ν•˜λΌ. κ·ΈλŸ¬μ§€ μ•Šμ•˜λ‹€λ©΄ 상속을 κΈˆμ§€ν•˜λΌ
  • μ•„μ΄ν…œ 20. 좔상 ν΄λž˜μŠ€λ³΄λ‹€λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μš°μ„ ν•˜λΌ
  • μ•„μ΄ν…œ 21. μΈν„°νŽ˜μ΄μŠ€λŠ” κ΅¬ν˜„ν•˜λŠ” μͺ½μ„ 생각해 μ„€κ³„ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 22. μΈν„°νŽ˜μ΄μŠ€λŠ” νƒ€μž…μ„ μ •μ˜ν•˜λŠ” μš©λ„λ‘œλ§Œ μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 23. νƒœκ·Έ 달린 ν΄λž˜μŠ€λ³΄λ‹€λŠ” 클래슀 계측ꡬ쑰λ₯Ό ν™œμš©ν•˜λΌ
  • μ•„μ΄ν…œ 24. 멀버 ν΄λž˜μŠ€λŠ” λ˜λ„λ‘ static으둜 λ§Œλ“€λΌ
  • μ•„μ΄ν…œ 25. ν†±λ ˆλ²¨ ν΄λž˜μŠ€λŠ” ν•œ νŒŒμΌμ— ν•˜λ‚˜λ§Œ λ‹΄μœΌλΌ

5μž₯ μ œλ„€λ¦­

  • μ•„μ΄ν…œ 26. 둜 νƒ€μž…μ€ μ‚¬μš©ν•˜μ§€ 말라
  • μ•„μ΄ν…œ 27. 비검사 κ²½κ³ λ₯Ό μ œκ±°ν•˜λΌ
  • μ•„μ΄ν…œ 28. λ°°μ—΄λ³΄λ‹€λŠ” 리슀트λ₯Ό μ‚¬μš©ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 29. 이왕이면 μ œλ„€λ¦­ νƒ€μž…μœΌλ‘œ λ§Œλ“€λΌ (μœ μ •)
  • μ•„μ΄ν…œ 30. 이왕이면 μ œλ„€λ¦­ λ©”μ„œλ“œλ‘œ λ§Œλ“€λΌ
  • μ•„μ΄ν…œ 31. ν•œμ •μ  μ™€μΌλ“œμΉ΄λ“œλ₯Ό μ‚¬μš©ν•΄ API μœ μ—°μ„±μ„ 높이라 (λ―Όμ§€)
  • μ•„μ΄ν…œ 32. μ œλ„€λ¦­κ³Ό κ°€λ³€μΈμˆ˜λ₯Ό ν•¨κ»˜ μ“Έ λ•ŒλŠ” μ‹ μ€‘ν•˜λΌ
  • μ•„μ΄ν…œ 33. νƒ€μž… μ•ˆμ „ 이쒅 μ»¨ν…Œμ΄λ„ˆλ₯Ό κ³ λ €ν•˜λΌ

6μž₯ μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜

  • μ•„μ΄ν…œ 34. int μƒμˆ˜ λŒ€μ‹  μ—΄κ±° νƒ€μž…μ„ μ‚¬μš©ν•˜λΌ (μœ μ •)
  • μ•„μ΄ν…œ 35. ordinal λ©”μ„œλ“œ λŒ€μ‹  μΈμŠ€ν„΄μŠ€ ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 36. λΉ„νŠΈ ν•„λ“œ λŒ€μ‹  EnumSet을 μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 37. ordinal 인덱싱 λŒ€μ‹  EnumMap을 μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 38. ν™•μž₯ν•  수 μžˆλŠ” μ—΄κ±° νƒ€μž…μ΄ ν•„μš”ν•˜λ©΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 39. λͺ…λͺ… νŒ¨ν„΄λ³΄λ‹€ μ• λ„ˆν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 40. @OverRide μ• λ„ˆν…Œμ΄μ…˜μ„ μΌκ΄€λ˜κ²Œ μ‚¬μš©ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 41. μ •μ˜ν•˜λ €λŠ” 것이 νƒ€μž…μ΄λΌλ©΄ 마컀 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λΌ (λ―Όμ§€)

7μž₯ λžŒλ‹€μ™€ 슀트림

  • μ•„μ΄ν…œ 42. 읡λͺ… ν΄λž˜μŠ€λ³΄λ‹€λŠ” λžŒλ‹€λ₯Ό μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 43. λžŒλ‹€λ³΄λ‹€λŠ” λ©”μ„œλ“œ μ°Έμ‘°λ₯Ό μ‚¬μš©ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 44. ν‘œμ€€ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 45. μŠ€νŠΈλ¦Όμ€ μ£Όμ˜ν•΄μ„œ μ‚¬μš©ν•˜λΌ (λ―Όμ§€)
  • μ•„μ΄ν…œ 46. μŠ€νŠΈλ¦Όμ—μ„œλŠ” λΆ€μž‘μš© μ—†λŠ” ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λΌ (μœ μ •)
  • μ•„μ΄ν…œ 47. λ°˜ν™˜ νƒ€μž…μœΌλ‘œλŠ” μŠ€νŠΈλ¦Όλ³΄λ‹€ μ»¬λ ‰μ…˜μ΄ λ‚«λ‹€
  • μ•„μ΄ν…œ 48. 슀트림 λ³‘λ ¬ν™”λŠ” μ£Όμ˜ν•΄μ„œ μ μš©ν•˜λΌ

8μž₯ λ©”μ„œλ“œ

  • μ•„μ΄ν…œ 49. λ§€κ°œλ³€μˆ˜κ°€ μœ νš¨ν•œμ§€ κ²€μ‚¬ν•˜λΌ (λ―Όμ§€)
  • μ•„μ΄ν…œ 50. μ μ‹œμ— 방어적 볡사본을 λ§Œλ“€λΌ (은녕)
  • μ•„μ΄ν…œ 51. λ©”μ„œλ“œ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό μ‹ μ€‘νžˆ μ„€κ³„ν•˜λΌ
  • μ•„μ΄ν…œ 52. λ‹€μ€‘μ •μ˜λŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 53. κ°€λ³€μΈμˆ˜λŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 54. null이 μ•„λ‹Œ, 빈 μ»¬λ ‰μ…˜μ΄λ‚˜ 배열을 λ°˜ν™˜ν•˜λΌ
  • μ•„μ΄ν…œ 55. μ˜΅μ…”λ„ λ°˜ν™˜μ€ μ‹ μ€‘νžˆ ν•˜λΌ (μœ μ •)
  • μ•„μ΄ν…œ 56. 곡개된 API μš”μ†Œμ—λŠ” 항상 λ¬Έμ„œν™” 주석을 μž‘μ„±ν•˜λΌ

9μž₯ 일반적인 ν”„λ‘œκ·Έλž˜λ° 원칙

  • μ•„μ΄ν…œ 57. μ§€μ—­λ³€μˆ˜μ˜ λ²”μœ„λ₯Ό μ΅œμ†Œν™”ν•˜λΌ
  • μ•„μ΄ν…œ 58. 전톡적인 for λ¬Έλ³΄λ‹€λŠ” for-each 문을 μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 59. 라이브러리λ₯Ό 읡히고 μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 60. μ •ν™•ν•œ 닡이 ν•„μš”ν•˜λ‹€λ©΄ float와 double은 ν”Όν•˜λΌ
  • μ•„μ΄ν…œ 61. λ°•μ‹±λœ κΈ°λ³Έ νƒ€μž…λ³΄λ‹€λŠ” κΈ°λ³Έ νƒ€μž…μ„ μ‚¬μš©ν•˜λΌ (μœ μ •)
  • μ•„μ΄ν…œ 62. λ‹€λ₯Έ νƒ€μž…μ΄ μ μ ˆν•˜λ‹€λ©΄ λ¬Έμžμ—΄ μ‚¬μš©μ„ ν”Όν•˜λΌ (λ―Όμ§€)
  • μ•„μ΄ν…œ 63. λ¬Έμžμ—΄ 연결은 λŠλ¦¬λ‹ˆ μ£Όμ˜ν•˜λΌ
  • μ•„μ΄ν…œ 64. κ°μ²΄λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•΄ μ°Έμ‘°ν•˜λΌ
  • μ•„μ΄ν…œ 65. λ¦¬ν”Œλ ‰μ…˜λ³΄λ‹€λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 66. λ„€μ΄ν‹°λΈŒ λ©”μ„œλ“œλŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 67. μ΅œμ ν™”λŠ” μ‹ μ€‘νžˆ ν•˜λΌ
  • μ•„μ΄ν…œ 68. 일반적으둜 ν†΅μš©λ˜λŠ” λͺ…λͺ… κ·œμΉ™μ„ λ”°λ₯΄λΌ

10μž₯ μ˜ˆμ™Έ

  • μ•„μ΄ν…œ 69. μ˜ˆμ™ΈλŠ” μ§„μ§œ μ˜ˆμ™Έ μƒν™©μ—λ§Œ μ‚¬μš©ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 70. 볡ꡬ할 수 μžˆλŠ” μƒν™©μ—λŠ” 검사 μ˜ˆμ™Έλ₯Ό, ν”„λ‘œκ·Έλž˜λ° 였λ₯˜μ—λŠ” λŸ°νƒ€μž„ μ˜ˆμ™Έλ₯Ό μ‚¬μš©ν•˜λΌ (μœ μ •)
  • μ•„μ΄ν…œ 71. ν•„μš” μ—†λŠ” 검사 μ˜ˆμ™Έ μ‚¬μš©μ€ ν”Όν•˜λΌ
  • μ•„μ΄ν…œ 72. ν‘œμ€€ μ˜ˆμ™Έλ₯Ό μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 73. 좔상화 μˆ˜μ€€μ— λ§žλŠ” μ˜ˆμ™Έλ₯Ό λ˜μ§€λΌ
  • μ•„μ΄ν…œ 74. λ©”μ„œλ“œκ°€ λ˜μ§€λŠ” λͺ¨λ“  μ˜ˆμ™Έλ₯Ό λ¬Έμ„œν™”ν•˜λΌ
  • μ•„μ΄ν…œ 75. μ˜ˆμ™Έμ˜ 상세 λ©”μ‹œμ§€μ— μ‹€νŒ¨ κ΄€λ ¨ 정보λ₯Ό λ‹΄μœΌλΌ
  • μ•„μ΄ν…œ 76. κ°€λŠ₯ν•œ ν•œ μ‹€νŒ¨ μ›μžμ μœΌλ‘œ λ§Œλ“€λΌ (λ―Όμ§€)
  • μ•„μ΄ν…œ 77. μ˜ˆμ™Έλ₯Ό λ¬΄μ‹œν•˜μ§€ 말라

11μž₯ λ™μ‹œμ„±

  • μ•„μ΄ν…œ 78. 곡유 쀑인 κ°€λ³€ λ°μ΄ν„°λŠ” 동기화해 μ‚¬μš©ν•˜λΌ (μœ μ •)
  • μ•„μ΄ν…œ 79. κ³Όλ„ν•œ λ™κΈ°ν™”λŠ” ν”Όν•˜λΌ
  • μ•„μ΄ν…œ 80. μŠ€λ ˆλ“œλ³΄λ‹€λŠ” μ‹€ν–‰μž, νƒœμŠ€ν¬, μŠ€νŠΈλ¦Όμ„ μ• μš©ν•˜λΌ
  • μ•„μ΄ν…œ 81. wait와 notifyλ³΄λ‹€λŠ” λ™μ‹œμ„± μœ ν‹Έλ¦¬ν‹°λ₯Ό μ• μš©ν•˜λΌ
  • μ•„μ΄ν…œ 82. μŠ€λ ˆλ“œ μ•ˆμ „μ„± μˆ˜μ€€μ„ λ¬Έμ„œν™”ν•˜λΌ
  • μ•„μ΄ν…œ 83. μ§€μ—° μ΄ˆκΈ°ν™”λŠ” μ‹ μ€‘νžˆ μ‚¬μš©ν•˜λΌ (λ―Όμ§€)
  • μ•„μ΄ν…œ 84. ν”„λ‘œκ·Έλž¨μ˜ λ™μž‘μ„ μŠ€λ ˆλ“œ μŠ€μΌ€μ€„λŸ¬μ— κΈ°λŒ€μ§€ 말라 (은녕)

12μž₯ 직렬화

  • μ•„μ΄ν…œ 85. μžλ°” μ§λ ¬ν™”μ˜ λŒ€μ•ˆμ„ 찾으라 (μœ μ •)
  • μ•„μ΄ν…œ 86. Serializable을 κ΅¬ν˜„ν• μ§€λŠ” μ‹ μ€‘νžˆ κ²°μ •ν•˜λΌ (은녕)
  • μ•„μ΄ν…œ 87. μ»€μŠ€ν…€ 직렬화 ν˜•νƒœλ₯Ό 고렀해보라
  • μ•„μ΄ν…œ 88. readObject λ©”μ„œλ“œλŠ” λ°©μ–΄μ μœΌλ‘œ μž‘μ„±ν•˜λΌ
  • μ•„μ΄ν…œ 89. μΈμŠ€ν„΄μŠ€ 수λ₯Ό ν†΅μ œν•΄μ•Ό ν•œλ‹€λ©΄ readResolveλ³΄λ‹€λŠ” μ—΄κ±° νƒ€μž…μ„ μ‚¬μš©ν•˜λΌ
  • μ•„μ΄ν…œ 90. μ§λ ¬ν™”λœ μΈμŠ€ν„΄μŠ€ λŒ€μ‹  직렬화 ν”„λ‘μ‹œ μ‚¬μš©μ„ κ²€ν† ν•˜λΌ (λ―Όμ§€)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions