main함수 구현