본문 바로가기

Til41

[TIL] #41. H2 데이터베이스 [ H2 DB 사용 방식 ] 1. Server Mode직접 엔진을 설치하여 사용하는 방식 (다운로드 해야 함)애플리케이션과 상관 없는 외부에서 DB 엔진이 구동됨 (실행주체 = 외부)데이터가 외부에 저장되므로, 애플리케이션을 종료해도 데이터가 사라지지 않는다 (DB 저장 위치 : 로컬(파일 시스템))사용 용도 : 배포공식 다운로드 : https://www.h2database.com/html/main.html    2. In-memory Mode엔진을 설치하지 않고 애플리케이션 내부의 엔진을 작동하는 방식build.gradle / application.properties 설정을 통해 실행 가능하다 (실행 주체 = 스프링)애플리케이션을 실행하면 DB엔진이 함께 실행되고, 종료하면 함께 종료된다 (휘발성)데이.. 2024. 7. 1.
[TIL] #40. AccessToken vs. RefreshToken [ JWT ] : User의 신원이나 권한을 결정하는 정보를 담고 있는 데이터 조각  - 비밀키로 토큰을 암호화하여 인증하는 방식을 사용하기 때문에, 클라이언트와 서버는 토큰을 사용해서 안전하게 통신할 수 있다. 그러나 토큰을 탈취 당했을 경우, 탈취한 사람이 토큰을 이용하여 인증을 통과할 수 있기 때문에토큰의 유효기간이 필요하다.유효기간을 너무 짧게 설정하면 사용자가 로그인을 자주 해야 하므로 불편하고,유효기간을 길게 설정하면 보안 위험이 있기 때문에유효기간이 다른 2개의 토큰(Access Token과 Refresh Token)을 두는 방법으로 문제를 해결할 수 있다.  Access Token: 특정 API에 접근할 수 있도록 임시로 권한을 부여하는 토큰Refresh Token: Access Token.. 2024. 6. 20.
[TIL] #39. 회원가입 구현 [ Signup process ] User 클래스 생성 : username, password, status,,,UserController > signupSignupRequestDto 생성UserService > signupUserRepositoryJwtUtil : Token 생성, Header에서 jwt 가져오기, Token 검증security > UserDetailsImpl, UserDetailsServiceImpl LoginRequestDtoJwtAuthentificationFilter : Header에 토큰을 담아줌JwtAuthorizationFilter : Token을 가져와서 확인 - 검증WebSecurityConfig : 비밀번호 암호화+) validation으로 조건 확인+) 회원가입은 인증.. 2024. 6. 20.
[TIL] #38. Validation [ Validation ] : HTTP 요청이 정상인지 검증Front 검증- 유저가 조작할 수 있기 때문에 보안에 취약- 그럼에도 필요하다 Server 검증- front 없이 서버에서만 검증 = 유저 사용성이 떨어짐.- API Spec을 정의해서 validation 오류를 response 예시에 남겨줘야 한다.- 서버 검증은 필수 Database 검증- Default, Not Null ,,,   [ BindingResult ] : validation 오류를 보관하는 객체  @ModelAttribute를 이용해 매개변수를 바인딩할 때 발생한 오류를 보관하는 객체이다. - BindingResult 파라미터는 @ModelAttribute 파라미터 뒤에 와야 한다.    [ Bean Validation .. 2024. 6. 18.