Backend

ddl-auto: update에서 Flyway로 옮기기

1. 개요 Spring Boot 프로젝트를 처음 만들면 JPA의 ddl auto: update 로 테이블을 만드는 경우가 많다. 엔티티만 고치면 개발용 DB 구조가 따라오므로 시작하기 편하다. 하지만 프로젝트가 커지고 개발·테스트·운영 DB가 나뉘면, 같은 코드라도 D…

·14분
Backend

JpaRepository 에 대한 간단한 이해

1. 개요 공연 예매 서비스에서 Performance 는 공연 제목과 공연장 정보를 가진 엔티티다. 이 엔티티를 데이터베이스에 저장하거나 ID로 다시 찾으려면 SQL을 직접 작성할 수도 있지만, Spring Data JPA의 JpaRepository 를 사용하면 기본적…

·8분
Backend

@Embedded와 @Embeddable로 값 객체 매핑하기

1. 개요 공연 좌석의 위치는 A구역 3열 12번 처럼 구역, 열, 번호가 함께 의미를 만든다. 이 값을 Seat 엔티티에 각각의 필드로 두면 간단해 보이지만, 위치에 관한 검증과 화면 표시 규칙이 엔티티에 섞이기 쉽다. JPA의 @Embeddable 과 @Embedd…

·6분
Backend

낙관적 락과 비관적 락

1. 동시에 같은 데이터를 수정하면 문제가 생긴다 여러 요청이 같은 데이터를 동시에 읽고 수정하면 한 요청의 변경 내용이 사라질 수 있다. 예를 들어 재고가 10개일 때 두 사용자가 동시에 1개씩 주문한다고 생각해 보자. 두 번의 주문이 처리됐지만 최종 재고는 8이 아…

·7분