SpringBoot

멀티 테넌트멀티 테넌트 아키텍처는 하나의 애플리케이션 인프라에서 여러 개의 고객(테넌트)이 서비스를 공유하도록 하는 시스템을 의미합니다. 각 테넌트는 동일한 애플리케이션과 데이터베이스 인프라를 사용하지만, 데이터와 사용자 경험은 서로 독립적이어서 다른 테넌트와는 철저히 분리됩니다. 멀티 테넌트 환경에서 데이터베이스를 관리하는 여러 방식 중, 하나의 데이터베이스에 여러 스키마를 사용하는 방법을 살펴보겠습니다.데이터베이스 구조이 예제에서는 test1, test2 등의 구조를 사용하며, 각 테넌트는 하나의 스키마와 연관되어 있습니다. 사용자가 데이터를 조회할 때, 해당 사용자가 속한 테넌트(스키마)를 파악한 후, 해당 스키마에서 데이터를 조회하게 됩니다.MyBatis에서는 스키마명을 파라미터로 직접 전달하여 ..
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..
· Docker
[Docker] Docker Compose를 이용해 개발 환경 구축하기(2) - SpringBoot [Docker] Docker Compose를 이용해 개발 환경 구축하기(1) - MariaDB 서론 여러 개발 환경에서 테스트를 수행하기 위해 AWS EC2나 기타 자원을 매번 사용하는 것은 시간과 비용적인 측면에서 제약을 느끼게 woong99.tistory.com 서론 이번 글에서는 Docker Compose를 활용하여 Apache 컨테이너를 구축하고, 이를 SpringBoot 프로젝트와 연동한 뒤 로드 밸런싱까지 구현하는 방법에 대해 다뤄보겠습니다. SpringBoot 1. application.yml 수정 tomcat: ajp: enabled: true port: 8009 protocol: AJP/1..
· Docker
[Docker] Docker Compose를 이용해 개발 환경 구축하기(1) - MariaDB 서론 여러 개발 환경에서 테스트를 수행하기 위해 AWS EC2나 기타 자원을 매번 사용하는 것은 시간과 비용적인 측면에서 제약을 느끼게 되어, 이번 시리즈를 작성하게 되었습니다. Spring Boot 프로 woong99.tistory.com 서론 이전 글에서는 Docker Compose를 활용하여 MariaDB를 구성했습니다. 이번 글에서는 Spring Boot 프로젝트를 자동으로 빌드하고 배포하는 과정에 대해 다뤄보겠습니다. 테스트 환경 MacOS M3-Pro Docker version 25.0.3 MariaDB 10.11.7 SpringBoot 3.2.3 DockerFile 생성 패키지의 최상단 혹은 원하는..
회사에서 프로젝트를 진행하던 중 계속 DTO에서 NPE가 발생한다고 로그에 기록되었습니다. 아래 코드는 메시지를 발송할 때 필요한 메서드입니다. 하지만 메시지를 발송하지 않는 경우에도 자꾸 이 메서드가 호출되어서 오류가 발생했습니다. 디버깅 결과 @ResponseBody와 연관이 있다는 것을 발견하고 모르던 부분이 있어서 글로 정리하게 되었습니다. public String getAgencyInfo() { try { return this.agencyResDto.getAgencyName() + " / " + this.agencyResDto.getRepresentTel(); } catch (Exception e) { log.warn("[LectureResDto.getAgencyInfo()] ERROR :: "..
프론트엔드와 백엔드가 따로 분리가 되어 있지 않은 프로젝트에서 자주 사용하는 Model과 ModelMap의 차이점에 대해 알아보겠습니다. Model VS ModelMap 공통점 데이터 전송 : 모두 컨트롤러에서 뷰로 전달되어야 하는 속성을 보유하는 컨테이너 역할을 합니다. 속성 추가 : addAttribute와 같은 메소드를 사용하여 뷰에 표시할 속성을 추가할 수 있습니다. 범위 : Model 혹은 ModelMap에 추가된 속성은 현재 요청 수명 주기에만 사용할 수 있습니다. 차이점 Model은 Spring에서 제공하는 인터페이스입니다. ModelMap은 Model의 구현체이며, LinkedHashMap을 상속받고 있어 추가 기능을 사용할 수 있습니다. 단순히 이런 차이점밖에 없으므로 취향에 따라, 혹은..
포테이토웅
'SpringBoot' 태그의 글 목록