개발 공부/[Spring] 2

JPA 프록시와 JOIN 과 JOIN FETCH 차이

JPA를 공부하다 보면 꼭 마주치는 개념이 있다. 바로 프록시(Proxy) 와 지연 로딩(Lazy Loading), 그리고 JOIN과 JOIN FETCH의 차이이다.이 개념들을 비유와 실제 코드로 정리해봤다.✅ 프록시(Proxy)란 무엇인가?JPA에서는 엔티티를 바로 불러오지 않고, 프록시 객체를 먼저 생성해두고, 실제 데이터가 필요할 때 DB에서 값을 가져오는 방식으로 지연 로딩을 구현한다.💡 비유하자면?넷플릭스에서 영화를 클릭하면 바로 재생되는 것이 아니라 썸네일만 먼저 보여주고,진짜 영화는 네트워크 연결이 될 때 로드되는 구조와 유사하다.💡 실제 코드 예시@OneToMany(mappedBy = "countryEntity", fetch = FetchType.LAZY)private List city..

[Spring] BaseTimeEntity와 사용되는 어노테이션의 기능

프로젝트를 위해 등록일과 수정일 데이터를 넣어주기 위해 BaseTime 클래스를 생성했다.각 요소들의 특징을 자세히 알아보았다!  코드는 다음과 같이 작성했다😊 @Getter@MappedSuperclass@EntityListeners(AuditingEntityListener.class)public abstract class BaseTimeEntity { @Column(updatable = false, nullable = false) @CreatedDate private LocalDateTime createdAt; // 등록일 @Column @LastModifiedDate private LocalDateTime modifiedAt; // 수정일}  사용한 어노테이션의 역할..