코드용 assert 추가. 리펙토링. 유닛테스트 추가