스프링에선 lombok의 자동으로 위 코드로 만들어주는 @Builder 가 있다.
빌더패턴을 사용하게 되면 인자 값의 순서가 상관없다. 또한 상황에 맞게 유연한 코드가 완성된다.
예를 들어 3개의 인자가 필요할 때, 생성자는 따로 3개의 인자를 받는 생성자를 만들어줬어야 했지만, 빌더는 3개의 인자만 넣으면 된다.
즉, 3개의 인자를 가지는 형태로 변형된다. 이로인해 유지보수가 향상된다.
public class NutritionFacts {
private int servingSize;
private int servings;
private int calories;
private int fat;
private int sodium;
private int carbohydrate;
@Builder
public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) {
this.servingSize = servingSize;
this.servings = servings;
this.calories = calories;
this.fat = fat;
this.sodium = sodium;
this.carbohydrate = carbohydrate;
}
}
https://skatpdnjs.tistory.com/13
S3 설명서 메인
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Welcome.html
객체 Upload
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/upload-objects.html
미리 서명된 URL 취득
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/S3OutpostsShareObjectPresignedURL.html
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/example_s3_Scenario_PresignedUrl_section.html
※ 참고
https://techblog.woowahan.com/11392/
java sdk
https://docs.aws.amazon.com/ko_kr/sdk-for-java/latest/developer-guide/get-started.html
스프링부트 파일 업로드
https://spring.io/guides/gs/uploading-files/
https://velog.io/@gun_123/java-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EC%B2%98%EB%A6%AC
s3 transfer manager
https://docs.aws.amazon.com/ko_kr/sdk-for-java/latest/developer-guide/transfer-manager.html
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/creating-bucket.html
디폴트 값으로 설정.
region의 경우 서울로 설정.
Bucket name은 네이밍 규칙에 따름
삭제시 복원이 가능한 기능. 추가 비용 발생등으로 disable
초기에는 미설정, 추후 life cycle 관리등 필요시 추가