약간의 리팩토링을 하였음