[Spring_gradle](8)
-
HTTP 상태코드에 따른 요구사항 검증
HTTP 상태 코드를 활용하여 클라이언트가 요청을 올바르게 하도록 유도하거나, 요청이 실패했을 때 클라이언트가 재요청하도록 안내하는 두 가지 주요 방식이 있습니다.1. 클라이언트가 요청을 제대로 하게 유도하기서버는 클라이언트의 요청이 잘못된 경우, 400번대 오류 코드를 반환하여 클라이언트가 요청을 수정하도록 유도할 수 있습니다. 클라이언트는 이러한 응답을 통해 어떤 부분이 잘못되었는지 파악하고 요청을 올바르게 수정하여 재시도할 수 있습니다.예를 들어:400 Bad Request: 필수 입력 값이 누락되었거나 형식이 맞지 않을 때 반환하여, 클라이언트가 올바른 형식의 데이터를 다시 요청하도록 유도합니다.409 Conflict: 이미 존재하는 리소스(예: 중복 이메일)와의 충돌이 발생했을 때 반환하여, 클..
2024.11.14 -
UserDetailsServiceImpl와 토큰 기반 인증의 차이점
UserDetailsServiceImpl와 토큰 기반 인증의 차이점UserDetailsServiceImpl의 역할UserDetailsServiceImpl은 Spring Security의 인증 프로세스에서 사용자 정보를 로드하여, 인증에 필요한 정보(사용자 ID, 비밀번호, 권한 등)를 포함한 객체(UserDetails)를 반환합니다.이 정보는 Spring Security가 사용자 인증을 수행할 때 참조되며, 실제 로그인 시점에서 세션 기반으로 관리되거나, 인증된 정보를 기반으로 권한을 확인하는 데 사용됩니다.토큰의 역할토큰은 클라이언트와 서버 간 인증 상태를 유지하기 위한 자격 증명입니다. JWT와 같은 토큰을 사용하면, 클라이언트가 로그인한 후 토큰을 받아 이후 요청마다 해당 토큰을 포함하여 서버에 인..
2024.11.14 -
[JWT] 세션 인증 방식과의 차이점부터 구현하기까지
사용자가 서버에 접근할 때 인증된 사용자인지 확인하는 방법 대표적으로 두가지가 있다. 서버 기반 인증, 토큰 기반 인증 이다.스프링 시큐리티는 세션 기반 인증을 제공해준다. 사용자마다 사용자 정보를 담은 세션을 생성하고 저장해서 인증하는 방식이다. 토큰 기반 인증은 서버에서 토큰을 생성해 클라이언트에게 제공하며, 클라이언트는 받은 토큰을 갖고 있다가 작업을 요청할 때 토큰과 함께 신청한다. 이 때 서버는 토큰만 보고 유효한 사용자인지 검증해서 작업을 한다. 가장 큰 차이점은 서버에서의 역할이다. 서버에서 사용자 정보를 갖고 있는가(세션), 갖고 있지 않는가(토큰). 주요 차이점 요약:서버 상태 유지: 세션 기반 인증에서는 서버가 클라이언트의 세션 상태를 유지하지만, 토큰 기반 인증에서는 서버가 클라이언..
2024.08.22 -
[Spring Security] 개념부터 구현까지
spring security를 구현하려고 하는데, 다른 블로그들 코드와 chat gpt를 참고해서 코드먼저 구현하고 이론을 이해하려고 했는데(대략 학교에서 이론을 배웠기 때문에 대략적인 흐름은 알고 있다고 생각했다) 코드 구조도 제대로 파악이 안되고 이론 개념을 잘 모르겠으니 공부하고자 한다. 스프링부트 백엔드 개발자되기(저자:신선영)3 책을 통해 공부를 하다가, csrf 공격 세션 고정 공격 등 단어를 보다가 보안이 왜 중요한지 자세히 알고 싶어서 영상을 통해 공부하고자 한다. 1. 스프링 시큐리티의 보안 예시1) csrf 공격 - 은행 웹/앱 사이트에서 로그인 하면 나의 세션ID가 할당된다. 이 때, 공격자가 지정한 링크를 클릭하면 내 세션ID정보가 공격자에게 들어가게 된다. 그러면 공격자가 원하는..
2024.08.21 -
[RDS DB] 연결 실패_timed out
Connection to '[나의 RDS 엔드포인트]' was lost and cannot be re-established.What do you want to do?이유: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.외부(카페)에서 DB 연결을 시도했는데 위와 같은 에러가 발생. 보안규칙 문제가 있었다. 인바운드 규칙 편집, 접근가능한 IP 주소 설정을 모든 IP로 변경해주었다. 원래는 모든 IP에서 접근하도록 두면, 보안에 안좋다고 알고 있으나 일단은 연결을 위해서 모든IP..
2024.08.19 -
[API설계] DTO/ENTITY 차이
1. DTO (data transfer object) 먼저 DTO는 데이터 전달용 (계층 간 데이터를 전달하기 위한 객체)으로 본다. web layer service layer 간 데이터 전달한다. getter/setter, 생성자 메서드를 포함하며, 로직이 전혀 없다. DB구조보다는 전송할 데이터를 필요한 부분만 선택해서 단순화한 구조를 따른다. 2. ENTITY ENTITY는 DB 테이블 구조를 직접 반영하는 객체이기 때문에, DB의 CRUD 작업에 사용된다. 한 행(ROW)에 해당하는 데이터를 담고 있다. 비지니스 로직을 포함하지 않는다. 3. 데이터 전달 방식1) 클라이언트에서 DTO 형태로 데이터 전송2) 서버에서 DTO 수신- 클라이언트로부터 DTO형태 데이터를 수신 (전달용 객..
2024.08.13