이 저장소는 다중 이미지 업로드 최적화: 병렬 스트림과 CompletableFuture
포스트의 예제 코드를 담고 있습니다.
처리 방법별 코드는 각각의 브랜치에서 관리됩니다. (순차적 업로드 / 병렬 스트림 / CompletableFuture)
다중 이미지 처리 코드는 application 패키지의 ImageStorageService.java
에서 확인할 수 있습니다.
(순차적 업로드 / 병렬 스트림 / CompletableFuture)
PostFacadeService
는 전체 이미지 파일 업로드를ImageStorageService
에 요청합니다.ImageStorageService
는 각 이미지 파일 업로드를StorageClient
에 요청합니다.- 이미지 업로드가 성공하면,
PostFacadeService
는 포스트 저장을PostService
에 요청합니다.
🗳️ 실제 s3 업로드 구현 코드는 S3StorageClient에 있습니다.
spring:
datasource:
url: jdbc:mysql://localhost:13306/sns
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
open-in-view: false
properties:
hibernate:
format_sql: true
show-sql: true
hibernate:
ddl-auto: validate
servlet:
multipart:
max-file-size: 1MB
max-request-size: 10MB
cloud:
aws:
s3:
bucket: {your-bucket-name}
credentials:
access-key: {your-access-key}
secret-key: {your-secret-key}
region:
static: ap-northeast-2
auto: false
stack:
auto: false
s3:
base-url: {your-s3-bucket-base-url}
위 설정에서 {your-bucket-name}, {your-access-key}, {your-secret-key}, {your-s3-bucket-base-url}는 본인의 AWS 환경에 따라 적절히 변경하여 사용하면 됩니다.