인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김재원님의 프로필 이미지
김재원

작성한 질문수

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

엔티티의 테스트

testUpdate를 하실때 질문이 있습니다.

작성

·

43

0

강의에서는 명시적으로 todoRepository.save(todo);를 해주셨는데 어떤 강의에서는 더티체킹으로 업데이트를 하는게 좋다고 하는 말을 들었습니다. 보통 실무에서는 어떤 방식을 더 선호하나요?

 

답변 2

0

구멍가게코딩단님의 프로필 이미지
구멍가게코딩단
지식공유자

강의 예제에서는 굳이 save( )를 하지 않으셔도 문제가 발생하지 않습니다.

 

다만 간혹 개발 중에 더티체킹이 동작하지 않는 경우가 있어서.. save( )를 해 주는 습관을 가지고 있긴 합니다.

 

https://junior-datalist.tistory.com/349

0

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

김재원님께서 질문해주신 save 메서드와 더티 체크에 대한 부분은 저희 강의에서도 자주 논의되는 주제입니다. 다음 링크를 참고하여 자세한 내용을 확인해 주세요.

관련 질문 URL:

요약된 설명

  1. 명시적 save:

    • 장점: 코드가 명확하며, 의도를 분명하게 드러낼 수 있습니다. 업데이트가 필요한지 여부를 직접 제어할 수 있어, 예측 가능성이 높습니다.
    • 단점: boilerplate 코드가 증가할 수 있으며, 엔티티마다 이를 반복적으로 작성해야 할 수 있습니다.
  2. 더티 체크(Dirty Checking):

    • 장점: Hibernate의 강력한 기능을 활용하여, 변경된 부분만 자동으로 감지하고 업데이트할 수 있습니다. 코드가 깔끔하고 간결해집니다.
    • 단점: Hibernate의 내부 동작을 잘 이해해야 하며, 예상치 못한 동작이 발생할 수 있습니다. 특히, 복잡한 엔티티에서는 불필요한 업데이트 트리거가 발생할 수 있습니다.

실무에서는 어떤 방식을 선호하는지?

  • 명시적 save 방식은 예측 가능성이 높아, 상태 관리가 명확한 상황에서 선호될 수 있습니다.
  • 더티 체크는 간결한 코드와 생산성을 중시하는 환경에서 선호될 수 있지만, 이를 효과적으로 사용하기 위해서는 철저한 테스트가 필요합니다.

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

김재원님의 프로필 이미지
김재원

작성한 질문수

질문하기