Spring/JPA 3

[JPA] : save시에는 @Transactional 이 왜 필요하나? 없는 경우는 뭐지?

최근에 열심히 이직 준비를 하고 있는 오늘의 키메라! 필자는 이와 같은 질문을 받았다 면접관 : JPA를 사용해 보셨다고요? JPA가 뭐죠?키메라 : 네! JPA는 Java Persistent API로 ORM을 위해 사용되는 인터페이스입니다.면접관 : 그러면 JPA에는 왜 save 시에 @Transactional을 붙여야 할까요? 안되다가 마법같이 데이터 조작 작업이 되더라고요.키메라 : 아... 그건 잘... 모르겠는데요?면접관 : ???키메라 : ??? 이에 대한 대답을 찾기 위해 글을 정리했다. 막상 쭈욱 다시 정리하니 별거 없는데 참... ㅠㅠ 1. 트랜잭션에 대해서트랜잭션이란 데이터베이스의 상태를 변화시키기 위해서 수행되는 작업의 단위를 뜻한다. 트랜잭션의 특징은 원자성, 일관성, 독립성..

Spring/JPA 2025.04.13

@Entity 설정 Annotation 정리

혼자 인터넷에서 뒤져가면서 내 공부용 미니 프로젝트를 위한 스키마를 생성하고 테이블들의 연관관계를 Java Persistence API를 이용해서 작업중이다. 근데 작업하는 와중에 많은 기능이 있었다. 문제는 이것을 잘 사용해야 하는데 이번 기회에 다시 집고 넘어가려고 한다. 필자는 다음과 같은 ERD를 이용해서 Mapping을 시도했다. 1. @MappedSuperclass vs @Embedded & @Embeddable @MapppedSuperClass는 공통 매핑 정보가 필요할 때 사용한다. 쇼핑몰에서 우리가 물건을 구매할 때 회원 가입시 입력한 기본 주소를 그냥 쓸 수도 있지만 여러곳에서 물건을 수령할 수도 있다. 즉, 실제로 저장한 주소들과 내가 받을 곳의 주소들은 일치할 수도, 다를 수도 있다..

Spring/JPA 2022.03.17

DB 개념 + JPA concurrency control

필자는 금일 전화면접을 보았다. 여기서 질문을 몇개 하셨는데 대답을 잘 못했다!(슬픔...) 하지만 괜찮다.... 절망만 하지 말고 이에 대한 정보를 최대한 찾아서 내것으로 만들어 보겠다. 오늘은 이와 관련된 정보를 찾아서 정리하겠다 1. Transaction이란? 트랜잭션이란 무엇일까? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위이다. DB의 상태를 변형시킨다는 이야기는 무엇일까? SELECT, UPDATE, INSERT, DELETE와 같은 행동을 뜻한다. 트랜잭션에는 4가지의 특징이 있다. 원자성 : DB에 모두 반영되거나, 전혀 반영되지 않거나한다! 일관성 : 작업 처리의 결과가 항상 일관되어야 한다. 독립성 : 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적이다 ..

Spring/JPA 2022.03.14