추상클래스로 중복제거