1 by 1 구현