
✏️ Item 7 : 다 쓴 객체 참조를 해제하라 다 사용한 객체는 null 처리(참조 해제)해 메모리 누수가 발생하지 않도록 조심해야한다. 다 사용한 객체를 null 처리하면 실수로 해당 객체를 사용하는 것을 막을 수 있다는 장점이 있다. 메모리 누수에 주의 필요한 상황 & 해결 방법 1. 자기 메모리를 직접 관리하는 클래스 2. 캐시 - 캐시 외부에서 키를 참조하는 동안만 엔트리가 살아있는 캐시가 필요하면 WeakHashMap을 사용한다. - 시간이 지나수록 엔트리 가치를 떨어뜨리는 방식을 사용할 때는 백그라운드 스레드로 엔트리를 청소하거나, 새 엔트리를 추가할 떄 엔트리를 청소해줘야 한다. 3. 리스너, 콜백 - 콜백을 약한 참조로 저장한다. (WeakHashMap에 키로 저장) WeakHashMa..

✏️ Item 4 : 인스턴스화를 막으려거든 private 생성자를 사용하라 정적 메서드와 정적 필드만을 담은 클래스와 같은 유틸리티 클래스를 만들때는 private 생성자로 인스턴스화를 막아주는 것이 좋다. 추상 클래스로 만드는 것으로는 인스턴스화를 막을 수 없다. private 생성자를 사용하면 상속을 불가능하게 만드는 효과도 있다. ✏️ Item 5 : 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 여러 자원에 의존하는 객체는 유연하지 않고, 테스트하기 어려운 경우가 많다. 이럴 때는 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주는 것과 같은 의존 객체 주입 패턴을 사용하는 것이 좋다. (생성자에 자원 팩터리를 넘겨주는 방법도 있다) 여러 클라이언트가 의존 객체들을 안심하고 공유할 수 ..
- Total
- Today
- Yesterday
- JPA
- jQuery
- 고아 객체
- 영속성
- ASP.NET
- JpaRepository
- SpringBoot
- 스프링
- OWIN
- 빌더 패턴
- 토비의 스프링
- DataAnnotation
- Effective Java
- default interface
- Spring
- 자바의 정석
- C# 문법
- orphanRemoval
- uploadfive
- 스프링MVC
- c#
- spring boot
- JavaScript
- 스프링 부트 테스트
- MSSQL
- Java
- @Modifying
- Nullable
- 준영속
- 다이내믹 프록시
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |