inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링과 JPA 기반 웹 애플리케이션 개발

프로필 수정 처리

프로필 수정 처리 merge 질문입니다.

108

이승혁

작성한 질문수 4

0

강의 잘 듣고있습니다. 현재 service단의 update메서드에는 merge로 병합처리를 하고있지만 accountRepository에서 findById와 같이 수정할 account객체를 찾아내서 영속화를 시켜준뒤에 수정을 하면 dirty checking으로 인한 수정법이 더 안전한 방법일까라고 생각이되서 질문드립니다.

java spring spring-boot jpa thymeleaf

답변 1

0

인프런 AI 인턴

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

프로필 수정 시, 영속성 관리를 어떻게 할지에 관한 질문을 주셨네요. mergedirty checking 모두 데이터 수정을 위한 방식으로 사용되며 각각 장단점이 있습니다.

  1. merge 사용:

    • merge는 준영속성 상태의 객체를 다시 영속 상태로 변경하는 과정에서 사용됩니다.
    • 이것은 객체를 새롭게 만드는 작업을 포함하여, 성능 상의 오버헤드가 발생할 수 있습니다.
    • 상태가 확실하지 않은 객체를 업데이트할 때 유용합니다.
  2. findById와 dirty checking 사용:

    • findById로 영속 상태의 객체를 반환받아 수정을 진행하면, JPA의 dirty checking이 동작하여 변경사항이 자동으로 검출되고 commit 시점에 DB에 반영됩니다.
    • 이는 기본적으로 JPA가 엔티티 상태를 유지하고 관리하며, 객체 상태와 데이터베이스 간의 일관성을 보장하는 더 효율적인 방법입니다.
    • 변경 사항이 자동으로 반영되기 때문에 직접 저장을 호출할 필요가 없어서 개발자 입장에서는 코드를 더 명확하게 관리할 수 있습니다.

따라서, 이미 식별 가능한 ID가 있는 경우 dirty checking 방식이 더 효율적이고 안전한 방법으로 볼 수 있습니다. JPA의 강력함을 충분히 활용하기 때문입니다.

관련된 질문들은 아래에서 확인하실 수 있습니다:

위 링크들은 프로필 수정 및 영속성에 대한 더 많은 정보와 다른 학습자의 질문 및 답변을 포함하고 있습니다. 이 방법들을 고려하여 상황에 맞게 선택하시는 것을 추천드립니다.

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

Study 개설하는 로직에 대해서 궁금점이 있습니다.

0

56

1

앱 재시작 후 회원가입

0

104

1

app.host 관련 질문이 있습니다

0

98

1

강의 버전 정보

0

126

1

event, study 참조

0

222

2

비밀번호 변경 로직 질문있습니다.

0

136

1

회원가입 성공 후 redirect이동시 권한 질문

0

497

3

HtmlEmailService 개발하다 생긴 의문입니다

0

251

2

postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다

0

432

2

수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다

0

264

2

[긴급-재업로드]수업질문 로그인 안 되는 문제

0

237

1

[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요

0

278

1

cropper 오류 문제로 질문드립니다..

0

289

2

authentication관련 질문...

0

498

2

모임참가 취소 할때 로직 질문

0

351

3

안녕하세요 기선님 질문이있습니다..

0

230

1

HTML코드 및 강의 중간자료들

0

680

3

springSecurity

0

525

2

버전 질문입니다.

0

304

1

부트스트랩, css

0

357

2

영속성 컨텍스트 질문

0

251

2

다시 강의를 보니 드는생각..

0

354

2

5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?

0

316

1

세팅 질문있습니다.

0

346

1