Programming/SpringBoot

AMQP란?AMQP(Advanced Message Queuing Protocol)는 메시지 지향 미들웨어에서 사용되는 개방형 표준 프로토콜입니다.이 프로토콜은 애플리케이션 간에 메시지를 안정적이고 효율적으로 전달하기 위한 규격을 제공합니다. AMQP는 메시징 큐를 중심으로 애플리케이션 간의 비동기식 통신을 가능하게 하여, 분산 시스템 간의 상호작용을 원활하게 만들어 줍니다.AMQP의 동작Producer(생산자)메시지를 생성하고, 이를 큐에 전송하는 역할생산자는 일반적으로 다른 시스템이나 애플리케이션으로부터 데이터를 받아 메시지 형식으로 변환하여 큐로 전송Consumer(소비자)큐에 저장된 메시지를 읽어 처리하는 역할Queue(큐)Consumer가 메시지를 Consume 하기 전까지 보관하는 장소Excha..
멀티 테넌트멀티 테넌트 아키텍처는 하나의 애플리케이션 인프라에서 여러 개의 고객(테넌트)이 서비스를 공유하도록 하는 시스템을 의미합니다. 각 테넌트는 동일한 애플리케이션과 데이터베이스 인프라를 사용하지만, 데이터와 사용자 경험은 서로 독립적이어서 다른 테넌트와는 철저히 분리됩니다. 멀티 테넌트 환경에서 데이터베이스를 관리하는 여러 방식 중, 하나의 데이터베이스에 여러 스키마를 사용하는 방법을 살펴보겠습니다.데이터베이스 구조이 예제에서는 test1, test2 등의 구조를 사용하며, 각 테넌트는 하나의 스키마와 연관되어 있습니다. 사용자가 데이터를 조회할 때, 해당 사용자가 속한 테넌트(스키마)를 파악한 후, 해당 스키마에서 데이터를 조회하게 됩니다.MyBatis에서는 스키마명을 파라미터로 직접 전달하여 ..
@ModelAttribute란?클라이언트가 보내는 HTTP 파라미터들을 Java 객체에 바인딩하는데 사용합니다./me?name=woong&age=26 같은 QueryString 형태 혹은 요청 본문에 삽입되어 있는 Form 형태의 데이터를 처리합니다.주요 Flow1. 요청 수신DispatcherServlet : 모든 HTTP 요청은 DispatcherServlet에 의해 수신됩니다. 이 서블릿은 프론트 컨트롤러로서 요청을 적절한 핸들러(Controller)로 라우팅합니다.2. 핸들러 매핑HandlerMapping : DispatcherServlet은 요청 URL을 기반으로 적절한 핸들러를 찾기 위해 여러 HandlerMapping 구현체를 확인합니다. 예를 들어, RequestMappingHandlerM..
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..
회사에서 프로젝트를 진행하던 중 계속 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을 상속받고 있어 추가 기능을 사용할 수 있습니다. 단순히 이런 차이점밖에 없으므로 취향에 따라, 혹은..
포테이토웅
'Programming/SpringBoot' 카테고리의 글 목록