1. 프로그래밍 패러다임

2. 객체지향 프로그래밍

5. 책임 할당하기

9. 유연한 설계