본문 바로가기

이펙티브자바3

불필요한 객체 생성을 피하라 이펙티브 자바의 해당 item은 성능 최적화와 메모리 관리를 강조합니다. 이 원칙은 불필요한 객체 생성을 피함으로써 시스템의 메모리 사용과 성능을 개선하는데 중점을 둡니다. 불필요한 객체 생성의 문제 : 매번 필요할 때마다 새로운 객체를 생성하는 것은 메모리 사용을 증가시키고 가비지 컬렉션의 부담을 가중시킬 수 있습니다. 재사용을 통한 최적화 : 변경 불가능한 객체(immutable objects)나 변경 가능성이 없는 객체는 재사용하는 것이 좋습니다. 예를 들어 String 대신 StringBuilder를 사용할 수 있습니다. 팩토리 메소드 활용 : 객체 생성이 필요한 리소스가 큰 경우 "new" 대신 팩토리 메서드를 사용하여 기존 객체를 재사용할 수 있습니다. 경량 객체 사용 : 작은 메모리를 사용하.. 2024. 1. 11.
자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 해당 원칙은 의존성 주입(Dependency Injection, DI) 의 중요성에 대해서 강조하고 있습니다. 의존 객체 주입은 클래스가 자신의 의존성을 직접 생성하지 않고 외부에서 제공 받는 방식입니다. 유연성과 재사용성 : 의존 객체 주입을 사용하면, 클래스가 특정 구현에 강하게 결합되는 것을 방지할 수 있습니다. 예를들어, 데이터베이스 연결이나 네트워크 리소스와 같은 자원에 대한 구체적인 구현 대신 인터페이스를 주입 받으면 클라이언트 코드에 영향 없이 다른 구현체로 쉽게 교체할 수 있습니다. 테스트 용이성 : 의존 객체 주입을 사용하면 단위 테스트 시에 실제 구현 대신 모의 객체(mock)이나 스텁을 주입할 수 있어 테스트가 용이해집니다. 유연성과 재사용성 ClientService 클래스는 Emai.. 2024. 1. 10.
정적 팩터리 메서드 이펙티브 자바(Effective Java) 에서 언급하는 정적 팩토리 메서드 (static factory method)는 객체 생성을 위한 디자인 패턴의 일종 입니다. 이 방법은 생성자 대신 클래스 내부에 정적 메서드를 사용하여 객체를 반환합니다. 명시적 이름 사용 : 생성자에 비해, 정적 팩토리 메서드는 반환될 객체의 특성을 잘 설명하는 이름을 가질 수 있습니다. 예를 들어 'Order.createInstance' 은 이름만으로도 새로운 인터스턴스를 반환하는 것을 알 수 있습니다. 호출될 때마다 새로운 객체를 생성하지 않아도 됨 : 필요한 경우, 정적 팩토리 메서드는 항상 새로운 객체를 생성하지 않고, 미리 생성된 객체를 반환할 수 있습니다. 이는 메모리 사용 최적화에 도움을 줍니다. 반환 타입의 하위.. 2023. 12. 20.