Skip to content

HeoJeongHyeon/myMall

Repository files navigation

개인공부용 프로젝트

개발환경

  • 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 시간 경과 → 쿠키 만료 → 재로그인 필요
  • 장바구니에서 주문

ERD

image

이미지

화면

  • 로그인 image

  • 회원가입 image

  • 회원화면 image

  • 상품 목록 image

  • 상품 상세 image

  • 장바구니 image

  • 주문서작성 image

  • 주소 추가 image

  • 주문 image

  • 관리자 페이지 image

  • 상품 등록 image

About

myStudy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published