@GetMapping("/mybadge")
    public String mybadge(@AuthenticationPrincipal MyUserDetails myUserDetails, Model model) {

MyPage에서 사용자의 배지를 띄우기 위해서는 user_id만 필요합니다.

@Getter
@RequiredArgsConstructor
public class MyUserDetails implements UserDetails {

    private final User user;

MyUserDetails에서 user id 를 꺼내오기 위해서는 결국 db에 접근하여 모든 user 정보를 가져와야합니다.

Hibernate: 
    select
        u1_0.user_id,
        u1_0.active_status,
        u1_0.birth,
        u1_0.created_at,
        u1_0.email,
        u1_0.gender,
        u1_0.is_email_verified,
        u1_0.login_id,
        u1_0.password,
        u1_0.phone,
        u1_0.profile_banner_image_url,
        u1_0.profile_image_url,
        u1_0.updated_at,
        u1_0.user_name,
        u1_0.user_type 
    from
        tbl_user u1_0 
    where
        u1_0.login_id=?

그래서 자주 사용되는 기본 정보, user_id나 user_name은 변수로 아예 설정해두는건 어떨까요?

@Getter
@RequiredArgsConstructor
public class MyUserDetails implements UserDetails {

    private final User user;
    private final Long userId;
    private final Stirng userName;