java37 불필요한 객체 생성을 피하라 이펙티브 자바의 해당 item은 성능 최적화와 메모리 관리를 강조합니다. 이 원칙은 불필요한 객체 생성을 피함으로써 시스템의 메모리 사용과 성능을 개선하는데 중점을 둡니다. 불필요한 객체 생성의 문제 : 매번 필요할 때마다 새로운 객체를 생성하는 것은 메모리 사용을 증가시키고 가비지 컬렉션의 부담을 가중시킬 수 있습니다. 재사용을 통한 최적화 : 변경 불가능한 객체(immutable objects)나 변경 가능성이 없는 객체는 재사용하는 것이 좋습니다. 예를 들어 String 대신 StringBuilder를 사용할 수 있습니다. 팩토리 메소드 활용 : 객체 생성이 필요한 리소스가 큰 경우 "new" 대신 팩토리 메서드를 사용하여 기존 객체를 재사용할 수 있습니다. 경량 객체 사용 : 작은 메모리를 사용하.. 2024. 1. 11. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 해당 원칙은 의존성 주입(Dependency Injection, DI) 의 중요성에 대해서 강조하고 있습니다. 의존 객체 주입은 클래스가 자신의 의존성을 직접 생성하지 않고 외부에서 제공 받는 방식입니다. 유연성과 재사용성 : 의존 객체 주입을 사용하면, 클래스가 특정 구현에 강하게 결합되는 것을 방지할 수 있습니다. 예를들어, 데이터베이스 연결이나 네트워크 리소스와 같은 자원에 대한 구체적인 구현 대신 인터페이스를 주입 받으면 클라이언트 코드에 영향 없이 다른 구현체로 쉽게 교체할 수 있습니다. 테스트 용이성 : 의존 객체 주입을 사용하면 단위 테스트 시에 실제 구현 대신 모의 객체(mock)이나 스텁을 주입할 수 있어 테스트가 용이해집니다. 유연성과 재사용성 ClientService 클래스는 Emai.. 2024. 1. 10. Execution failed for task ':test'.> No tests found for given includes: [TDD.CalculatorTest.calculatePlusTest](--tests filter) 테스트 실행 도중 아래와 같은 에러를 만나면 인텔리제 옵션을 수정해보자 Execution failed for task ':test'. > No tests found for given includes: [TDD.CalculatorTest.calculatePlusTest](--tests filter) Build, Execution, Deployment -> Build Tool -> Gradle 메뉴로 이동 우측 Run tests using -> Intellij IDEA 로 변경 후 apply ok 2024. 1. 3. 생성자에 매개변수가 많다면 빌더를 고려하라 정적 팩터리와 생성자에는 똑같은 제약이 하나 있습니다. 선택적 매개변수가 많을 때 적절히 대응하기가 어렵다는 점입니다. 빌더패턴을 설명하기 이전에 점층적 생성자 패턴(telescoping constructor pattern)에 대해 알아 보겠습니다. 점층적 생성자 패턴은 객체 생성 시 다양한 매개변수 조합을 처리하기 위해 여러 생성자를 제공하는 방식입니다. 이 패턴은 매개변수가 적을 때는 잘 작동하지만, 매개변수의 수가 많아지면 코드의 가독성과 관리가 어려워질 수 있습니다. 이펙티브 자바에서 예시로 이는 점층적 생성자 패턴 예시를 알아볼께요 점층적 생성자 패턴 - 확장하기 어렵다. ( Telescoping Constructor Pattern ) public class NutritionFacts { pri.. 2023. 12. 21. 이전 1 2 3 4 5 6 ··· 10 다음