mybatis 2

[Springboot] 멀티 데이터소스 (MyBatis, JPA)

개요 최근 회사 업무를 하며 멀티 테넌시 아키텍처를 적용한 서비스를 개발했습니다. 요구사항은 아래와 같았습니다. 사용자 로그인 정보를 토대로 해당 tenant에 매핑된 데이터베이스와 연동 런타임에 테넌트 추가 가능 즉, 재기동 없이 동적으로 사용자와 사용자가 매핑된 데이터소스를 추가 가능 테넌트를 추가할 때 데이터베이스 및 테이블 자동 생성 클라우드 시장이 성장함에 따라 멀티 테넌시를 지원하는 XaaS가 늘어날 것으로 판단되기 때문에 해당 내용을 다루고 싶었고 생각보다 코드 레벨까지 설명해 주는 글이 별로 없었기 때문에 개인적으로 정리해 보겠습니다. 멀티 테넌시 아키텍처 중 멀티 데이터소스를 집중적으로 다룰 예정이고 기타 예외처리 및 인증/인가 설정은 주제에 벗어나기 때문에 생략하도록 하겠습니다. (구현..

리서치 2023.03.25

[SpringBoot + MyBatis] TypeHandler 통해 JSON List varchar로 저장

개요 api 응답으로 json list가 오는데 이를 MariaDB varchar형 칼럼에 저장하려고 하니 원하는 대로 안됐습니다. 열심히 검색한 결과 이를 위해서는 커스텀 TypeHandler를 정의해야했고 TypeHandler를 적절히 구현하면 JSON 형태의 문자열을 그대로 DB에 저장하고 조회할 수 있었습니다. 저는 keichee님 블로그를 보고 위 문제를 해결할 수 있었으며 하기 내용도 keichee님이 작성하신 내용과 거의 동일하므로 해당 블로그를 방문하시는 것을 추천드립니다! 1. DTO 구조 DTO 구조를 보면 ExampleWrapper 클래스가 ExampleJson 배열을 필드로 두고 있고 여기서 ExampleJson 클래스가 json 형태로 DB에 저장될 정보입니다. 2. TypeHan..

[DEV] 기록 2022.04.13