본문 바로가기

전체 글129

UserDetailsService와 UserDetails에 대해 오늘 프로젝트를 하면서 스프링 시큐리티에 대해서 다시 복습하는 시간을 가졌다. 예전에 프로젝트를 하면서 스프링 시큐리티에 대해서 굉장히 대충 공부하고 넘어갔는데 , 이번에는 좀 자세하게 들여다봤다. 우선 DB에 들어있는 사용자들을 불러와서 이메일과 패스워드 , 권한 관련 설정을 인터페이스가 있다 . 바로 UserDetailsService 라는 인터페이스다 . 아래와 같은 모습을 하고 있다. public interface UserDetailsService { UserDetails loadUserByUsername(String username) throws UsernameNotFoundException; } 그리고 이 인터페이스를 구현한 구현체(UserDetailsManager)와 상속받아 만든 클래스(Jd.. 2024. 4. 1.
SpringBoot-Movie-Thymeleaf-Project - 5 1. 회원가입 폼 만들기 2. 저장 버튼 눌렀을때 회원가입 되도록 만들 회 원 가 입 사용자명 이메일 We'll never share your email with anyone else. 비밀번호 Check me out 저장 위의 코드로 회원가입 폼을 만들었다. 아래와 같이 나온다. 이제 타임리프로 값이 넘어가도록 하고 저장 버튼을 눌렀을때 form에서 Post 요청이 날아가도록 하면 된다. 회원가입 할 수 있도록 작성하고 Post 요청을 받을시 회원가입이 되도록 한다. @Controller public class SignController { private userServiceImpl userService; public SignController(userServiceImpl userService) { t.. 2024. 3. 31.
JPA에서 인덱스 생성하기 대량의 데이터를 조회하기 위해서는 그냥 조회하는 것이 아닌 인덱스를 추가하여 조회를 하면 더 빠르게 검색을 할 수 있다. 아래와 같이 엔티티를 생성할 때 인덱스를 걸어줄 수 있다. @Table(indexes = {@Index(name = "IDX_USER_EMAIL", columnList = "username,email")}) 그러면 아래와 같이 쿼리문이 나가는 것을 확인할 수 있다. 또한 MySQL에서 인덱스가 적용됐는지 확인할 수 있다. explain 실행계획을 붙여서 확인해보면 위와 같이 나오게 된다. possiblekey가 Null이고 type ALL이면 인덱스를 타지 않고 검색했다는 뜻이다. 아래는 인덱스를 탔을 경우의 예시이다 . 2024. 3. 23.
[Java] java.lang.UnsupportedOperationException 에러 처리 List를 초기화 하지 않고 무엇인가를 넣어주려면 발생하는 에러이다. 오류 발생하여 아래와 같이 수정하였다. 2024. 3. 23.