성장일기

내가 보려고 정리하는 공부기록

JPA 3

[Spring] DB와 JPA Persistence Context 불일치 해결하기 - trouble shooting

뚱땅뚱땅 개발을 하고있던 어느 날,, 투표가 존재하는 공지사항 삭제가 안 된다는 연락을 받았다. 로그를 열심히 뒤져서 에러로그를 발견했다. 에러 로그를 바탕으로 조금 찾아본 결과, DB와 Persistence Context 불일치로 인한 오류가 발생한 것이었다. JPA를 공부하다보면 영속성 컨텍스트, Persistence Context라는 단어를 많이 접하게 되는데, 이번 기회에 개념을 정리해보고자 한다. 영속성 컨텍스트 (Persistence Context) 먼저 영속성이란, 데이터나 객체가 프로그램 종료 후에도 사라지지 않고 지속되는 특성을 의미한다. 그렇다면 영속성 컨텍스트는 JPA가 엔티티를 관리하는 저장소로 appication과 데이터베이스 사이에 있는 메모리 속 1차 캐시라고 이해하면 된다..

백엔드/JPA 2026.03.21

[JPA] JPA Query Methods 활용

슬슬 프로젝트를 시작했고, 엔티티와 레포지터리, 약간의 서비스 부분을 진행하였다. 첫 프로젝트라 다른 분의 코드를 조금씩 참고하는데, 처음보는 것이 있었다. 레포지터리를 인터페이스로 작성했는데 구현체가 없었다 !! 이유는 저 JpaRepository에 있었다. JPA RepositoryJPA Repository는 JPA에서 제공하는 인터페이스 중 하나로, JPA를 사용하여 데이터베이스를 조작하기 위한 메서드들을 제공한다. 기본적으로 findAll(), findById(), save() 등을 제공해 CRUD를 편리하게 조작할 수 있다. 이 인터페이스를 기본으로 받고, 추가로 내가 사용할 메서드를 작성해둘 수 있는데, 이때 JPA 쿼리 메소드의 명명규칙대로 메소드의 이름을 지정해주어야 한다. 명명방법을 알..

백엔드/JPA 2024.04.09

[JPA] 강의 추가학습 기록(3) - 스프링부트와 JPA활용1

인프런 김영한 강사님의 스프링부트와 JPA활용1 강의를 듣고 추가로 학습한 내용을 정리한 게시물입니다. 지난 게시물과 마찬가지로 강의를 들으면서 이해하지 못했던 것들을 기록하며 공부해보려고 한다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 강의 - 인프런 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프 www.inflearn.com 추가학습 내용은 다음과 같다...

백엔드/JPA 2024.03.01