전체보기
-
[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 웹 관리 콘솔에 사..
-
[Java] 배열(Array)을 리스트(List)로 변환 - 반복문, Arrays, Collection, StreamJava/기타 2023. 5. 6. 17:36
배열(Array)을 리스트(List)로 변환 배열을 리스트로 변환하는 방법은 반복문을 사용하거나 Arrays, Collection, Stream 클래스에세 제공하는 메서드를 사용하여 변환할 수 있습니다. 방법 01. 반복문을 사용 빈 리스트를 생성한 후, 배열의 모든 요소를 리스트에 추가하는 방법입니다. Integer, Double, String 등 여러 타입의 배열을 리스트로 변환하는 경우 제네릭 타입의 메서드를 정의하여 코드의 양을 줄일 수 있습니다. import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 배열(Array)을 리스트(List)로 변환 - 반복문, Arrays, Collection, Steram ..
-
[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.html Amazon S3 설정 1. 의존성 추가 Amazon S3를 사용하기 위해 spring-cloud-starter-aws 의존성을 추가하세요. build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.7' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'com..
-
[Spring boot] Database가 Replication일 때 DataSource 설정Spring Boot/기타 2023. 1. 17. 23:25
1. Replication 란? Master/Slave 관계를 설정하고 데이터 원본은 Master, 데이터 사본은 Slave에 저장한 후 Master에서는 Write(Insert, Update, Delete) 작업을 Slave에서는 Read(Select) 작업을 처리하여 부하를 분산시키는 기술입니다. 2. DataSource 설정 @Transactional(readOnly = true | false) 을 통해 Database Replication일 때 DataSource를 설정할 수 있습니다. @Transactional(readOnly = false) 일 때는 Master DB에서 처리 @Transactional(readOnly = true) 일 때는 Slavee DB에서 처리 application.ym..
-
[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/ Quer..
-
[Docker] Docker로 Redis Cluster, P3X Redis UI 설치(docker-compose.yml)Docker 2022. 11. 15. 14:35
1. Redis 컨테이너 이미지 가져오기 docker pull redis 2. P3X Redis UI 컨테이너 이미지 가져오기 docker pull patrikx3/p3x-redis-ui 3. docker-compose 파일 생성 # compose 파일 버전 version: "3" services: # 서비스명 # Redis Cluster 설정 redis-cluster: # 사용할 이미지 image: redis:latest # 컨테이너명 설정 container_name: redis-cluster # 접근 포트 설정 (컨테이너 외부:컨테이너 내부) ports: - "6001:6001" - "6002:6002" - "6003:6003" # 환경 변수 설정 volumes: - ./config/redis/red..
-
[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 (독립성, 격리성) 트랜잭션은 독립적으로 처리되며, 처리되는 중간에 외부에서의 간섭은 없어야 합니다..