Spring Boot
-
[Spring Boot] RedisTemplate을 이용한 Redis Data Type 확인Spring Boot/기타 2023. 7. 2. 18:32
Redis Data TypesStrings : 단순한 텍스트나 이진 데이터를 저장하는데 사용되며, 각 키에 대해 하나의 값만 저장할 수 있습니다. Strings는 캐싱, 세션 관리, 카운팅 등에 사용됩니다.Lists : 순서가 있는 문자열의 목록을 저장하는데 사용되며, 한 키에 여러 값을 저장할 수 있으며, 값들은 순서대로 저장됩니다. Lists는 대기열, 로그, 최근 작업 목록 등에 사용됩니다.Sets : 중복되지 않는 값을 저장하는데 사용되며, 멤버 간의 순서가 없으며, 각 멤버는 유일합니다. Sets는 태그 처리, 중복 제거 등에 유용합니다.Hashes : 필드-값 쌍을 저장하는 데 사용되며, 각 키에 대해 여러 개의 필드와 해당 필드에 연결된 값들을 저장할 수 있습니다. Hashes는 필드의 추가..
-
[Spring Boot] ActiveMQ Queue, Topic 연동Spring Boot/기타 2023. 7. 2. 18:14
ActiveMQ란?Apache Software Foundation에서 개발된 오픈 소스 메시지 브로커(Message Broker)로 메시징 시스템에서 메시지를 중개하고 전달하는 역할을 담당합니다.Java로 작성되었으며, Java Message Service (JMS)를 지원하여 다양한 애플리케이션 간에 비동기적인 통신을 가능하게 합니다.큐(Queue)와 토픽(Topic)이라는 두 가지 메시지 전달 방식을 지원하며, 큐(Queue) 방식은 메시지를 수신 대기 중인 클라이언트 중 하나에게 전달하고, 토픽(Topic) 방식은 메시지를 여러 구독자에게 전달하는 방식입니다. ActiveMQ : https://activemq.apache.orghttps://activemq.apache.org 1. Docker를 ..
-
[Spring Boot] STOMP 사용 시 Interceptor 및 errorHandling 적용Spring Boot/기타 2023. 6. 24. 17:49
STOMP 사용 시 Interceptor 및 errorHandling 적용WebSocketConfig.java 수정setErrorHandler() 메서드는 StompEndpointRegistry 클래스에서 제공되는 메서드로, STOMP 엔드포인트 등록 중에 발생하는 오류 처리를 설정하는데 사용할 수 있습니다.configureClientInboundChannel() 메서드는 WebSocketMessageBrokerConfigurer 인터페이스에서 제공되는 메서드로, 클라이언트로부터 수신한 STOMP 메시지를 처리하기 위한 클라이언트 인바운드 채널을 구성하는데 사용할 수 있습니다.package com.example.activemq.config;import com.example.activemq.common...
-
[Spring Boot] ActiveMQ + STOMP 연동Spring Boot/기타 2023. 6. 17. 09:14
ActiveMQ란?Apache Software Foundation에서 개발된 오픈 소스 메시지 브로커(Message Broker)로 메시징 시스템에서 메시지를 중개하고 전달하는 역할을 담당합니다.Java로 작성되었으며, Java Message Service (JMS)를 지원하여 다양한 애플리케이션 간에 비동기적인 통신을 가능하게 합니다.큐(Queue)와 토픽(Topic)이라는 두 가지 메시지 전달 방식을 지원하며, 큐(Queue) 방식은 메시지를 수신 대기 중인 클라이언트 중 하나에게 전달하고, 토픽(Topic) 방식은 메시지를 여러 구독자에게 전달하는 방식입니다. ActiveMQ : https://activemq.apache.orgSTOMP란?Apache Software Foundation에서 개발된..
-
[Spring Boot] ActiveMQ 연동하기Spring Boot/기타 2023. 6. 11. 11:04
ActiveMQ란?Apache Software Foundation에서 개발된 오픈 소스 메시지 브로커(Message Broker)로 메시징 시스템에서 메시지를 중개하고 전달하는 역할을 담당합니다.Java로 작성되었으며, Java Message Service (JMS)를 지원하여 다양한 애플리케이션 간에 비동기적인 통신을 가능하게 합니다.큐(Queue)와 토픽(Topic)이라는 두 가지 메시지 전달 방식을 지원하며, 큐(Queue) 방식은 메시지를 수신 대기 중인 클라이언트 중 하나에게 전달하고, 토픽(Topic) 방식은 메시지를 여러 구독자에게 전달하는 방식입니다. ActiveMQ : https://activemq.apache.org 1. Docker를 사용하여 ActiveMQ 설치Docker를 사용하..
-
[Spring Boot] RabbitMQ 연동하기Spring Boot/기타 2023. 6. 4. 18:27
RabbitMQ는 메시지를 생산하는 생산자(Producer)가 메시지를 큐(Queue)에 저장해 두면, 메시지를 수신하는 소비자(Consumer)가 메시지를 가져와 처리하는 Publish/Subscribe 방식의 메시지 전달 브로커입니다.RabbitMQ : https://www.rabbitmq.com 1. Docker를 사용하여 RabbitMQ 설치Docker를 사용하여 RabbitMQ를 로컬에 설치하세요.docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 --restart=unless-stopped rabbitmq:management포트 5672는 RabbitMQ 클라이언트 연결에 사용되고, 포트 15672는 RabbitMQ 웹 관리 콘솔에 사용됩니다..
-
[Spring Boot] Amazon S3로 파일 업로드 및 삭제Spring Boot/기타 2023. 1. 27. 17:34
Amazon Simple Storage Service(Amazon S3) S3란?확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스 참조 - https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Welcome.htmlAmazon S3 설정1. 의존성 추가 Amazon S3를 사용하기 위해 spring-cloud-starter-aws 의존성을 추가하세요.build.gradleplugins { id 'java' id 'org.springframework.boot' version '2.7.7' id 'io.spring.dependency-management' version '1.0.15.RELEASE'}group = 'c..
-
[Spring boot] Replication Database 환경에서 Master/Slave DataSource 구성하기Spring Boot/기타 2023. 1. 17. 23:25
목차 1. Replication이란 무엇인가?Replication(복제)은 데이터베이스의 Master/Slave 구조를 설정하여 데이터를 효과적으로 관리하고, 시스템 부하를 분산하기 위한 기술입니다.Master는 데이터의 원본 저장소로, 쓰기 작업(Insert, Update, Delete)을 처리합니다.Slave는 Master 데이터를 복제한 사본 저장소로, 읽기 작업(Select)을 처리합니다.이러한 구조를 통해 쓰기와 읽기 작업을 분리하여 시스템 성능을 최적화하고 확장성을 높일 수 있습니다. 특히, 대량의 읽기 요청이 발생하는 대규모 시스템에서 효과적입니다. 2. Spring Boot에서의 Replication DataSource 구성Spring에서 @Transactional을 활용하여 Databas..
-
[Spring Boot] Spring Data JPA + QueryDSL 설정Spring Boot/기타 2023. 1. 15. 11:35
QueryDSL 이란?쿼리를 문자가 아닌 코드로 작성해도, 쉽고 간결하며 그 모양도 쿼리와 비슷하게 개발 할 수 있는 프로젝트가 바로 QueryDSL입니다. QueryDSL도 Criteria처럼 JPQL 빌더 역할을 하는데 JPA Criteria를 대체할 수 있습니다.QueryDSL은 오픈소스 프로젝트이며, 처음에는 HQL(Hibernate Query Language)을 코드로 작성할 수 있도록 해주는 프로젝트로 시작해서 지금 JPA, JDO, JDBC, Lucene, Hibernate Search, MongoDB, Collections 및 RDFBean을 지원합니다. 참고 - http://querydsl.com/static/querydsl/4.4.0/reference/html_single/ Query..
-
[Spring Boot] Kotlin으로 REST API 만들기(9) - Transaction 적용Spring Boot/Kotlin으로 REST API 만들기 2022. 11. 3. 21:00
Kotlin으로 REST API 만들기(9) - Transaction 적용 1. Transaction 란? 모든 작업이 정상적으로 완료되면 Commit을 실행하고, 작업 처리 중 에러가 발생하면 Rollback하는 방식으로 처리하는 일련의 작업들을 하나의 단위로 묶어서 처리하는 것을 트랜잭션이라고 합니다. 2. Transaction의 기본 원칙 Atomicity (원자성) 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 합니다. (All or Nothing) Consistency (일관성) 트랜잭션이 성공적으로 완료하면 모든 데이터는 일관성을 유지해야 합니다. Isolation (독립성, 격리성) 트랜잭션은 독립적으로 처리되며, 처리되는 중간에 외부에서의 간섭은 없어야 합니다..