java
[Java] 등가속도 운동 - t초 후의 위치 계산
등가속도 운동에서 방향, 속도, 가속도가 주어질 때, t초 후의 위치 계산하는 코드이다. 물리학이긴 하지만,, 테스트할 일이 있어서 코드로 구현해 보았다. 코드는 유클리드 기하학 기준이다. (좌표평면) // 초기 위치(x, y), 방향(direction), 속도(velocity), 가속도(acceleration)이 주어졌을 때 // t초 후의 위치(x_prime, y_prime)을 계산 double space = velocity * time + 0.5 * acceleration * Math.pow(time, 2); double x_prime = x + space * Math.cos(direction); double y_prime = y + space * Math.sin(direction); 참고삼아 그림..
[Spring] Mockito when으로 repository save 리턴받기
문제 단위테스트로 Mockito를 사용하던 중, repository save의 리턴 값에 대한 assert를 하고 싶었다. 그러나 객체가 실제 DB에 저장되지 않기 때문에 repository save는 null을 리턴한다. 나는 save한 객체를 그대로 받고 싶었고, 참고자료를 통해 해결했다. 해결 when(userRepository.save(any(User.class))).then(AdditionalAnswers.returnsFirstArg()); repositroy save로 어떤 User가 넘어가든, save의 첫 번째 인자를 리턴하도록 stubbing을 설정했다. 이제 리턴받은 객체로 원하는 검증을 할 수 있다. https://stackoverflow.com/questions/26161917/mo..
[Spring] AWS S3 압축 파일 풀어서 업로드하기 - TransferManager
이전에 Spring을 통해 S3 파일을 압축해서 다운로드하는 글을 작성했는데, 많은 도움이 되었다. 2022.08.05 - [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로 파일 다운로드.. gksdudrb922.tistory.com 이번에는 반대로 압축파일을 업로드하면 S3에 풀어서 저장되는 API를 구현하고자..
[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
서비스 운영 중 사용자들 편의를 위해 엑셀 파일 다운로드 기능을 제공할 일이 생겨 학습한 내용을 기록한다. 라이브러리 추가 둘 중 하나만 추가하면 된다. 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] JPA 연관관계 - ID 만 사용해서 save
다대일 연관관계를 맺고 있는 두 엔티티가 있다고 하자. @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; public Member(Team team) { this.team = team; } } @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity publi..
[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 설정 ..