SpringBoot

Java

Dirty Checking 원리 완벽 정리 (JPA 자동 UPDATE 쉽게 설명)

JPA 공부하다 보면 거의 반드시 듣게 되는 핵심 기능이 있다.👉 Dirty Checking그리고 처음 보면 대부분 이렇게 생각한다."UPDATE 쿼리 안 썼는데 왜 DB가 수정되지?"실제로 JPA에서는 이런 코드가 가능하다.member.setName("kim");근데:UPDATE SQL을 직접 호출하지 않았는데도 DB 값이 바뀐다.처음 보면 진짜 신기하다.근데 이게 바로:👉 Dirty Checking덕분이다.실무에서도 엄청 중요한 기능이다.왜냐면:✔ JPA 자동 UPDATE 핵심✔ 영속성 컨텍스트 핵심 기능✔ 트랜잭션 동작 이해 필수✔ 성능 최적화와 연결되기 때문이다.오늘은 Dirty Checking 원리를 초보자도 이해할 수 있게 쉽게 정리해보겠다.Dirty Checking 이란?👉 엔티티 변경..

Java

JPA cascade 옵션 완벽 정리 (CascadeType.ALL, orphanRemoval 쉽게 설명)

JPA 공부하다 보면 거의 반드시 만나게 되는 옵션이 있다.👉 cascade그리고 처음 보면 진짜 헷갈린다.왜냐면 코드가 보통 이렇게 생긴다.@OneToMany( cascade = CascadeType.ALL)처음 보는 사람 입장에서는:"이게 대체 뭘 자동으로 해준다는 거지?"싶어진다.근데 실무에서는:✔ 부모 저장 시 자식 자동 저장✔ 부모 삭제 시 자식 자동 삭제✔ persist 전파✔ remove 전파같은 엄청 중요한 동작과 연결된다.특히:CascadeType.ALL무심코 사용했다가 데이터가 예상치 않게 삭제되는 경우도 진짜 많다.오늘은 JPA cascade 옵션을 초보자도 이해할 수 있게 쉽게 정리해보겠다.cascade 란?👉 부모 엔티티 작업을 자식 엔티티로 전파하는 기능쉽게 말하면:부모..

Java

flush vs commit 차이 완벽 정리 (JPA 트랜잭션 쉽게 설명)

JPA 공부하다 보면 거의 반드시 헷갈리는 개념이 있다.👉 flush👉 commit처음에는 둘 다 비슷해 보인다.왜냐면 둘 다:DB에 반영되는 느낌이 있기 때문이다.그래서 초보자들은 자주 이렇게 생각한다."flush 하면 저장 완료 아닌가?"근데 실제로는:✔ flush ≠ commit✔ 역할 완전히 다름✔ 동작 시점 다름✔ rollback 가능 여부 다름이다.이 차이를 제대로 이해해야:✔ JPA 동작 원리✔ 영속성 컨텍스트✔ Dirty Checking✔ 트랜잭션 관리를 제대로 이해할 수 있다.오늘은 flush vs commit 차이를 초보자도 이해할 수 있게 쉽게 정리해보겠다.가장 먼저 결론flush👉 SQL을 DB로 전송commit👉 최종 저장 확정핵심 차이flush = 반영 준비commit =..

Java

REST API 설계 방법 완벽 정리 (HTTP Method, URI 규칙, 상태 코드 쉽게 설명)

백엔드 개발 공부를 시작하면 거의 반드시 듣게 되는 단어가 있다.👉 REST API그리고 실무에 들어가면:✔ API URL 어떻게 만들지?✔ GET/POST 차이는?✔ 복수형 써야 하나?✔ 상태 코드는 어떻게 내려야 하지?✔ URI에 동사 써도 되나?이런 고민을 엄청 많이 하게 된다.처음에는 단순히:"/getUser"같이 만들기도 한다.근데 REST API는:👉 "동작"보다👉 "자원(Resource)"중심으로 설계하는 게 핵심이다.오늘은 REST API 설계 방법을 초보자도 이해할 수 있게 실무 기준으로 쉽게 정리해보겠다.REST API 란?👉 HTTP 기반 자원(Resource) 중심 API 설계 방식쉽게 말하면:URL은 자원 표현HTTP Method는 행동 표현이다.예시GET /users/1의..

Coding_Slowly
'SpringBoot' 태그의 글 목록