서론 자바 개발자라면 누구나 한 번쯤은 `hashCode()`와 `equals()` 메소드에 대해 들어봤을 것입니다. 이 두 메소드는 객체의 동등성을 처리하는 데 중요한 역할을 하며, 특히 해시 기반의 컬렉션을 사용할 때 이들의 중요성은 더욱 부각됩니다. 이 글에서는 왜 이 두 메소드를 항상 함께 오버라이드해야 하는지에 대해 설명하겠습니다. 본론 1. **`equals()` 메소드의 역할** - `equals()` 메소드는 두 객체가 같은지를 결정합니다. - 자바의 `Object` 클래스에 있는 기본 `equals()` 메소드는 객체의 참조를 비교합니다. - 하지만, 대부분의 경우 객체의 내용이 같으면 같은 객체로 간주하는 것이 바람직합니다. - 따라서, 객체의 상태나 값이 같을 때 같은 객체로 인식되도..