작성
·
30
0
서비스계층과 컨트롤러(3)-상품수정 5분 42초에서
uuid값은 화면쪽에서 처리되면서 붙는다는게 무슨 의미인지 알 수 있을까요?
@Override
public void modify(ProductDTO productDTO) {
//step1 read
Optional<Product> result = productRepository.findById(productDTO.getPno());
Product product = result.orElseThrow();
//change pname, pdesc, price
product.changeName(productDTO.getPname());
product.changeDesc(productDTO.getPdesc());
product.changePrice(productDTO.getPrice());
product.changeKeyword(product.getKeyword());
//upload File -- clear first 내용이 있을 수도 있기 때문에.
product.clearList();
List<String> uploadFileNames = productDTO.getUploadFileNames();
if(uploadFileNames != null && uploadFileNames.size() > 0 ){
uploadFileNames.stream().forEach(uploadName -> {
product.addImageString(uploadName);
});
}
productRepository.save(product);
}
CustomFileUtil에서 saveFiles메소드에서 List<String> uploadNames = new ArrayList<>(); 배열을 선언하고
ProductServiceImp에서는 product.clearList();로 있던 배열에서 내용을 지우면서 사용하는데요.
CustomFileUtil클래스 에서 데이터 베이스 1행에 저장할 리스트 생성해주고 그 리스트를 수정하는 역할이 product.clearList(); 인가요?
답변 2
0
다시 보니 좀 더 정확히 표현했어야 했네요.. 죄송합니다. 정확히는 화면을 처리하는 컨트롤러에서 업로되는 파일에 UUID값을 결정한다는 의미였습니다.
엔티티가 가지고 있는 uploadNames는 첨부 파일 테이블에 각 행에 들어가는 데이터가 맞습니다. 상품 수정시에는 기존의 상품 데이터는 의미가 없기 때문에 모두 삭제하도록 하기 위해서 clearList( )를 실행했습니다.
0
안녕하세요, 인프런 AI 인턴입니다. zzzzz님.
질문해주신 내용에 대한 이해를 돕기 위해 아래와 같이 간단하게 설명드리겠습니다.
uuid값은 화면쪽에서 처리되면서 붙는다는 의미
이 강의에서 uuid
는 파일의 고유한 식별자를 생성하기 위해 사용됩니다. 파일 업로드 시 파일 이름이 중복되거나 충돌할 가능성을 방지하기 위해 고유한 uuid
를 파일 이름에 추가하여 저장합니다. 이 과정은 일반적으로 클라이언트 측(화면)에서 처리됩니다. 즉, 사용자가 파일을 업로드할 때 클라이언트 측에서 uuid
를 생성하여 파일 이름에 붙이고 서버에 전송합니다.
product.clearList();
의 역할CustomFileUtil
의 saveFiles
메소드 내의 코드와 ProductServiceImpl
의 product.clearList();
관련 설명입니다:
CustomFileUtil의 saveFiles
메소드 역할: 주어진 파일 리스트(MultipartFile
)의 데이터를 처리하고 이를 파일로 저장한 후 해당 파일명(혹은 식별자들)을 리스트로 반환하는 기능을 합니다. 이때 반환되는 리스트는 저장된 파일들의 식별자를 포함합니다.
product.clearList();
의 역할: Product
객체 내에서 관련 파일 리스트(혹은 이미지를 추가적으로 저장하는 리스트)를 초기화(클리어)하는 작업을 수행하는 역할입니다. 이렇게 초기화하는 이유는 현재 저장된 값들(예: 이전 파일 목록)을 제거하고 새로운 파일 목록을 추가할 준비를 하기 위함입니다.
CustomFileUtil
에서 파일 저장용 리스트를 초기화하고 관리하는 부분과 실제 데이터베이스에 저장된 정보를 갱신하는 작업은 ProductServiceImpl
내의 clearList
와 그 이후 단계가 수행합니다. clearList
는 기존에 있던 파일 정보를 지운 후, 새로운 파일 정보를 추가하거나 갱신할 때 쓰입니다.
이전에 유사한 질문과 관련하여 파일 업로드와 리스트 관리에 대해 다루어진 답변이 있습니다:
- 서비스계층과 컨트롤러(3) 상품수정에 대한 답변을 참고해 보실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.