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] 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 (독립성, 격리성) 트랜잭션은 독립적으로 처리되며, 처리되는 중간에 외부에서의 간섭은 없어야 합니다..
-
[Spring Boot] Kotlin으로 REST API 만들기(8) - Interceptor 적용Spring Boot/Kotlin으로 REST API 만들기 2022. 11. 1. 23:08
Kotlin으로 REST API 만들기(8) - Interceptor 적용 1. Interceptor 란? 인터셉터란 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 합니다. 2. Interceptor 적용 2_1. Interceptor 구현 HandlerInterceptor 인터페이스를 상속 받아서 PreHandle, PostHandle, afterComplete 메소드를 구현하세요. PreHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 컨트롤러(즉 RequestMapping이 선언된 메서드 진입) 실행 직전에 동작합니다. 반환 값이 true일 경..
-
[Spring Boot] Kotlin으로 REST API 만들기(7) - Kotlin으로 Controller 구현 및 단위 테스트(Junit5)Spring Boot/Kotlin으로 REST API 만들기 2022. 10. 30. 21:00
Kotlin으로 REST API 만들기(7) - Controller 구현 및 단위 테스트 TodoController.kt를 구현한 후 JUnit5을 사용하여 단위 테스트를 작성하세요. 1. TodoController.kt package com.example.springbootrestapi.web.controller import com.example.springbootrestapi.domain.TodoRequest import com.example.springbootrestapi.domain.TodoResponse import com.example.springbootrestapi.service.TodoService import org.slf4j.LoggerFactory import org.springfra..
-
[Spring Boot] Kotlin으로 REST API 만들기(6) - Service 구현 및 단위 테스트(Junit5)Spring Boot/Kotlin으로 REST API 만들기 2022. 10. 30. 19:56
Kotlin으로 REST API 만들기(6) - Service 구현 및 단위 테스트 TodoService.kt를 구현한 후 JUnit5을 사용하여 단위 테스트를 작성하세요. 1. TodoService.kt package com.example.springbootrestapi.service import com.example.springbootrestapi.domain.TodoRequest import com.example.springbootrestapi.domain.TodoResponse import com.example.springbootrestapi.mapper.TodoMapper import org.springframework.stereotype.Service @Service class TodoServ..