SpringBoot
SpringBoot [스프링부트] Spring Security Oauth2 만들기(1)
SpringBoot [스프링부트] Spring Security Oauth2 만들기(1)
2022.01.20Intellij 울티메이트 버전에서 만들었습니다:) 1. Oauth2란? OAuth2(Open Authorization, Open Authentication 2)는 인증을 위한 표준 프로토콜입니다. 구글, 페이스북, 카카오 등에서 제공하는 Authorization Server를 통해 회원 정보를 인증하고 Access Token을 발급 받을 수 있습니다. Oauth2를 사용한다면, 개발자 입장에선 로그인 부분에 대해서는 Authorization Server가 담당해주며, 후 처리 부분과 실제로 사용되는 서비스에만 신경을 쏟을 수 있다는 이점이 있습니다. 안드로이드 애플리케이션에서 Oauth2를 사용한다면, Client는 안드로이드 애플리케이션이며, Web으로 사용한다면 SSR(Server Side Rend..
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 [스프링부트] 시작하기(11) League 내부 로직 만들기
SpringBoot [스프링부트] 시작하기(11) League 내부 로직 만들기
2022.01.18Member와 Team을 만들었던 것과 비슷하므로 추가적인 개념이 있을 경우만 설명하겠습니다. LeagueHost == League의 요구사항과 같다고 볼 수 있습니다. LeagueHost는 League를 개최할 수 있습니다. LeagueHost는 League 참가를 희망한 팀의 리스트를 확인할 수 있으며 수락이 가능합니다. 1. LeagueService, LeagueServiceImpl 추가 public interface LeagueService { Long createLeague(LeagueDto leagueDto, Long userId); void acceptLeague(Long requestLeagueId); List findRequestList(Long leagueId); List findRes..
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..