추가 : controller / viewer 분리