😎 STS3 Spring 쇼핑몰

😎 STS3 Spring 쇼핑몰

STS3 쇼핑몰 프로젝트[27] 업로드 이미지 정보 등록 - 4(트랜잭션 적용)

트랜잭션(Transaction) 적용 Service 단계의 swanEnroll() 메서드는 내부적으로 각각 쿼리를 실행하는 Mapper 단계의 메서드를 2개 호출합니다. 그런데 앞서 작성된 코드에서 2개의 Mapper 메서드 중 하나의 메서드에서 에러가 발생한다면, 에러가 발생하지 않은 메서드의 쿼리문만 실행되고, 에러가 발생한 메서드의 쿼리문은 실행되지 않게 됩니다. 만약 해당 상황이 결제와 관련됐다고 가정한다면, 매우 심각한 문제가 될 것입니다. 이러한 문제가 발생할 수 있는 상황에서 사용할 수 있는 기능이 바로 스프링의 트랜잭션(Transaction) 기능입니다. 트랜잭션 기능을 사용하면, 내부적으로 2개 혹은 그 이상의 작업 단위로 묶인 메서드가 하나의 단위처럼 동작할 수 있게 되고, 그 결과를 ..

😎 STS3 Spring 쇼핑몰

STS3 쇼핑몰 프로젝트[27] 업로드 이미지 정보 등록 - 3

순서 1. AdminServiceImpl.java 2. 실행 테스트 1. AdminServiceImpl.java Mapper 단계에서 imageEnroll() 메서드는 하나의 이미지 관련 데이터(AttachImageVO)를 전달받아 처리하도록 작성했습니다. 문제는 SwanVO 클래스엔 여러 개 이미지 관련 데이터를 처리할 수 있도록 List 타입의 참조 변수, imageList가 선언되어 있다는 것입니다. 그렇기 때문에 imageEnroll() 메서드가 데이터를 처리할 수 있도록 imageList를 통째로 넘겨주면 안 되고, imageList의 각 요소들을 한 개씩 넘겨줘야 합니다. 따라서 imageList의 요소 크기만큼 반복하여 imageEnroll() 메서드를 호출할 수 있도록 for문을 사용했습니..

😎 STS3 Spring 쇼핑몰

STS3 쇼핑몰 프로젝트[27] 업로드 이미지 정보 등록 - 2

순서 1. 방향성 2. imageEnroll() Mapper 3. swanEnroll() 적용 [Mapper 단계] 1. 방향성 제일 먼저 이미지 정보 테이블에 삽입 쿼리를 실행하는 Mapper 메서드인 imageEnroll()를 작성했습니다. 보통의 경우 imageEnroll() 메서드를 호출하는 Service 단계의 메서드를 새로 작성했지만, 이번 경우엔 상품 정보 등록 Mapper 메서드를 호출하는 Service 단계의 swanEnroll() 메서드에서 imageEnroll() 메서드를 호출하도록 했습니다. Service 단계의 swanEnroll() 메서드는 뷰(VIEW)로부터 전달받은 데이터 SwanVO를 활용하여 상품 정보와 이미지 정보를 DB에 등록하는 작업을 하게 했습니다. 필요한 prod..

😎 STS3 Spring 쇼핑몰

STS3 쇼핑몰 프로젝트[27] 업로드 이미지 정보 등록 - 1

순서 1. IMAGE 테이블 생성 2. SwanVO.java 3. 태그 추가 1. IMAGE 테이블 생성 이미지 업로드로 생성된 이미지에 대한 정보를 DB에 등록할 수 있도록 테이블을 생성했습니다. 해당 테이블에 저장될 이미지 정보는 상품 정보에 대한 이미지 정보이기 때문에 product_id라는 칼럼을 추가하여 오직 상품 테이블의 상품 아이디가 존재하는 데이터만 등록할 수 있도록 외래 키를 통해 제약 사항을 추가했습니다. DB에 아래의 명령을 통해 상품 이미지 테이블(IMAGE)을 생성합니다. 기본 키는 UUID, PRODUCT_ID 칼럼은 PRODUCT테이블에 존재하는 PRODUCT_ID 값만 등록할 수 있도록 외래 키로 지정했습니다. ------------------------------------..

개발자 린다씨
'😎 STS3 Spring 쇼핑몰' 카테고리의 글 목록