제어의 역전 (Ioc)
제어의 역전 (Inversion Of Control)
제어의 역전 (Inversion Of Control)
의존관계 주입(DI)
싱글톤 레지스트리와 오브젝트 스코프
🔗 직렬화 프록시 패턴을 이용하면 Serialziable 구현의 위험을 크게 줄여줄 수 있다.
🔗 아이템 3에서 싱글턴 패턴을 설명하며 다음 예를 보여주었다.
🔗 아이템 50에서는 불변인 날짜 클래스를 만드는 데 가변인 Date 필드를 이용했다.
🔗 개발 일정에 쫓기는 상황에서는 API 설계에 노력을 집중하는 편이 나을 것이다.
🔗 Serializable을 구현하면 릴리즈 한 뒤에는 수정하기 어렵다.
🔗 자바 직렬화의 위험성
🔗 정확성이나 성능이 쓰레드 스케줄러에 따라 달라지는 프로그램이라면 다른 플랫폼에 이식하기 어렵다.
🔗 지연 초기화(Lazy Initialization)는 필드의 초기화 시점을 그 값이 처음 필요할 때까지 늦추는 기법이다.
🔗 한 메서드를 여러 스레드가 동시에 호출할 때 그 메서드가 어떻게 동작하느냐는 해당 클래스와 이를 사용하는 클라이언트 사이의 중요한 계약과 같다.
🔗 wait와 notify는 올바르게 사용하기가 아주 까다로우니 고수준 동시성 유릴리티를 사용하자.
🔗 java.util.concurrent 패키지는 실행자 프레임워크(Executor Framework)라고 하는 인터페이스 기반의 유연한 태스트 실행 기능을 담고 있다.
🔗 응답 불가와 안전 실패를 피하려면 동기화 메서드나 동기화 블록 안에서는 제어를 절대로 클라이언트에 양도하면 안 된다.
🔗 synchronized 키워드는 해당 메서드나 블록을 한번에 한 스레드씩 수행하도록 보장한다.
🔗 테트로미노 14500번 문제
🔗 리모컨 1107번 문제
🔗 일곱 난장이 2309번 문제
🔗 연속합2 13398번 문제