SpringBoot
SpringBoot [스프링부트] 시작하기(9) Team 내부 로직 만들기
SpringBoot [스프링부트] 시작하기(9) Team 내부 로직 만들기
2022.01.17Member를 만들던 것과 비슷하므로 추가적인 개념이 있다면 그 구분에 대해서만 설명하겠습니다. TeamFounder = Team의 요구사항과 같다고 할 수 있습니다. TeamFounder는 하나의 Team만 만들 수 있습니다. TeamFounder는 Member가 신청한 리스트를 확인할 수 있으며 수락이 가능합니다. TeamFounder는 Team해체가 가능합니다. TeamFounder는 League 참가 신청을 할 수 있습니다. LeagueHost가 수락을 해야 League에 참가가 완료됩니다. 여러 리그에 신청이 가능하지만 한 League에만 참석이 가능합니다. 1. TeamService, TeamServiceImpl TeamRepository 추가 public interface TeamReposi..
SpringBoot [스프링부트] 시작하기(8) Interceptor 만들기
SpringBoot [스프링부트] 시작하기(8) Interceptor 만들기
2022.01.16앞서 만들었던 MemberController에 대한 로직들은 로그인이 없어도 호출이 가능했고, 비록 다른 사용자여도 로그인만 하여 세션이 있다면 다른 사용자의 정보를 이용할 수 있었습니다. 이러한 현상을 방지하기 위해 Interceptor를 만들도록 하겠습니다. Interceptor란? Controller의 Handler를 호출하기 전, 호출한 후를 가로채서 가공을 할 수 있는 것을 의미합니다. 기본적인 spring Interceptor의 흐름은 아래와 같습니다. 1. MemberInterceptor @Component @RequiredArgsConstructor public class MemberInterceptor implements HandlerInterceptor { private final Us..
SpringBoot [스프링부트] 시작하기(7) ArgumentResolver 만들기
SpringBoot [스프링부트] 시작하기(7) ArgumentResolver 만들기
2022.01.15전 시간에 Controller에서 Session을 가져오는 데 있어서 중복 코드가 있었습니다. 해당 코드를 ArgumentResolver로 해결해보겠습니다. ArgumentResolver란? 컨트롤러의 메소드의 인자로 사용자가 임의의 값을 전달하는 방법을 제공할 때 사용합니다. 저희가 활용할 부분은 세션에 저장되어 있는 것을 메소드의 파라미터로 넘겨주는 역할을 하게 됩니다. 1. argumentresolver 패키지 먼저 만듭니다. SessionConst와 SessionDto를 사용하므로 Dto에 있던 것을 옮겨줍니다. 2. ArgumentResolver에 사용될 LoginUser Annotation만들기 @Target(ElementType.PARAMETER) @Retention(RetentionPoli..
SpringBoot [스프링부트] 시작하기(6) MemberController 만들기
SpringBoot [스프링부트] 시작하기(6) MemberController 만들기
2022.01.15UserController를 만들었던 거 처럼 MemberController를 만들겠습니다. 1. MemberController Controller위에 @RequestMapping("member")을 주면 모든 메소드에 적용됩니다. /member/~~이런식으로 식별됩니다. @PostMapping("/request/{teamId}") public Long requestTeam(@PathVariable(name = "teamId")Long teamId,HttpServletRequest request){ HttpSession session = request.getSession(false); SessionDto sessionUser = (SessionDto) session.getAttribute(SessionC..
SpringBoot [스프링부트] 시작하기(5) Member 관련 완성하기
SpringBoot [스프링부트] 시작하기(5) Member 관련 완성하기
2022.01.15Member는 ROLE이라는 Enum으로 나누어진 User이므로 UserRository를 사용합니다. 1. MemberService에서 사용될 TeamRepository, RequestTeamRepsitory먼저 만들어줍니다. public interface RequestTeamRepository extends JpaRepository { } public interface TeamRepository extends JpaRepository { } 2. MemberService, MemberServiceImpl에서 필요로 하는 로직 먼저 살펴봅시다. Member는 팀에 가입 요청을 할 수 있다. (단 한 팀에게 한 번 요청할 수 있다.) Member는 가입요청 한 것을 취소할 수 있다. Member는 팀을 탈..
SpringBoot [스프링부트] 시작하기(4) RestController, RestControllerAdvice,ExceptionHanlder Restful API 예외 처리
SpringBoot [스프링부트] 시작하기(4) RestController, RestControllerAdvice,ExceptionHanlder Restful API 예외 처리
2022.01.14앞서 UserRepostory, UserService, test작성, 예외 클래스를 만들었습니다. 이제 Controller와 예외가 터졌을 때 클라이언트에게 예외에 대한 내용을 알려줄 수 있도록 ControllerAdvice, ExceptionHandler를 알아보겠습니다. 1. UserController @RestController @RequiredArgsConstructor public class UserController { private final UserService userService; @PostMapping("/signup") public ResponseEntity signup(@RequestBody UserDto.SignupDto signupDto){ userService.signup(s..