전체 클래스 중 의미있는 클래스들을 묶은 각각의 집합반복되는 의미있는 집합을 정의하고, 이름을 지정한 후 동일한 의미의 패턴으로써 다른 사람들과 공유할 수 있도록 만들어 놓은 것Model, view, Controller 역할을 각기 나누어 Class 를 생성하고 개발하