로딩 중...
Lion Assignment(1:N) 관계 설계 트랜잭션으로 데이터 안정성 확보
구현 지침 탭에서 각 단계를 클릭하여 완료 표시할 수 있습니다.
이 미션에서 무엇을 배우고 어떤 경험을 하게 되는지 확인하세요.
Member와 Assignment의 1:N 관계를 설계하고, 트랜잭션으로 데이터 일관성을 보장한다.
8주차에서 JPA를 도입하여 Member 엔티티를 MySQL에 저장했다. 하지만 현실의 데이터는 단독으로 존재하지 않습니다.. 한 명의 멤버가 여러 개의 과제를 가지고, 하나의 과제는 반드시 한 명의 멤버에게 속합니다. 이런 데이터 간의 관계를 표현하는 것이 연관관계 매핑입니다.
이번 미션에서는 Assignment(과제) 엔티티를 새로 만들고, Member와 1:N 관계를 설정합니다. JPA의 @ManyToOne, @OneToMany 어노테이션으로 객체 간 관계를 매핑하고, 이것이 DB의 외래 키(Foreign Key)로 어떻게 변환되는지 확인합니다.
또한 @Transactional을 도입하여 데이터 변경 작업의 안정성을 확보합니다. 트랜잭션은 여러 DB 작업을 하나의 단위로 묶어, 중간에 실패하면 전체를 롤백해주는 메커니즘입니다. 실무에서 서비스 계층에 @Transactional을 적용하는 것은 필수적인 패턴이며, 이번 미션에서 그 이유를 직접 경험합니다.