java/spring

    [Spring] AWS S3 파일 압축해서 다운로드 - 여러가지 방법 비교분석

    [Spring] AWS S3 파일 압축해서 다운로드 - 여러가지 방법 비교분석

    이전에 Spring을 통해 S3에서 파일을 다운로드하는 API를 개발한 적이 있었다. 2021.08.05 - [java/spring] - [Spring] AWS S3에서 Spring Boot로 파일 다운로드 [Spring] AWS S3에서 Spring Boot로 파일 다운로드 프로젝트 중 AWS S3에서 특정 버킷의 파일을 다운로드 받아야 하는 상황이 생겨 기록을 한다. build.gradle - 의존성 추가 dependencies { ... implementation 'org.springframework.cloud:spring-cloud-starter-a.. gksdudrb922.tistory.com 그러나 이 방법은 단일 객체 하나를 다운받을 수 있었는데, 이번에는 디렉토리를 포함해서 대용량 파일을 ..

    [Spring] AWS S3 객체 삭제

    기본 세팅 먼저 S3 버킷에 대한 퍼블릭 엑세스 설정이 필요하다. 해당 글을 참고하자. 2022.07.25 - [aws] - [AWS] S3 버킷 퍼블릭 엑세스 설정 [AWS] S3 버킷 퍼블릭 엑세스 설정 AWS S3 버킷을 퍼블릭하게 열어두고 사용할 때가 많다. 이번에는 S3 퍼블릭 엑세스에 대한 기본 세팅을 설명한다. 퍼블릭 엑세스 차단 기본적으로 아무 설정 없이 버킷을 생성하면 모든 퍼블릭 엑 gksdudrb922.tistory.com 또한, Spring Boot에서 S3 설정 및 접근에 대한 인증 키를 입력해야 한다. 해당 글을 참고하자. 2022.07.25 - [java/spring] - [Spring] AWS S3 접근 [Spring] AWS S3 접근 라이브러리 추가 implementati..

    [Spring] 엑셀 다운로드 API

    [Spring] 엑셀 다운로드 API

    서비스 운영 중 사용자들 편의를 위해 엑셀 파일 다운로드 기능을 제공할 일이 생겨 학습한 내용을 기록한다. 라이브러리 추가 둘 중 하나만 추가하면 된다. HSSFWorkbook은 .xls 확장자, XSSWorkbook은 .xlsx 확장자 전용이라고 한다. 나는 .xlsx인 두 번째 라이브러리만 추가했다. implementation 'org.apache.poi:poi:5.2.2' // HSSFWorkbook 사용 implementation 'org.apache.poi:poi-ooxml:5.2.2' // XSSFWorkbook 사용 컨트롤러 @Controller @RequiredArgsConstructor @RequestMapping("/excels") public class ExcelController {..

    [Spring] request multipart file size 조정

    스프링 서버에 @RequestPart로 form-data 형식의 파일을 넣어주고 있었는데, 특정 크기 이상의 파일을 요청하면 FileSizeLimitExceededException 에러가 발생했다. 따라서 스프링 설정을 통해 파일 사이즈 한계값을 조정해주었다. spring: servlet: multipart: max-file-size: 10GB max-request-size: 10GB server: tomcat: max-http-form-post-size: 10GB max-file-size: 요청 파일 하나의 사이즈 max-request-size: 요청 파일 총 사이즈 max-http-form-post-size: http form 요청 사이즈 구글에 검색해보면 multipart 설정과 tomcat 설정 ..

    [Spring] MariaDB connection 끊김

    가벼운 API는 상관이 없는데, 호출 한 번에 10분 넘게 소요되는 무거운 API의 경우 중간에 커넥션이 끊기는 현상이 발생했다. 검색을 해보니, DB의 wait_timeout(현재 3분)보다 커넥션이 지속되는 경우 발생하는 문제로 추정된다. 종료된 커넥션을 다시 사용하기 전에 해당 커넥션이 정상적인지 검사를 하는 작업이 필요했고, validation query 설정을 사용하기로 결정했다. 스프링 서버에 해당 설정을 추가한다. spring: datasource: tomcat: validation-query: "select 1" 설정 이후 장시간 소요되는 API에서도 커넥션 끊김 현상이 사라졌다. 참고자료 https://xzio.tistory.com/10 https://engineering-skcc.git..

    [Spring] Failed to validate connection

    서비스 운영 중 아래와 같은 경고 로그가 지속적으로 생겼다. hikariPool - Failed to validate connection org.mariadb.jdbc.MariaDbConnection@7aa2f8a6 ((conn=463456) Connection.setNetworkTimeout cannot be called on a closed connection). Possibly consider using a shorter maxLifetime value. 서비스가 동작하는데 특별한 문제는 없었지만, 자꾸 경고 로그가 발생하는 것이 거슬려서 해결해보기로 한다. 경고 로그 마지막에 using a shorter maxLifetime value 라는 것이 보여서 해당 키워드로 열심히 검색해봤다. 알아본 결..

    [Spring] AWS S3 객체 전체 조회 or 해당 level만 조회

    기본 세팅 먼저 S3 버킷에 대한 퍼블릭 엑세스 설정이 필요하다. 해당 글을 참고하자. 2022.07.25 - [aws] - [AWS] S3 버킷 퍼블릭 엑세스 설정 [AWS] S3 버킷 퍼블릭 엑세스 설정 AWS S3 버킷을 퍼블릭하게 열어두고 사용할 때가 많다. 이번에는 S3 퍼블릭 엑세스에 대한 기본 세팅을 설명한다. 퍼블릭 엑세스 차단 기본적으로 아무 설정 없이 버킷을 생성하면 모든 퍼블릭 엑 gksdudrb922.tistory.com 또한, Spring Boot에서 S3 설정 및 접근에 대한 인증 키를 입력해야 한다. 해당 글을 참고하자. 2022.07.25 - [java/spring] - [Spring] AWS S3 접근 [Spring] AWS S3 접근 라이브러리 추가 implementati..

    [Spring] AWS S3 접근

    라이브러리 추가 implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' 인증 키 추가 본인 IAM 인증 키를 추가하면 된다. cloud: aws: credentials: instance-profile: false access-key: [access-key] secret-key: [secret-key] region: auto: false static: ap-northeast-2 stack: auto: false S3Config @Configuration public class S3Config { @Value("${cloud.aws.credentials.access-key}") public String accessKe..