입문주차 LiveCoding 정리

5w31892p·2022년 12월 21일
0

Spring

목록 보기
7/30

인텔리제이 버전과 맞지 않아 안될 때에는 SDK 변경

  • Entity
    • 유일한 놈
    • 꼭 id를 가지고 있어야 함
  • lombok
    • @Data 쓰지말기
      • 만능키라서 @Setter가 포함되어 있기 때문
      • Setter는 의도치 않게 갑이 바뀔 가능성이 높기 때문에 쓰지 않는 것이 좋음
    • @Getter + @NoArgsConstrutor(기본생성자)
      • Setter없이 값이 꽂히게 함
  • @Transactional
    • 묶어주는 것
    • 관찰하는 것
    • 중간에 실패하면 앞에도 처리를 안함
    • 즉, DB에 반영 안함
    • 처리는 정상적으로 완료되었을 때 처리함

Service는 지시하는 놈, 그러므로 지가 일을 하면 안됨

  • service 지가 비밀번호 올바른지 아닌지 확인하며 일을 함
public DeleteMemoDto deleteMemo(Long id, String password) {
	Memo memo = memoRepository.findById(id).orElseThrow(
			() -> new RuntimeException("존재하지 않는 글 입니다.")
	);
	if (memoRequestDto.getPassword().equals(memo.getPassword())) {
		memoRepository.deleteById(id);
		deleteMemoDto.setMsg("삭제가 완료되었습니다.");
	} else {
		deleteMemoDto.setMsg("비밀번호가 일치하지 않습니다.");
	}
	return deleteMemoDto;
}
  • service가 일을 하지 않게 바꿈
    • Meomosaved, isValidPassword 등은 deleterequest에서 변수 지정
public DeleteMemoDto deleteMemo(Long id, String password) {
	Memo memo = memoRepository.findById(id).orElseThrow(
			() -> new RuntimeException("존재하지 않는 글 입니다.")
	);
	if(Meomosaved.isValidPassword(password)) {
    	Memosaved.update(updateMemoRequest.getTitle(), updateMemoRequest.getAuthor(), updateMemoRequest.getContent());
		memoRepository.save(meomosaved) }
    else {
		throw new IllegalArgumentException("비번틀림")
	}
	return deleteMemoDto;
}

0개의 댓글