//GUEST만 허용하는 경우
@PreAuthorize("hasRole('ROLE_GUEST')")
    @GetMapping("/test")
    public String test(@CurrentUser User user) {
}

//HOST만 허용하는 경우
@PreAuthorize("hasRole('ROLE_HOST')")
    @GetMapping("/test")
    public String test(@CurrentUser User user) {
}

//SELLER만 허용하는 경우
@PreAuthorize("hasRole('ROLE_SELLER')")
    @GetMapping("/test")
    public String test(@CurrentUser Seller seller) {
}

//HOST와 GUEST 둘 다 허용하는 경우
@PreAuthorize("hasAnyRole('ROLE_HOST', 'ROLE_GUEST')")
    @GetMapping("/test")
    public String test(@CurrentUser Seller seller) {
}

//혹은 클래스 레벨에 @PreAuthorize를 붙여도 사용가능함.
@Slf4j
@RestController
@RequiredArgsConstructor
@PreAuthorize("hasRole('ROLE_GUEST')")
@RequestMapping("/api/user")
public class UserController {
}

//만약 권한을 동적으로 관리하려면 SPEL 챗지피티한테 물어보기 ㄱㄱ
//참고로 권한설정을 해놓은 경우 사용자 조회보다 권한 검사를 먼저 하기 때문에 
//객체 불일치/NULL문제는 일어나지 않음