Member를 조회할 때 Team도 함께 조회해야 할까?
단순히 member 정보만 사용하는 비즈니스 로직일 경우
println(member.getName()); -> 손해이다.
fetch = FetchType.LAZY

반대로 Member와 Team 자주 사용하게 된다면?
fetch = FetchType.EAGER
member를 조회할 때부터 team도 조회해서 초기화시킨다.(프록시 X)
가급적 지연 로딩만 사용(특히 실무에서)
즉시 로딩 적용시 예상하지 못한 SQL이 발생
즉시 로딩은 JPQL에서 N+1 문제를 일으킴
(select m from member m 과 같은 쿼리에서 team이 EAGER로 설정되어있을 경우
member 쿼리 뿐만 아니라 team에 대한 쿼리도 발생)
@ManyToONe,@OneToOne은 기본이 즉시 로딩이므로 LAZY로 설정할 것
@OneToMany, @ManyToMany는 기본이 지연 로딩
고아 객체 제거: 부모 엔티티와 연관관계가 끊어진 자식 엔티티를 자동으로 삭제
orphanRemoval = true
참조가 제거된 엔티티는 다른 곳에서 참조하지 않는 고아 객체로 보고 삭제하는 기능
참조하는 곳이 하나일 때 사용할 것!
특정 엔티티가 개인 소유할 때 사용