전체 글
-
[Java] 배열(Array)을 리스트(List)로 변환 - 반복문, Arrays, Collection, StreamJava/Collection(컬렉션) 2023. 5. 6. 17:36
목차 배열(Array)을 리스트(List)로 변환배열을 리스트로 변환하는 방법은 반복문을 사용하거나 Arrays, Collection, Stream 클래스에세 제공하는 메서드를 사용하여 변환할 수 있습니다. 1. 반복문을 사용빈 리스트를 생성한 후, 배열의 모든 요소를 리스트에 추가하는 방법입니다. 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.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..
-
[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" # 환경..
-
[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..
-
[Spring Boot] Kotlin으로 REST API 만들기(5) - Mapper 구현 및 단위 테스트(Junit5)Spring Boot/Kotlin으로 REST API 만들기 2022. 10. 30. 10:45
Kotlin으로 REST API 만들기(5) - Mapper 구현 및 단위 테스트 To-Do 조회, 등록, 수정, 삭제를 위한 TodoMapper.xml, TodoMapper.java를 구현한 후 JUnit5을 사용하여 단위 테스트를 작성하세요. 1. TodoMapper.kt package com.example.springbootrestapi.mapper import com.example.springbootrestapi.domain.TodoRequest import com.example.springbootrestapi.domain.TodoResponse import org.springframework.stereotype.Repository @Repository interface TodoMapper { /..