전체 글91 java switch expression - from jdk 14 JDK 12 에서 preview 기능으로 새롭게 추가된 switch expression(표현식)이 jdk 14 에서 정식 릴리즈 되었습니다. 이번 포스팅에서는 정식 릴리즈된 switch expression 에 대해서 소개와 사용 방법에 대해서 소개합니다. JDK14 에 정식 릴리즈된 switch expression 은 JEP 361 에서 제안되었습니다. 기존의 switch 구문(statement) 뿐 아니라 하나의 표현식(expression) 으로써 switch 를 제공합니다. "case L ->" Labels switch label 이 일치하는 경우 label 오른쪽에 있는 코드만 실행되도록 하는 새로운 형태의 스위치 lable 입니다. "case L ->" 로 표현합니다. 아래 코드는 기존의 swit.. 자바 2023. 8. 20. java Array vs ArrayList java 에서는 Array 와 ArrayList 는 컬렉션 데이터를 저장하는데 자주 사용되는 기본적인 데이터 구조이다. 모두 동일한 용도로 사용되지만 서로 다른 특성으로 인해 애플리케이션 성능과 유연성에 영향을 미치는 부분이 있다. 이번 포스팅에서는 자바의 Array 와 ArrayList 의 주요 기능 및 각각의 장단점과 두 구조를 변환하는 여러 기법을 소개한다. Arrays Array(배열) 동일 데이터 타입의 요소를 연속된 메모리 위치에 저장하는 [고정 크기]를 가지는 데이터 구조이다. 배열의 각 요소는 index 로 검색할 수 있으며 첫 번째 요소는 index 0 부터 시작한다. 배열은 항상 동일한 데이터 타입의 요소를 저장한다. 배열 타입은 초기화할 때 고정 사이즈로 선언된다. 각각의 요소들은 i.. 자바 2023. 8. 19. java record 용법 - from jdk 14 jdk 14 에서 새로운 타입 으로 record 가 preview 형태로 도입되었습니다. Enum 타입과 마찬가지로 record 타입은 몇가지 제약사항을 가지고 있으며 불변의 데이터 셋을 정의하는데 상당한 간소함을 제공합니다. JEP 359 에 기술된 내용을 보면 record 의 도입배경과 목적 외에 여러 관련 사항들을 확인해 볼 수 있습니다. 이번 포스팅에서는 record의 제약사항 및 용법에 대해서 알아보겠습니다. record 의 도입배경과 목적 불변의 데이터 셋 (data carrier) 역할을 하는 클래스의 경우에도 생성자, 접근자, equals(), hashCode(), toString() 등 반복적인 코드를 많이 작성해야 하는 불편함과 함께 record 는 불변하는 데이터 집합을 보다 쉽고, .. 자바 2023. 8. 19. AWS MediaConvert SDK 사용 방법 (3) - SNS 연결하기 AWS MediaConvert 주제의 마지막 포스팅 입니다. 지난 포스팅에서는 AWS MediaConvert 를 사용하기 위한 role 생성과 MediaConvert SDK 를 이용하여 Job 을 생성하는 방법을 알아 보았습니다. 2023.08.17 - [AWS] - AWS MediaConvert SDK 사용 방법 (1) - role 생성하기 2023.08.18 - [AWS] - AWS MediaConvert SDK 사용 방법 (2) - Job 생성 코드 이번 포스팅에서는 AWS MediaConvert 와 SNS를 연동하여 MediaConvert Job 수행 완료 이벤트를 받는 방법에 대해서 설명합니다. AWS MediaConvert 모니터링에 대한 문서는 아래 링크에서 확인할 수 있습니다. https:.. AWS 2023. 8. 18. AWS MediaConvert SDK 사용 방법 (2) - Job 생성 코드 이전 포스팅에서는 MediaConvert 를 사용하기 위한 role 을 생성하는 방법에 대해서 알아 보았습니다. 이번 포스팅에서는 Spring Boot 프로젝트에 MediaConvert SDK 를 사용하여 Job 을 생성하는 샘플코드를 작성해 보겠습니다. AWS MediaConvert 디펜던시 AWS MediaConvert SDK 를 사용하기 위해서는 software.amazon.awssdk:mediaconvert 디펜던시가 필요합니다. 샘플코드를 작성하기 이전에 트랜스코딩 대상 미디어 파일은 S3 에 업로드 되어 있다고 가정하겠습니다. software.amazon.awssdk bom 2.20.87 pom import io.awspring.cloud spring-cloud-aws-dependencies .. AWS 2023. 8. 18. AWS MediaConvert SDK 사용 방법 (1) - role 생성하기 AWS MediaConvert SKD 를 사용하여 미디어 파일의 트랜스코딩을 하는 방법을 알아봅니다. MediaConvert IAM role 생성 MediaConvert SDK 를 이용하여 MediaConvert Job 생성 MediaConvert Job 완료 이벤트를 수신하기 위한 SNS 연동 AWS MediaConvert 란 AWS 가이드 문서에서 안내하는 내용을 간략히 정리하자면 아래와 같습니다. AWS MediaConvert Elemental은 모든 규모의 미디어 라이브러리를 보유한 콘텐츠 소유자 및 배포자에게 확장 가능한 비디오 처리를 제공하는 파일 기반 비디오 처리 서비스입니다. MediaConvert IAM role 생성 S3 버킷에 있는 트랜스코딩 대상 파일과 트랜스코딩 결과 파일을 저장할.. AWS 2023. 8. 17. spring-boot-starter-parent 와 spring-boot-dependencies Spring Boot는 최소한의 구성 작업으로 프로덕션에 바로 사용할 수 있는 Spring 애플리케이션을 빌드하는 프로세스를 간소화하도록 설계되었다. 이를 위해 Spring Boot 기반 애플리케이션에 대한 기본 구성 및 종속성을 제공하는 특별한 상위 프로젝트인 spring-boot-starter-parent 가 만들어졌다. spring-boot-starter-parent 에 지정된 종속성을 통해서 기본적으로 제공되는 여러 종속성들을 간편하게 사용할 수 있다. spring-boot-starter-parent 관련 내용은 아래 링크에서 확인해 볼 수 있다. https://central.sonatype.com/artifact/org.springframework.boot/spring-boot-starter-p.. 스프링부트 2023. 8. 15. CompletableFuture 를 알아보자 자바에서 스레드 처리시에 Future 객체를 통해서 스레드의 실행 결과를 얻어올 수 있다. 하지만 Future 를 사용하는 경우 단일 스레드 처리가 완료될 때까지 blocking 이 일어나게 된다. Future 의 한계점 Future 는 기본적으로 isDone, isCanceled 와 같은 기본사항을 체크할 수 있는 메소드를 제공하지만 각기 다른 실행시간을 가지는 Future 들을 조합해서 계산을 한다든지 다른 질의의 결과와 같이 계산을 한다든지 하는 복잡한 로직을 다루기가 힘들다. CompletableFuture 는 Future 와 CompletionStage 를 상속하는데 CompletionStage 인터페이스를 통해서 다양한 연쇄 작업을 수행할 수 있도록 한다. CompletionStage Comp.. 자바 2023. 8. 6. 쿠버네티스 pod graceful shutdown pod 내의 container를 종료 시 남아있는 처리를 모두 완료 후에 종료하는 처리가 있다. 물론 application 내에서 종료시 남아있는 처리를 프로그래밍으로 처리할 수도 있겠지만 pod 정의 명세서 상에서 lifecycle.preStop을 활용하여 gracefully shutdown을 구현할 수 있다. 쿠버네티스의 pod 가 종료될 시 kubelet 에서 SIGTERM 시그널을 container application에 전송한다. 참고링크 https://learnk8s.io/graceful-shutdown https://blog.gruntwork.io/gracefully-shutting-down-pods-in-a-kubernetes-cluster-328aecec90d application을 개발.. 쿠버네티스 2023. 8. 6. port forward 명령으로 로컬에서 pod 접속하기 쿠버네티스 클러스터가 구축된 격리된 환경에서 클러스터 내부의 service 혹은 pod 에 직접 접속할 수 있는 간단한 방법으로 port forward 이 있다. 사용법은 아래와 같다. kubectl port-forward service/ : kubectl port-forward pods/ : 위 명령은 로 지정된 port 를 통해 쿠버네티스의 service 에서 사용하고 있는 로 포워딩을 해준다. 혹은 로 지정된 port 를 통해 쿠버네티스의 pod 에서 사용하고 있는 로 포워딩을 해준다. ex) kubectl port-forward service/redis-demo-service 8080:8080 Forwarding from 127.0.0.1:8080 -> 8080 Forwarding from [::.. 쿠버네티스 2023. 8. 4. byte 배열에서 charset 정보 detecting 하기 간혹 바이트 배열의 문자열로부터 인코딩 정보를 알 수 없어 String 타입으로 디코딩 할때 문자열이 깨지는 경우가 있다. 이 경우 charset detector 를 사용하여 해당 바이트 배열로 부터 인코딩 정보를 알 수 있다. 인코딩 정보를 알면 해당 인코딩 정보를 기반으로 디코딩을 하면 되기 때문에 문자열이 깨지는 경우를 어느정도 개선할 수 있다. juniversal charset detector 와 icu4j 사용법에 대한 샘플 코드는 아래와 같다. Juniversal charset detector dependency com.googlecode.juniversalchardet juniversalchardet 1.0.3 package com.example.charset.detect; import or.. 자바 2023. 8. 4. AWS SES 사용하기 AWS SES (Amazon Simple Email Service) 란 (공식문서 인용) Amazon 간편 이메일 서비스(SES)는 자신의 이메일 주소와 도메인을 사용하여 쉽고 비용 효율적인 방식으로 이메일을 주고받을 수 있는 이메일 플랫폼입니다.예를 들어 특별 행사 등의 마케팅 이메일, 주문 확인 등의 거래 이메일, 뉴스레터 등의 기타 유형의 서신을 보낼 수 있습니다. Amazon SES를 사용하여 메일을 수신하는 경우 이메일 자동 응답기, 이메일 수신 거부 시스템, 수신 이메일에서 고객 지원 티켓을 생성하는 애플리케이션과 같은 소프트웨어 솔루션을 개발할 수 있습니다. SES 의 특징은 아래와 같다 SES 를 사용하여 이메일을 발송하려면 보낼 이메일 주소와 함께 도메인을 소유하고 있어야 한다. SES .. AWS 2023. 7. 31. 이전 1 ··· 4 5 6 7 8 다음 💲 추천 글