enumsingleton 구현