분류 전체보기72 [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. [TIL] #37. MockMvc [ MockMvc ] : 실제 객체와 비슷하지만 테스트에 필요한 기능만 가지는 가짜 객체를 만들어서 애플리케이션 서버에 배포하지 않고도 스프링 MVC 동작을 재현할 수 있는 클래스 JUnit 5: 단위테스트 프레임워크JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage - JUnit Platform : 테스트를 시작하기 위한 런처 제공 - JUnit Jupiter : 테스트 작성을 위한 새로운 프로그래밍 모델과 확장 모델 조합 - JUnit Vintage : Junit 4와 Junit3가 잘 동작하도록 지원// build.gradledependencies { // JUnit5 testImplementation("org.springframewo.. 2024. 6. 18. 이전 1 2 3 4 5 ··· 18 다음