design patterns 완료.