Backend/다양한 시각에서 바라본 백엔드

코딩하는 대학생에서 개발자까지
다양한 시각에서 바라본 JPA
이 글에서는 JPA의 내부 구조에 대해 자세히 다뤄보려 합니다. Spring Boot를 실행시키면 JpaRepository는 어떻게 생성되나요?public interface MemberRepository extends JpaRepository아마 위 코드는 스프링으로 개발하시는 분이라면 한 번이라도 작성해봤을 코드입니다.레포지토리 인터페이스를 정의한 뒤, 제네릭 타입으로 엔티티 클래스와 해당 엔티티의 ID 필드 타입을 지정합니다.이렇게 하면 Spring Data JPA가 자동으로 해당 엔티티에 대한 기본적인 CRUD 작업을 수행하는 구현체를 생성합니다. 분명 MemberRepository는 interface인데 왜 Proxy가 적용됐고 Target Class가 SimpleJpaRepository야? Sp..
다양한 시각에서 바라본 트랜잭션
다양한 시각 시리즈 3번째 트랜잭션입니다!트랜잭션 어노테이션을 적용시켰을 때 어떤 일들이 일어나는지에 대해 자세히 적어보았습니다. @Transactional public void removeEvents(List adates) { adateRepository.deleteAll(adates);} 이렇게 @Transactional 어노테이션을 붙이면 어떻게 될까 알고 싶어 작성한 글입니다.트랜잭션을 호출하게 되면 스프링은 트랜잭션이 필요한 빈에 대해 프록시를 생성합니다. (위의 경우 removeEvents가 포함되어 있는 Service 클래스에 대해 프록시를 생성합니다) 이후, TransactionInterceptor에 의해 해당 메서드의 실행 전후에 트랜잭션의 시작과 종료가 자동으로 처리됩니다.Transac..
다양한 시각에서 바라본 PK 생성 전략
현재 상황@Entity@Getter@Builder@AllArgsConstructor@NoArgsConstructor(access = AccessLevel.PUBLIC)@Table(indexes = @Index(name = "oauth_id", columnList = "oauthId", unique = true))public class Member extends BaseTimeEntity implements UserDetails { @Id private String id; @Column(nullable = false) private String oauthId; @Enumerated(EnumType.STRING) private OAuthProvider oauthPlatform; @Column(nullable..
코딩하는_대학생
'Backend/다양한 시각에서 바라본 백엔드' 카테고리의 글 목록