Spring Security 의존성 추가만해도 모든 요청에 대한 인증이 필요함
01. UserDetailService
- UserDetailService 인터페이스는 DB에서 회원 정보를 가져오는 역할 담당
- loadUserByUserName() 메서드가 존재, 회원 정보를 조회하여 사용자의 정보와 권한을 갖는 UserDetail 인터페이스를 반환한다
- 스프링 시큐리티에서 UserDetailService를 구현하고 있는 클래스를 통해 로그인 기능을 구현한다고 생각
02. UserDetail
- 스프링 시큐리티에서 회원의 정보를 담기 위해서 사용하는 인터페이스는 UserDetail
- 해당 인터페이스를 직접 구현하거나 스프링 시큐리티에서 제공하는 User 클래스를 사용한다
- User 클래스는 UserDetail 인터페이스를 구현하고 있는 클래스
03. 로그인/로그아웃 구현하기
- 로그인 기능 구현을 위해 기존에 만들었던 MemberService가 UserDetailService를 구현하도록 수정
04. 기타 사항 기재
- classpath
- Spring Boot에서 classpath는 애플리케이션을 실행할 때 클래스 파일, 프로퍼티 파일, 리소스 파일 등을 찾을 때 사용되는 경로를 나타낸다
- class 파일을 포함하는 bin 디렉토리
- src/main/resources 디렉토리의 리소스 파일
- Maven의 경우 Maven Dependency에 있는 라이브러리 파일
- Spring Boot에서 classpath는 애플리케이션을 실행할 때 클래스 파일, 프로퍼티 파일, 리소스 파일 등을 찾을 때 사용되는 경로를 나타낸다
- @AutoConfigureMockMvc
- Mock 테스트시 필요한 의존성을 제공하는 어노테이션
- MockMvc
- 애플리케이션 서버의 구동 없이 Spring MVC 동작을 재현할 수 있는 모의(가짜) 객체
- spring-boot-starter-test 라이브러리에 MockMvc가 포함되어 있음
- MockMvc를 사용하기 위한 방법
- @SpringBootTest + @AutoConfigureMockMvc 조합으로 사용
- @SpringBootTest
- 통합 테스트시에 사용하는 어노테이션 (모든 빈을 로드, 리소스 많이 먹음)
- @AutoConfigureMockMvc
- Mock 테스트시 필요한 의존성을 제공하는 어노테이션
- @Controller외에도 @Service @Repository 붙은 객체들까지 모두 메모리에 올림
- @SpringBootTest
- @WebMvcTest + MockBean 조합으로 사용
- 컨트롤러 역할만을 테스트
- Web Layer에 해당하는 빈만 빠르게 생성
- Security, Filter, Interceptor, Request/Response Handling, Controller 등
- @Component 등록하지 않기에 필요한 빈은 직접 의존성 주입 해주어야 함
- 테스트가 훨씬 빠름
- 통합 테스트에서 진행이 어려운 경우를 Mock으로 테스트 가능
- Mock 객체를 사용, 실제 동작과 차이가 있음
- Mocking 메서드 변경 시 수정 필요
- @SpringBootTest + @AutoConfigureMockMvc 조합으로 사용
'실습 > 백견불여일타 스프링부트 쇼핑몰 프로젝트' 카테고리의 다른 글
[백견불여일타 스프링 부트 쇼핑몰] 연관관계 매핑 종류 (0) | 2023.04.25 |
---|---|
[백견불여일타 스프링 부트 쇼핑몰] Thymeleaf (0) | 2023.04.25 |
[백견불여일타 스프링 부트 쇼핑몰] Spring Data JPA (0) | 2023.04.25 |