inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코드로 배우는 React 19 with 스프링부트 API서버

서비스계층과 컨트롤러(3) 질문있습니다.

65

zzzzz

작성한 질문수 192

0

  1. 서비스계층과 컨트롤러(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);
}
  1. CustomFileUtil에서 saveFiles메소드에서 List<String> uploadNames = new ArrayList<>();  배열을 선언하고

     

    ProductServiceImp에서는 product.clearList();로 있던 배열에서 내용을 지우면서 사용하는데요.

     

     

    CustomFileUtil클래스 에서 데이터 베이스 1행에 저장할 리스트 생성해주고 그 리스트를 수정하는 역할이 product.clearList(); 인가요?

react spring-boot jpa jwt redux-toolkit

답변 2

0

구멍가게코딩단

  1. 다시 보니 좀 더 정확히 표현했어야 했네요.. 죄송합니다. 정확히는 화면을 처리하는 컨트롤러에서 업로되는 파일에 UUID값을 결정한다는 의미였습니다.

     

  2. 엔티티가 가지고 있는 uploadNames는 첨부 파일 테이블에 각 행에 들어가는 데이터가 맞습니다. 상품 수정시에는 기존의 상품 데이터는 의미가 없기 때문에 모두 삭제하도록 하기 위해서 clearList( )를 실행했습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. zzzzz님.

질문해주신 내용에 대한 이해를 돕기 위해 아래와 같이 간단하게 설명드리겠습니다.

첫 번째 질문: uuid값은 화면쪽에서 처리되면서 붙는다는 의미

이 강의에서 uuid는 파일의 고유한 식별자를 생성하기 위해 사용됩니다. 파일 업로드 시 파일 이름이 중복되거나 충돌할 가능성을 방지하기 위해 고유한 uuid를 파일 이름에 추가하여 저장합니다. 이 과정은 일반적으로 클라이언트 측(화면)에서 처리됩니다. 즉, 사용자가 파일을 업로드할 때 클라이언트 측에서 uuid를 생성하여 파일 이름에 붙이고 서버에 전송합니다.

두 번째 질문: product.clearList();의 역할

CustomFileUtilsaveFiles 메소드 내의 코드와 ProductServiceImplproduct.clearList(); 관련 설명입니다:

  • CustomFileUtil의 saveFiles 메소드 역할: 주어진 파일 리스트(MultipartFile)의 데이터를 처리하고 이를 파일로 저장한 후 해당 파일명(혹은 식별자들)을 리스트로 반환하는 기능을 합니다. 이때 반환되는 리스트는 저장된 파일들의 식별자를 포함합니다.

  • product.clearList();의 역할: Product 객체 내에서 관련 파일 리스트(혹은 이미지를 추가적으로 저장하는 리스트)를 초기화(클리어)하는 작업을 수행하는 역할입니다. 이렇게 초기화하는 이유는 현재 저장된 값들(예: 이전 파일 목록)을 제거하고 새로운 파일 목록을 추가할 준비를 하기 위함입니다.

CustomFileUtil에서 파일 저장용 리스트를 초기화하고 관리하는 부분과 실제 데이터베이스에 저장된 정보를 갱신하는 작업은 ProductServiceImpl 내의 clearList와 그 이후 단계가 수행합니다. clearList는 기존에 있던 파일 정보를 지운 후, 새로운 파일 정보를 추가하거나 갱신할 때 쓰입니다.

이전에 유사한 질문과 관련하여 파일 업로드와 리스트 관리에 대해 다루어진 답변이 있습니다:
- 서비스계층과 컨트롤러(3) 상품수정에 대한 답변을 참고해 보실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

동일하게 실습하는데 이상하게 페이지를 찾지 못하네요..

0

72

2

22. REST 방식 컨트롤러 만들기(2), 29. 등록처리 부분 질문이 있습니다.

0

74

2

37강. 강의수업듣다 질문드립니다.

0

56

2

TodoDTO test 함수

0

80

3

강사님 오타 있음요

0

77

2

No 1. 교제(ppt) soruce 복붙 문제 의 건

0

94

4

No 1. 교제(ppt) soruce 복붙 문제 의 건

0

70

3

17강 문의드립니다.

0

44

1

카카오 연동설정이 이제 안되는거 같아요

0

187

2

8장 마지막 강의 시 오류

0

98

4

혹시 뭐가 문제인지 알 수 있나요?

0

87

2

챕터: React-Router 설정

0

58

2

백)TODO관련

0

56

2

마리아 db 설치중 포트를 이미 사용중이라고 합니다

0

109

2

이강의 듣고 소화시켰다면 몇년차 정도 개발자라고 할수 있을까요?

0

105

1

CSR , SSR 의 수요 궁금증 질문

0

81

2

섹션5부터...

0

71

1

간단한 코드 질문!!

0

59

2

tbl_todo 질문입니다

0

64

2

수업 외 질문인데 'tbl'이 무슨 의미인가요???

0

288

2

엔티티클래스에서 질문입니다

0

77

2

수정시 writer값이 삭제되는 오류

0

41

2

교안 31 오타 수정해주세요

0

62

2

쿠키에 accessToken, refreshToken을 담고, 조회 시에 undefined

0

78

1