Spring Boot/기타
-
[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.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..
-
[Spring Boot] 유효성 검사 처리 (Custom Validation)Spring Boot/기타 2022. 6. 6. 18:46
1. DateValid 구현 DateValid.java package com.example.customvalidation.annotiaon; import com.example.customvalidation.validator.DateValidator; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.validation.Constraint; import javax.validati..
-
[Spring Boot] 에러 메시지 처리 (Custom Exception)Spring Boot/기타 2022. 6. 6. 13:07
1. build.grade plugins { id 'org.springframework.boot' version '2.7.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { // spring-boot-starter 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springf..
-
[Spring Boot] MockMvc 사용 시 한글이 깨지는 현상Spring Boot/기타 2021. 8. 29. 16:33
[원인] Spring Boot 2.2.0.RELEASE 부터 MediaType.APPLICATION_JSON_UTF8 Deprecated 되어 Content-Type: application/json;charset=UTF-8 요청에 대해 Content-Type: application/json 으로 응답하여 한글이 깨지는 현상이 발생합니다. [해결 방법] MockMvc 빌드 시 CharacterEncodingFilter 추가 @Autowired private MockMvc mockMvc; @Autowired private WebApplicationContext ctx; // JUnit5(@BeforeEach), JUnit4(@Before) @BeforeEach public void setup() { this..