Profile
package com.b1aboa.wedug.controller;
import com.b1aboa.wedug.entity.NationInfo;
import com.b1aboa.wedug.service.NationInfoService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api")
public class NationInfoController {
    private final NationInfoService nationInfoService;
    public NationInfoController(NationInfoService nationInfoService) {
        this.nationInfoService = nationInfoService;
    }
    @GetMapping("/nation-code")
    public ResponseEntity<List<NationInfo>> getNationCodes() {
        List<NationInfo> nations = nationInfoService.getAllNations();
        return ResponseEntity.ok(nations);
    }
}
컨트롤러 추가
서비스 추가
package com.b1aboa.wedug.service;
import com.b1aboa.wedug.entity.NationInfo;
import java.util.List;
public interface NationInfoService {
    List<NationInfo> getAllNations();
}
서비스 impl 추가
package com.b1aboa.wedug.service.impl;
import com.b1aboa.wedug.entity.NationInfo;
import com.b1aboa.wedug.repository.NationInfoRepository;
import com.b1aboa.wedug.service.NationInfoService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class NationInfoServiceImpl implements NationInfoService {
    private final NationInfoRepository nationInfoRepository;
    public NationInfoServiceImpl(NationInfoRepository nationInfoRepository) {
        this.nationInfoRepository = nationInfoRepository;
    }
    @Override
    public List<NationInfo> getAllNations() {
        return nationInfoRepository.findAll();
    }
}
수정
package com.b1aboa.wedug.service;
import com.b1aboa.wedug.entity.User;
public interface UserService {
    User getUserByUserId(String userId);
    void updateUser(User user);
}
package com.b1aboa.wedug.service.impl;
import com.b1aboa.wedug.entity.User;
import com.b1aboa.wedug.repository.UserRepository;
import com.b1aboa.wedug.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
    private final UserRepository userRepository;
    public UserServiceImpl(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
    @Override
    public User getUserByUserId(String userId) {
        return userRepository.findByUserId(userId)
                .orElseThrow(() -> new RuntimeException("User not found"));
    }
    @Override
    public void updateUser(User user) {
        userRepository.save(user);
    }
}
package com.b1aboa.wedug.controller;
import com.b1aboa.wedug.entity.User;
import com.b1aboa.wedug.service.UserService;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
public class UserController {
    private final UserService userService;
    public UserController(UserService userService) {
        this.userService = userService;
    }
    @GetMapping("/info")
    public ResponseEntity<User> getUserInfo() {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        String userId = authentication.getName();  // 현재 인증된 사용자 ID를 가져옴
        User user = userService.getUserByUserId(userId);
        return ResponseEntity.ok(user);
    }
    @PostMapping("/update")
    public ResponseEntity<String> updateUserInfo(@RequestBody User userUpdateDto) {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        String userId = authentication.getName();  // 현재 인증된 사용자 ID를 가져옴
        User existingUser = userService.getUserByUserId(userId);
        // 기존 사용자 정보 업데이트
        existingUser.setNickname(userUpdateDto.getNickname());
        existingUser.setGender(userUpdateDto.getGender());
        existingUser.setBirthYear(userUpdateDto.getBirthYear());
        existingUser.setCountry(userUpdateDto.getCountry());
        userService.updateUser(existingUser);
        return ResponseEntity.ok("User info updated successfully");
    }
}
토큰 재발급해서 보내는 로직 짜기