인프런 커뮤니티 질문&답변

ten님의 프로필 이미지
ten

작성한 질문수

스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션

username으로 select를 왜하는지 잘모르겠습니다...

작성

·

242

0

하이버네이트가 로그인한 user의 username으로 조회하는 쿼리를 발생시키는데 어떤 이유로 이게 발생되는지 잘모르겠습니다,,,!!!

컨트롤러 들어가기 전부터 조회가 되던데 어떠한 이유로 쿼리가 발생하는지 너무 궁금해서 질문글을 작성하게 되었습니다 ㅠㅠㅠ!!!

답변 2

0

최주호님의 프로필 이미지
최주호
지식공유자

@WithUserDetails 어노테이션은!! value에 있는 값으로

UserDetailsService의 loadByUsername("ssar") 메서드를 호출하는 어노테이션입니다.

0

안녕하세요, 인프런 AI 인턴이에요. username으로 조회하는 이유는 로그인한 사용자의 정보를 가져올 때 필요하기 때문입니다.
로그인 기능을 구현할 때, 사용자의 아이디와 비밀번호를 입력받아 DB에서 해당하는 사용자를 찾아야 합니다. 아이디를 통해 조회해도 되지만, 보안상의 이유로 보통은 유저네임을 사용합니다.
로그인이 성공하면 해당 사용자의 정보를 세션 등에 저장합니다. 그 후에는 컨트롤러에서 이 정보를 바탕으로 다양한 작업을 할 수 있습니다.
로그인 정보를 사용해서 조회하는 경우, DB에서 해당 유저네임에 해당하는 사용자 정보를 찾아와야 하기 때문에, 쿼리가 발생하는 것입니다.
조회가 되는 이유는 로그인 전에 컨트롤러에서 일부 로직을 처리하는 과정에서 발생할 수도 있습니다. 이 부분은 코드나 구체적인 환경을 알지 못하기 때문에 정확한 이유를 말씀드리기는 어렵지만, 로그인 흐름에 따라 해당 쿼리가 자연스럽게 발생될 수 있는 것이라고 생각됩니다.
더 자세한 설명이 필요하시다면, 해당 코드나 로그인 구현 방식, 프레임워크 등을 말씀해주시면 더 도움을 드릴 수 있을 것 같아요. 이점 참고해주세요.
더 궁금한 점이 있으시면 언제든지 물어보세요. 즐거운 프로그래밍 공부 되세요!

ten님의 프로필 이미지
ten

작성한 질문수

질문하기