Road To Clean Code
Before
private void extractFiles(List<MultipartFile> files, Board saveBoard) throws IOException {
for(MultipartFile file : files){
if(!(file.getContentType().equals("image/jpeg") || file.getContentType().equals("image/png"))){
throw new RuntimeException("해당 첨부파일 형식이 올바르지 않습니다.");
}
String originalFilename = file.getOriginalFilename();
String saveFileName = createSaveFileName(originalFilename);
file.transferTo(new File(getFullPath(saveFileName)));
BoardImageRequestDto boardImageRequestDto = BoardImageRequestDto.builder()
.uploadImageName(originalFilename)
.storeImageName(saveFileName)
.board(saveBoard)
.build();
BoardImage boardImageEntity = boardImageRequestDto.toEntity(boardImageRequestDto);
boardImageRepository.save(boardImageEntity);
}
}After
private BoardImageRequestDto extractReviewImageFilesToDto(List<MultipartFile> files, Board saveBoard) throws IOException {
BoardImageRequestDto boardImageRequestDto = new BoardImageRequestDto();
for(MultipartFile file : files){
if(!(file.getContentType().equals("image/jpeg") || file.getContentType().equals("image/png"))){
throw new RuntimeException("해당 첨부파일 형식이 올바르지 않습니다.");
}
String originalFilename = file.getOriginalFilename();
String saveFileName = createSaveFileName(originalFilename);
file.transferTo(new File(getFullPath(saveFileName)));
boardImageRequestDto.builder()
.uploadImageName(originalFilename)
.storeImageName(saveFileName)
.board(saveBoard)
.build();
}
return boardImageRequestDto;
}
private void uploadReviewImageByDto(BoardImageRequestDto boardImageRequestDto){
BoardImage boardImageEntity = boardImageRequestDto.toEntity(boardImageRequestDto);
boardImageRepository.save(boardImageEntity);
}Modification
메서드 이름
기존의 의미를 알아보기 힘든 메서드 명 대신 해당 메서드의 성격을 더 명확하게 보여줄수있는 이름으로 수정하였다.
책임 분할
단순히 extractFiles 메서드 안에 이미지 파일을 가져와서 가공하는 로직, 가공한 파일을 Dto에 담는 로직, 해당 dto를 엔티티로 만들어 Repository 에 저장하는 로직 까지 너무 많은 책임들이 담겨있었다.
그래서 파일 가공 & 해당 정보로 Dto 생성 을 묶고 엔티티화 해서 저장하는 로직은 따로 메서드화 해서 분리하였다.
Last updated