본문 바로가기
반응형

Java14

Spring Boot Gradle 정보(Property)를 application.yml에서 활용해보자 서론 Spring boot로 프로젝트를 진행하다 보면 gradle파일에 대한 정보나 변수들을 application.yml파일에서 활용해볼 일이 생긴다. 예를 들어, build.gradle파일에 버전 정보를 설정해두고 이 버전 정보를 application.yml파일에 가져와서 쓰고 싶은 경우가 대부분이다. 그럼 이제 build.gradle파일에 있는 정보를 어떻게 application.yml파일에 가져와서 활용을 할 수 있는지 알아보자. build.gradle파일과 application.yml파일 우선 build.gradle 파일에 여러 정보가 있겠지만 예시로 버전 정보를 가지고 진행해 보겠다. version = '0.0.1-SNAPSHOT' 위와 같이 build.gradle파일에 명시되어 있다고 가정하자.. 2024. 1. 17.
Spring Boot 3 Swagger 설정 Dependency 설치 Spring Boot 3.x 기준 Swagger를 설정해 보겠다. implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.1.0' 필자는 springdoc-openapi-starter-webmvc-ui 2.1 버전을 설치하였다. 2.0 이상 버전을 설치하길 바란다. Swagger 설정 기본적인 설정을 해보겠다. title이나 버전은 각자 맞춰서 하면 된다. @Configuration @RequiredArgsConstructor public class SwaggerConfig { @Value("${server.version}") private String Server.. 2023. 9. 5.
Java transient란? transient 키워드, serialize 제외 Transient란? java transient란 자바 프로그래밍 언어에서 사용되는 예약어 중 하나입니다. 이 예약어는 변수나 필드를 특정 상황에서 일 시적으로 직렬화 대상에서 제외시키는 데 사용됩니다. 직렬화는 객체를 저장하거나 전송하기 위해 객체의 상태를 이진 형 식으로 변환하는 과정을 의미합니다. transient 예약어를 변수나 필드 앞에 붙이면, 그 변수나 필드의 값은 객체를 직렬화할 때 저장되지 않습니다. 즉, 해당 필드의 값은 일시적으로 저장되지 않고 불러올 때 별도의 처리가 필요합니다. 이를 간단한 코드 예제를 통해 설명해보겠습니다 Transient 사용법 class Student implements Serializable { // 직렬화 대상 필드 private String name; /.. 2023. 8. 21.
Try-with-resources를 이용한 자원 해제 처리 Try-with-resources란? try-catch문과는 달리 AutoCloseable 인터페이스를 구현한 객체의 자원을 try문이 끝나면 자동으로 close 처리해준다. 말로하는 것보다는 소스를 보는게 빠를 것이다. RedisTemplate을 이용한 Try-with-resources 예제 (Examples) 예시로 RedisTemplate의 scan을 들어보았다. 우선 일반적으로 try-catch-finally문으로 redisConnection을 close하는 방법을 살펴보자. // RedisTemplate scan 예시 public void scan(String pattern) { ScanOptions scanOptions = ScanOptions.scanOptions().match(pattern.. 2023. 8. 19.
[Spring Boot] jib로 AWS ECR에 docker image 올리기 jib 플러그인 설정하기 build.gradle 파일에 plugin 설정을 해준다. plugins { id 'com.google.cloud.tools.jib' version '3.2.1' } Docker Image에 관한 설정하기 build.gradle 파일에 jib 단락안에 from과 to 설정을 해준다. jib { from { image = "openjdk:17-oracle" } to { image = "${your-account}.dkr.ecr.ap-northeast-2.amazonaws.com/${your-ecr-repository-name}" credHelper = 'ecr-login' tags = ["${project.version}-${System.currentTimeMillis()}"] }.. 2023. 8. 14.
[Spring Boot] AWS S3 업로드 하는 법 1. 업로드를 위한 AWS S3 dependency 추가 업로드를 하기위해서 dependency를 추가해보자. dependencies { implementation group: 'com.amazonaws', name: 'aws-java-sdk-s3', version: '1.12.232' implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' } 2. 업로드 Request 간단하게 파일 업로드 예시를 만들어 보자. bucket 이름과 accessKey, SecretKey는 따로 yml파일에 설정해 둔다. @Component public class AwsS3 { private final Regions REGION = Regions.. 2023. 8. 11.
[Spring Boot] SSE(Server-Sent-Event) 설정, 사용법을 알아보자! 1. Dependency 추가하기 우선 필요한 dependency를 추가해 줍시다. dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web' } 2. SSE 설정 및 사용법 클라이언트에서 Sse 이벤트를 구독 등록 하는 컨트롤러 메소드는 text/event-stream으로 해야한다. 간단하게 예시로 알아보자. 설명은 주석으로 달아놓았다. // Controller Class Method @RequestMapping(value = "/test/{token}", method = Requ.. 2023. 8. 10.
[Spring Boot] Redis Pub/Sub 설정 및 사용법!! 안녕하세요. 오늘은 간단하게 Spring Boot에서 Redis Pub/Sub 설정하는 법을 알아보도록 하겠습니다~! 1. Dependency 설정하기 dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis' } 2. Configuration 설정하기 // @Configuration Class @Bean public Redi.. 2023. 8. 9.
[Spring Boot] Logging 설정하기 (로그 설정) Spring Boot Log 설정 준비(Logback) Spring Boot Logging 설정을 해보자. 로그 설정 전에 일단 어떤 로그를 찍을지 고민을 해봐야한다. API 요청(Request, Response)의 로그를 찍을 것인가. 내가 필요로하는 데이터의 로그를 찍을 것인가. API 요청에 대한 로그는 말 그대로 외부에서 들어온 요청이 어떤 데이터가 있었고 나갈때는 어떤 데이터를 주었는지, 에러가 있었는지에 대한 로그다. 내가 필요로하는 데이터의 로그는 API 요청에 대한 로그와는 상관없이 로직 내의 어느 부분에 로그를 찍고 싶다던가, 어떤 데이터를 수집을 하여 통계용으로 쓴다던가할 때 쓸 수 있을 것이다. Dependency 설정 많이들 쓰는 logback과 @slf4j로 로그를 찍어보자. 그리.. 2023. 7. 21.
반응형