2차 리팩토링 완료, 세부 내용은 파일안에 작성함