procedural macro를 사용한다