SpringBoot/spring 프로젝트 만들기
SpringBoot [스프링부트] 시작하기(14) AWS 배포하기
SpringBoot [스프링부트] 시작하기(14) AWS 배포하기
2022.01.19지금까지 만든 프로젝트를 AWS에 배포하는 과정을 알아보겠습니다. EC2 생성, 탄력적 IP 등등 기본적인 내용은 아래 링크에서 확인 부탁드립니다. 사용되는 ec2는 ubuntu로 진행했습니다. https://dingdingmin-back-end-developer.tistory.com/entry/AWS-EC2-%EC%83%9D%EC%84%B1-%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85-%EA%B3%BC%EC%A0%95%EC%9D%80-%EC%83%9D%EB%9E%B5?category=904393 AWS EC2 생성 (회원가입 과정은 생략) 1. AWS에 로그인한 후 EC2를 검색하여 클릭해준다. 2. 인스턴스 생성을 클릭해준다. 3. Amazon linux 2를 사용할 예정이므로 ..
SpringBoot [스프링부트] 시작하기(13) Log AOP 만들기
SpringBoot [스프링부트] 시작하기(13) Log AOP 만들기
2022.01.19AOP란? 관점 지향 프로그래밍입니다. AOP는 OOP( 객체지향 프로그래밍 )에서의 반복되는 공통 기능의 코드를 극복했습니다. AOP는 어떤 로직을 기준으로 핵심적인 로직과 부가적인 로직으로 분리하여 그것들을 관점을 기준으로 모듈화 하여 공통된 코드를 줄이는 것입니다. 저희가 사용할 부분은 Controller의 메소드가 호출될 때 호출된 메소드, 시작한 시각, 끝나는 시각을 Log로 찍는 것입니다. 1. MethodLog @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MethodLog { } @Target: Annotation을 사용할 수 있는 곳을 정의합니다. Class, Parameter, Metho..
SpringBoot [스프링부트] 시작하기(12) LeagueController, Interceptor, ControllerAdvice 만들기
SpringBoot [스프링부트] 시작하기(12) LeagueController, Interceptor, ControllerAdvice 만들기
2022.01.18TeamController, Interceptor, ControllerAdvice와 유사하므로 추가적인 설명은 생략하겠습니다. 1. LeagueController, LeagueAdvice @RestController @RequiredArgsConstructor @RequestMapping("/league") public class LeagueController { private final LeagueService leagueService; @GetMapping("/") public RestLeagueDto findByName(@RequestParam(name = "leagueName") String leagueName){ return leagueService.findLeagueByName(leagueNa..
SpringBoot [스프링부트] 시작하기(10) TeamController, Interceptor, Advice만들기
SpringBoot [스프링부트] 시작하기(10) TeamController, Interceptor, Advice만들기
2022.01.17Member의 Interceptor에는 로그인과 권한만 일치한다면, 모든 요청을 통과시켰습니다. 하지만 안드로이드나, web페이지에서 요청을 할 수 있는 버튼만 제공하지 않는다면 안전할까요?? -> 정답은 아닙니다. 서버의 IP와 URI, 같은 권한을 가진 로그인 사용자가 접근한다면 다른 사용자의 DB를 이용할 수 있게 됩니다. 이러한 상황을 막기 위해 TeamInterceptor에는 검증하는 로직을 추가합니다. MemberInterceptor에도 마찬가지로 추가해야 합니다. 여러분이 실습할 수 있는 시간을 드리기 위해 추가하지는 않겠습니다. 1. TeamController, TeamControllerAdvice @RestController @RequiredArgsConstructor @RequestMa..
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..