동시성이 필요한 이유? 동시성은 결합(coupling)을 없내는 전략 무엇과 언제를 분리하는 전략 무엇과 언제를 분리하면 애플리케이션 구조와 효율이 극적으로 나아짐 구조적인 관점에서 프로그램은 거대한 루프가 하나가 아니라 작은 협력으로 나누어짐 Servlet 난관 동시성 방어 원칙 단일 책임 원칙(Single Resposivility Principle, SRP) 자료 범위를 제한하라 자료 사본을 사용하라 스레드는 가능한 독립적으로 구현하라 라이브러리를 이해하라 실행 모델을 이해하라 동기화하는 메서드 사이에 존재하는 의존성을 이해하라 동기화하는 부분을 작게 만들어라 올바른 종료코드는 구현하기 어렵다 스레드 코드 테스트하기 References 클린 코드