GitHub

https://github.com/Choidongjun0830

2025/03/01 3

equals()와 hashCode()의 개념과 관계

equals() 메서드equals() 메서드는 두 객체가 논리적으로 동일한지를 비교하기 위해 사용된다. 기본적으로 Object 클래스의 equals() 메서드는 두 객체의 참조(메모리 주소)가 동일한지를 비교하며, 따라서 == 연산자와 동일한 동작을 한다.그러나, equals() 메서드를 오버라이딩하면 객체의 특정 필드 값을 비교하여 논리적으로 동일한지를 정의할 수 있다.equals() 기본 동작class Person { private String name; public Person(String name) { this.name = name; }}public class Main { public static void main(String[] args) { ..

공부 2025.03.01

단위 테스트

TDD 법칙 세 가지실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 깨끗한 테스트 케이스 유지하기 테스트 코드도 프로덕션 코드만큼 중요하다테스트 코드를 지저분하게 작성하는 것은 테스트를 하지 않는 것보다 더 나쁠 수도 있다. 프로덕션 코드가 진화하면 테스트 코드도 함께 진화해야 하는데, 유지보수하기 어려운 테스트 코드는 결국 방치되거나 삭제될 가능성이 높다.테스트 코드는 단순히 버그를 찾기 위한 것이 아니라, 코드의 유연성, 유지보수성, 재사용성을 높이는 데 중요한 역할을 한다. 테스트가 잘 갖춰져 있다면 코드 변경이 두렵지 않고, 오히려 안심할 수 ..

공부 2025.03.01

객체와 자료 구조의 차이

인터페이스 설계 방식의 차이잘못된 접근 방식public interface Vehicle { double getFuelTankCapacityInGallons(); double getGallonsOfGasoline();}위 인터페이스는 단순히 데이터를 가져오는 getter 메서드만 제공하며, 내부 데이터를 그대로 노출하는 방식이다.public interface Vehicle { double getPercentFuelRemaining();}반면, 이 인터페이스는 내부 데이터를 숨기고, 필요한 정보만 제공하는 방식이다. 내부 구현을 감춘 채 기능을 제공하는 것이 객체지향적인 접근이다.핵심 원칙데이터를 조회/설정하는 함수를 무분별하게 추가하는 것은 피해야 한다.객체는 데이터를 숨기고, 기능을 제공..

공부 2025.03.01
728x90