프로젝트 7

[트러블 슈팅] 스프링 시큐리티에서의 로그인 정보 dto 바인딩 오류

개인 프로젝트를 진행하는 도중 스프링 시큐리티에서 문제가 발생했다. 기존 까지는 로그인 과정을 직접 개발하면서 세션에 멤버 정보를 저장하면서 개발하였지만, 자잘한 문제와 소셜 로그인 로그인 로그아웃에서의 연결에서도 모호한 관계가 되어서 사용 안정성과 디버깅의 편리를 위해서 스프링 시큐리티를 사용하기로 하였다. package GoodPang.goodPang.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;..

프로젝트 2025.01.20

[트러블 슈팅] cascade의 위험성..

쇼핑몰 프로젝트를 하다가 또 에러에 고통을 받게 되었다.. 멤버의 장바구니에서 장바구니 상품을 삭제하는 기능을 개발하고 있었다.  장바구니와 장바구니 상품은 orphanRemoval로 장바구니 리스트에서 상품을 제거하면, 자동으로 db에 반영되는 방식으로 진행하려고 했고, 쉽게 개발이 될 거라고 예상했다.  그러나 갑자기 ould not execute statement [Cannot delete or update a parent row: a foreign key constraint fails (`goodpang`.`order_item`, CONSTRAINT `FKija6hjjiit8dprnmvtvgdp6ru` FOREIGN KEY (`item_id`) REFERENCES `item` (`id`))] [d..

프로젝트 2025.01.11

[트러블 슈팅] 복잡한 연관관계에서의 삭제

쇼핑몰 프로젝트를 계속 진행하다 상품을 삭제하는 기능을 개발하게 되었다. 상품 엔티티를 삭제하게 되면, 연관되는 엔티티에도 영향을 끼치게 되어서 에러가 발생하였다. 또한 어떤 앤티티는 db에 유지하고 싶고, 어떤 엔티티는 db에서 삭제되기를 원하기도 하였다.   현재 연관관계 매핑은 이렇다. 멤버는 cart와 order와 likeItem 리스트를 가진다. cart는 cartItem 리스트를 가진다.cartItem은 item을 가진다. order은 orderItem 리스트를 가진다.orderItem은 item을 가진다. likedItem은 item을 가진다. item은 그 무엇도 가지지 않는다. 이 상황에서 Item을 삭제했을 때 내가 원하는 것은 다음과 같다.1. Item을 삭제하면2. cart의 car..

프로젝트 2025.01.11

[트러블 슈팅] git pull fatal: Could not read from remote repository.

원격 리포지토리의 코드를 pull로 땡겨서 로컬에 덮어 씌우기 위해git pull main 명령어를 사용했는데 해당 에러가 발생하였다.   원래는 레포지토리 주소가 등록이 안되어 있을 때 생길 수 있는 오류라고 한다.git remote add origin [레포지토리 주소] 위 명령어를 통해 해결할 수 있지만,  나의 경우에는 이미 잘 등록이 되어 있는 상황이었다.   알고 보니, 정말 어이없는 실수였다. git pull origin main을 통해 해결하였다...ㅋㅋㅋ git pull main이라고 적었으니 당연히 안될 수 밖에 없었다..ㅎ

프로젝트 2025.01.03

[트러블 슈팅] 상속관계에서의 builder 패턴

쇼핑몰 작업을 하는 도중 상품 등록에서 builder 패턴에 어려움을 겪었다.package GoodPang.goodPang.domain.item;import jakarta.persistence.DiscriminatorValue;import jakarta.persistence.Entity;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;import lombok.experimental.SuperBuilder;@Entity@DiscriminatorValue("A")@Getter@SuperBuilder@AllArgsConstructor@NoArgsConstructorpublic class Album exte..

프로젝트 2025.01.03

[트러블 슈팅] 일대일 관계에서 save 순서 및 외래키 관리 org.hibernate.TransientObjectException: persistent instance references an unsaved transient instance of

쇼핑몰 프로젝트를 수행하다, 회원가입 하는 동안, 회원을 생성하고, 장바구니를 생성하고 매핑하는 과정에서 오류가 발생했다.//멤버 회원 가입public Member joinMember(MemberRequestDto.JoinDto request) { //로그인 아이디 중복 여부 if (isLoginIdDuplicated(request.getLoginId())) { throw new MemberHandler(ErrorStatus._DUPLICATED_LOGIN_ID); } //멤버 생성 Member member = MemberConverter.toMember(request); //장바구니 생성 Cart cart = CartConverter.toCart(mem..

프로젝트 2025.01.02
반응형