본문 바로가기
반응형

공부381

[aws] lambda@edge 를 이용해 이미지 리사이즈 하기(cloud9 사용) 여기서는 CloudFront를 사용한다고 전제되어 있으며 lambda@edge를 이용해 처리하는 방법이다. (CloudFront 란 AWS에서 제공하는 CDN서비스) 단계는 다음과 같다. 1) Cloud9 생성 및 코드 작성 2) IAM 등록 3) 만든 역할을 Lambda에 등록하기 4) Lambda@Edge 배포 & 로그 확인 그럼 시작. Lambda@edge를 배포하려면 '버지니아 북부' 리전의 Lambda만 가능하다. 그래서 리전을 먼저 이동한다. AWS Console => Lambda 로 이동한 후 '함수 생성' 버튼을 클릭한다. 이미지 리사이징을 위한 lambda를 만들때 nodejs 버전을 10로 한다.(14는 아직 미지원) Lambda 파일은 Cloud9을 이용해 만들었다. 1) Cloud9.. 2021. 2. 12.
[springboot] 엑셀 다운로드 시 이름지정 및 한글 깨짐 방지 POI 를 이용해 엑셀 다운로드기능을 개발할 때, 파일명을 지정하지 않으면 uri의 끝부분을 리턴한다. 다만 이렇게 될 경우 확장자도 붙지 않는다. 다음 코드를 확인해 보자 ... @GetMapping("/api/excel/testHangle") public void textExcel(HttpServletResponse response) throws IOException { Workbook workbook = new SXSSFWorkbook(); Sheet sheet = workbook.createSheet(); int rowIndex = 0; Row headerRow = sheet.createRow(rowIndex++); Cell headerCell1 = headerRow.createCell(0); h.. 2021. 2. 10.
[aws] lambda@edge 설정 중 파라미터(query string)이 넘어오지 않는 경우(이미지 리사이징) 결론만 말하자면 frontcloud에서 query string을 받을 수 있도록 설정해야한다. lambda@edge 를 사용하는 경우 frontcloud와 함께쓰는 경우가 많은데 파라미터를 통해 크기를 조절하는 경우가 많다. 그런데 아무리 해도 크기가 줄지 않아 이상해 cloudwatch를 통해 봤다. 중간중간 console.log도 찍어가면서. 알고보니 request에서 querystring(파라미터)가 없는 채 들어오고 있었다. 일단 로그를 다음과 같이 찍었다. exports.handler = async(event, context, callback) => { const { request, response } = event.Records[0].cf; console.log("request: ", requ.. 2021. 2. 8.
[springboot] swagger 설정 & 사용법 문서 자동화에 쓰이는 swagger를 설정 및 사용하는 방법에 대한 포스팅이다. 그럼 시작. build.gradle 에 다음 의존성을 추가한다 dependencies { ... // swagger compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' compile group: 'io.swagger', name: 'swagger-annotations', version: '1.6.2' compile group: 'io.swagger', name: 'swagger-models', versio.. 2021. 2. 4.
[spring] 객체 내 객체에 @Valid 점검하기 예를들어 다음과 같은 데이터 구성이 있다. 유저정보 내 연결된 SNS 계정을 등록해야 한다. 그런데 SNS계정은 1개 이상 필수이며, SNS 유형과 ID가 필수여야한다. 클래스로 표현하면 다음과 같다. @Getter @NoArgsConstructor @AllArgsConstructor public class RequestUser { @NotNull(message = "유저이름은 필수입니다") private String userName; @NotNull(message = "SNS ID는 1개 이상 등록되어야 합니다(1)") @Size(min = 1, message = "SNS ID는 1개 이상 등록되어야 합니다(2)") private List snsAccounts; } @Getter @NoArgsConst.. 2021. 1. 25.
[java] lambda 를 이용한 GroupBy mulitiple field 사용하기 lambda 에서 Collector를 이용해 GroupBy를 사용할 수 있다 결론만 말하자면 DB에 저장되어 있다면 DB에 있는 함수를 사용하길 권장하지만... 데이터 자체를 가공해야한다면 어쩔 수 없이 써야할 거 같다. 암튼 한번 알아보자. 다음과 같이 테스트 데이터를 준비했다. 데이터를 담을 객체를 먼저 생성한다 @Getter @ToString public class Sales { private String yyyymm; private String storeId; private Long sales; public Sales(String yyyymm, String storeId, Long sales) { this.yyyymm = yyyymm; this.storeId = storeId; this.sales.. 2021. 1. 20.
반응형