[Spring] @Controller, @RestController 차이 보통 웹에서 화면 전환 없이 이루어지는 동작들은 대부분 비동기 통신이다. 비동기 통신을 하기 위해서는 클라이언트가 서버로 요청 메시지의 body에 데이터를 담아서 보내야 하고, 서버도 클라이언트에 응답하기 위해서 body에 데이터를 담아 보내야한다.이 때의 body를 각각 Request Body와 Response Body라고 부르는데, 이러한 body에 담기는 데이터 형식은 JSON이다. @RequestBody 어노테이션은 이러한 비동기 통신에서 쓰이는 body안의 데이터(JSON)를 자바 객체(VO)로 변환해주는 어노테이션이고, @ResponseBody 어노테이션은 보내려는 자바 객체(VO)를 데이터객체(JSON)로 바꿔 body안에 넣어주는 어노테이션이다. @Controller 와 @RestContr.. 2025. 1. 21. [Spring] @Scheduled로 RefreshToken 블랙리스팅하기 2024.11.27 - [# Study/Spring] - [Spring] Spring Security + JWT 구현 해보기 (다중 토큰) (2) [Spring] Spring Security + JWT 구현 해보기 (다중 토큰) (2)Spring Security + JWT 다중토큰 코드를 작성하려고 한다.우선, 이전 Srping Security + JWT 단일토큰 포스팅의 코드를 가져와 수정하여 작성할 것이기 때문에 코드를 보려면 링크를 따라가면 확인 할 수 있jiy0ung.tistory.com 이전 포스팅인 Spring Security + JWT 다중토큰 로그인을 공부하면서 문제점을 발견했다.로그인을하고 로그아웃을 하지 않으면 재로그인시 RefreshToken이 또 생성되어서 한 ID의 RefreshT.. 2024. 11. 30. [Spring] Spring Security + JWT 구현 해보기 (다중 토큰) (2) Spring Security + JWT 다중토큰 코드를 작성하려고 한다.우선, 이전 Srping Security + JWT 단일토큰 포스팅의 코드를 가져와 수정하여 작성할 것이기 때문에 코드를 보려면 링크를 따라가면 확인 할 수 있다.https://jiy0ung.tistory.com/26 [Spring] 스프링 시큐리티 JWT 구현 해보기 (단일 토큰)스프링 시큐리티를 활용하여 JWT 기반의 인증/인가를 구현하고, MySQL 데이터베이스를 활용하여 회원 정보 저장을 해볼 것이다.서버는 웹 페이지를 응답하는 것이 아닌 API 클라이언트 요청을 통해jiy0ung.tistory.com 이 코드에서 다중 토큰으로 변경을 위해 수정 할 부분은 로그인 성공 시 처리 부분과 JWT 검증 필터 부분이다.로그인 성공 시.. 2024. 11. 27. [Spring] Spring Security + JWT 구현 해보기 (다중 토큰) (1) 이전 포스팅에서 스프링 시큐리티와 JWT를 사용하여 단일 토큰 인증/인가에 대해서 실습하였다. 이전 포스팅https://jiy0ung.tistory.com/26 [Spring] 스프링 시큐리티 JWT 구현 해보기 (단일 토큰)스프링 시큐리티를 활용하여 JWT 기반의 인증/인가를 구현하고, MySQL 데이터베이스를 활용하여 회원 정보 저장을 해볼 것이다.서버는 웹 페이지를 응답하는 것이 아닌 API 클라이언트 요청을 통해jiy0ung.tistory.com 이어서 다중토큰(RefreshToken, AccessToken)에 대해 알아보려한다. 스프링 시큐리티 JWT 단일 토큰은 아래와 같이 사용된다.로그인 성공 JWT 발급 : 서버측 -> 클라이언트로 JWT 발급권한이 필요한 모든 요청 : 클라이언트 ->.. 2024. 11. 26. [Spring] Spring Security + JWT 구현하기 (단일 토큰) HTTP는 기본적으로 Stateless를 지향한다.(무상태 프로토콜) 클라이언트와 서버 간의 각 요청은 독립적으로 처리되며, 서버는 이전 요청에 상태를 기억하지 않는다.이 특성 덕분에 서버의 확장성이 높고 대량의 트래픽이 발생해도 대처할 수 있고, 서버가 분리 되어 있는 경우 특정 DB/서버에 의존하지 않아도 인증할 수 있는 장점이 있다.하지만, state-ful(세션)방식보다 비교적 많은 양의 데이터가 반복적으로 전송되면 네트워크 성능 저하가 발생할 수 있고, 데이터 노출로 인한 보안적인 문제가 존재한다. 이 단점을 보완하기 위해 데이터 압축 및 서명을 위해 JWT를 사용한다. 스프링 시큐리티를 활용하여 JWT 기반의 인증/인가를 구현하고, MySQL 데이터베이스를 활용하여 회원 정보 저장을 해볼 것이.. 2024. 11. 26. [Spring] Spring Security 개념과 작동방식 00. 시작하며이전에 2024.05.29 - [# Study/Spring] - [Spring] Spring Security, JWT 간단 정리 써놓은 포스팅을 보면 너어어어무 간단하게 정리만 해둔 것 같아서 공부하면서 정리하려고 한다. Spring Security에 개념과 작동방식에 대해 알아보려한다.01. Spring Security 란?Spring Security는 Spring 프로젝트에서 애플리케이션의 인증, 인가 등의 보안을 담당하는 스프링의 하위 프레임워크다. 인증과 인가인증(Authentication): 애플리케이션에 접근하는 유저의 신원을 확인하는 과정인가(Authorization): 유저가 어떠한 자원(resource)에 접근할 수 있는지 검증하는 과정02. Spring Security 사.. 2024. 11. 16. [AWS] AWS EC2 배포 후 Ubuntu 서버 백그라운드 실행 AWS EC2에서 서버 배포 시 Spring boot로 구현한 jar를 실행 시키고나서 터미널 창을 종료하면,로그인된 서버 세션이 끊어지게 된다.이런 문제를 해결하기 위해서 백그라운드에서 프로세스를 실행시키고 터미널창을 종료하면 스프링 서버가 지속될 수 있다. 나는 SSH 서버에 접속한 후, jar 파일이 있는 경로에서 진행했다.프로세스 백그라운드 실행 명령어nohup java -jar [프로젝트명]-0.0.1-SNAPSHOT.jar & 실행 시키고나면 이렇게 뜬다.정상 실행 됐다는 뜻이다. nohup.out은 nohup으로 실행한 애플리케이션의 로그를 볼 수 있는 파일이다.nohup: ignoring input and appending output to 'nohup.out' 백그라운드 로그를 확인하는 .. 2024. 11. 13. [AWS] EIP(탄력적 IP) 개념, 세팅 및 삭제 Elastic IP (탄력적 IP)EIP(Elastic IP Address)는 인터넷을 통해 접속할 수 있는 고정적인 IP 주소를 할당하고, 인스턴스에 연결할 수 있는 서비스다.모든 인스턴스 또는 네트워크 인터페이스에 탄력적 IP 주소를 연결 가능하다.EIP를 할당받고 삭제하기 전 까지 IP 주소를 쭉 유지할 수 있다. 즉, DNS 서버에서 도메인과 IP 주소를 연결해야 할 때, 또는 IP 주소가 바뀌지 않고 계속 유지해야 할 때에는 Elastic IP를 사용하면 된다. Elastic IP (탄력적 IP) 를 사용해야 하는 이유EC2를 올리게 되면 ENI(Elastic Network Interface)가 따라오게 되는데, ENI는 일종의 가상의 랜카드라고 생각하면 된다. ENI는 가상이긴 하지만 랜카드이.. 2024. 11. 13. [AWS] Spring AWS EC2 배포하기 00. AWS 콘솔 로그인 후 AWS Region 설정다른 Region에 인스턴스를 생성하면 서울 Region에서는 확인이 불가능하기 때문에 서울로 설정합니다. 01. 인스턴스 시작AWS 콘솔 탭 > EC2 검색 > EC2 대시보드 > 인스턴스 시작 02. 인스턴스 이름 및 태그 설정EC2 이름 및 태그를 작성합니다. 저는 [MyWebServer]라고 해놨는데 구분가능한 이름으로 설정하면 됩니다.03. AMI (Amazon Machine Image) 세팅 & 인스턴스 유형 선택어떤 종류의 서버로 구성할지 선택합니다.OS 원하는 것이 있다면 원하는것으로 해주시면됩니다. 저는 프리티어가 제공하는 UbuntuLTS 버전으로 진행하겠습니다.다양한 사양에 따라 요금제를 선택할 수 있는데, 프리티어 외 항목으로 선.. 2024. 11. 13. 이전 1 2 3 4 다음