멀티 테넌트멀티 테넌트 아키텍처는 하나의 애플리케이션 인프라에서 여러 개의 고객(테넌트)이 서비스를 공유하도록 하는 시스템을 의미합니다. 각 테넌트는 동일한 애플리케이션과 데이터베이스 인프라를 사용하지만, 데이터와 사용자 경험은 서로 독립적이어서 다른 테넌트와는 철저히 분리됩니다. 멀티 테넌트 환경에서 데이터베이스를 관리하는 여러 방식 중, 하나의 데이터베이스에 여러 스키마를 사용하는 방법을 살펴보겠습니다.데이터베이스 구조이 예제에서는 test1, test2 등의 구조를 사용하며, 각 테넌트는 하나의 스키마와 연관되어 있습니다. 사용자가 데이터를 조회할 때, 해당 사용자가 속한 테넌트(스키마)를 파악한 후, 해당 스키마에서 데이터를 조회하게 됩니다.MyBatis에서는 스키마명을 파라미터로 직접 전달하여 ..
JPA
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFKMEb%2FbtsHMcRaXL3%2Fg0zEhkirMuhnOL0DI4bXr1%2Fimg.jpg)
Entity Convention@Entity@Comment("상품 카테고리 정보")@Getter@ToString@NoArgsConstructor(access = AccessLevel.PROTECTED)@SQLRestriction("use_flag = 'Y'")public class ProductCategory extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Comment("상품 카테고리 정보 IDX") private Long productCategoryId; @Column(nullable = false, length = 100) @Comment("카테고리명") private S..