Spring Security의 인증과 인가 흐름
1. 이번 주에 배운 기술이나 개념 중 가장 기억에 남는 3가지는 무엇인가요?
이번 주에 가장 기억에 남는 개념은 첫째, Spring Security의 인증과 인가 흐름입니다. SecurityFilterChain을 통해 /login, /todos/** 같은 URL별 접근 권한을 설정하고, 로그인 성공/실패/로그아웃 처리를 직접 지정하는 방식이 인상 깊었습니다.
둘째, BCrypt를 이용한 비밀번호 해시화입니다. 비밀번호를 평문으로 저장하지 않고 BCryptPasswordEncoder로 암호화한 뒤 DB에 저장하고, 로그인 시 Spring Security가 비교하도록 구성하는 과정을 배웠습니다.
셋째, 권한에 따른 화면 제어입니다. Thymeleaf의 sec:authorize를 사용해서 ADMIN, USER 권한에 따라 메뉴에 보이는 내용을 다르게 처리할 수 있다는 점이 기억에 남았습니다.
2. 이번 주 과정 중 막혔던 문제나 오류가 있었나요? 어떻게 해결했나요? (없다면 가장 인상 깊었던 실습 내용)
pring Security 로그인 처리에서 입력 필드 이름이 맞지 않으면 인증이 제대로 되지 않는 부분이 헷갈렸습니다. 로그인 폼에서는 usernameInput, passwordInput을 사용하고 있었기 때문에, Security 설정에서도 .usernameParameter("usernameInput"), .passwordParameter("passwordInput")으로 맞춰줘야 했습니다.
또한 H2 콘솔을 사용할 때 Spring Security 설정 때문에 화면이 정상적으로 열리지 않을 수 있었는데, /h2-console/**을 permitAll()로 허용하고 frameOptions를 sameOrigin으로 설정해서 해결했습니다.
3. 이번 주 수업 진도 속도, 강사님의 강의 스타일, 혹은 반 분위기는 어땠나요?
이번 주 수업은 Spring Security, DB 인증, 권한 처리까지 이어져서 내용이 조금 빠르게 느껴졌습니다. 하지만 실습 코드로 직접 로그인, 로그아웃, 권한별 접근 제한을 구현하면서 흐름을 따라갈 수 있었습니다. 강사님은 설정 코드가 왜 필요한지 단계별로 설명해주셔서 복잡한 보안 설정을 이해하는 데 도움이 되었습니다.
4. 다음 주에는 어떤 부분을 보완하고 싶나요?
UserDetailsService, GrantedAuthority, SecurityFilterChain이 각각 어떤 역할을 하는지 복습할 필요가 있다고 느꼈습니다. 또한 단순히 예제 코드를 따라 치는 것에서 끝나지 않고, 사용자 회원가입 기능이나 권한별 페이지 이동 같은 기능을 직접 추가해보며 응용력을 키우고 싶습니다.
댓글
댓글이 없습니다.
