- Project:
Gradle - Groovy
- Language:
Java 17
- Spring Boot:
3.3.5
Spring Web
Spring Data JPA
Spring Security
Spring Validation
- Packaging:
Jar
- template engine :
thymeleaf
- DataBase :
MySQL Driver
24.11.21 - 24.11.28
1주안에 기능이 돌아가게끔 하는 것에 집중
적용 방법에 집중
Spring Security에서 로그인 성공 후, 인증된 사용자의 정보를 관리하기 위해 UserDetails 객체를 세션에 저장하는 이 과정에서 Serializable 문제가 발생. Spring Security에서 로그인 성공 시, UserDetails 객체가 세션에 저장되고, 이 과정에서 객체를 직렬화 가능한 형태로 변환해야 하는데, 직렬화가 불가능한 필드가 있거나 Serializable 인터페이스를 구현하지 않은 경우 문제가 발생하게 된다는 것. 직렬화가 필요한 이유는 세션 데이터를 여러 서버 간 공유하거나 외부 저장소에 저장할 때 필수적이기 때문. UserDeatils에 직렬화 인터페이스를 추가해줌.
- 객체 → 직렬화 → 바이트 스트림 (01010101) 객체를 파일, 네트워크 등 외부 저장소에 저장하거나 전송할 수 있도록 바이트 형태로 변환.
- 바이트 스트림 (01010101) → 역직렬화 → 객체 바이트 데이터를 다시 원래의 Java 객체로 복원.
스파게티 코드 처음부터 기능에 욕심내지말고, 틀을 구축한 후에, 필요한 것을 찾고 분리하면서 체계적으로 개발하는게 중요하다는 것을 느낌. 화면 구현에 있어서 조금 힘들어서, chat 도움을 받았고, 졸작이후 협업이 없어, 더 많은 협업을경험해보고 싶음.
- 관리자와 유저 분리
- 로그인 상태 관리,유지 JSESSIONID + remember-me
- 브라우저 종료 → JSESSIONID 삭제 → 세션 종료 브라우저 종료 후 재접속 → remember-me 쿠키로 자동 로그인 tokenValiditySeconds 시간 경과 → 쿠키 만료 → 재로그인 필요
- 장바구니에서 주문