Spring61 Spring Cloud 2022.0이상 @EnableEurekaClient 사용 불가 Spring Cloud Version 2022.0 이상 사용하는 경우(Spring Cloud Netflx 기준 4 이상), @EnableEurekClient는 사용이 불가능하다. 더이상 SpringBoot 기본 애플리케이션에 @EnableEurekClient 주석을 달 필요가 없다. pom.xml에 spring-cloud-starter-netflix-eureka-client 종속성을 추가하고, yml 또는 properties 파일에 애플리케이션 이름이 있으면 Eureka에 등록되는 형식으로 변경되었다. spring: application: name: shiba-holic REFERENCE https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-.. 2023. 6. 5. Spring Boot 3 + JPA를 활용한 Liquibase 실습하기 (3) 📖 실습 내용 1. Spring Boot 3 + Spring Data JPA 환경에서 Liquibase 환경을 설정한다. 2. Entity 파일을 생성한 뒤, 로컬 DB와 스키마 차이에 대한 ChangeLog 파일을 생성한다. (diff) 3. Liquibase를 통해 ChangeLog 파일을 기반으로 데이터베이스에 적용하고 로그를 확인한다. 4. profile 설정을 통해 개발 환경별로 적용한다. 📖 실습 3. ChangeLog 파일을 적용하고 로그 확인하기 이전 실습들을 통해 프로젝트에 Liquibase 설정과 로컬 DB와 엔티티 간의 스키마 차이에 대한 정보를 담고 있는 ChangeLog 파일을 생성했다. 이번 실습에서는 ChangeLog 파일을 적용하여 DB 스키마를 변경하고 관련 로그를 확인해 .. 2023. 5. 29. Spring Boot 3 + JPA를 활용한 Liquibase 실습하기 (2) 📖 실습 내용 1. Spring Boot 3 + Spring Data JPA 환경에서 Liquibase 환경을 설정한다. 2. Entity 파일을 생성한 뒤, 로컬 DB와 스키마 차이에 대한 ChangeLog 파일을 생성한다. (diff) 3. Liquibase를 통해 ChangeLog 파일을 기반으로 데이터베이스에 적용하고 로그를 확인한다. 4. profile 설정을 통해 개발 환경별로 적용한다. 📖 실습 2. 로컬 DB와 Entity 간의 스키마 차이 ChangeLog 만들기 이전 실습에서는 프로젝트에 기본적인 Liquibase를 완료했다. 이번 실습에서는 프로젝트에 Spring Data JPA 기반의 간단한 엔티티를 생성하고, DB와 스키마 차이에 대한 ChangeLog 파일을 만들 것이다. 1. .. 2023. 5. 20. Spring Boot 3 + JPA를 활용한 Liquibase 실습하기 (1) 📖 실습 내용 1. Spring Boot 3 + Spring Data JPA 환경에서 Liquibase 환경을 설정한다. 2. Entity 파일을 생성한 뒤, 로컬 DB와 스키마 차이에 대한 ChangeLog 파일을 생성한다. (diff) 3. Liquibase를 통해 ChangeLog 파일을 기반으로 데이터베이스에 적용하고 로그를 확인한다. 4. profile 설정을 통해 개발 환경별로 적용한다. 📖 실습 1. Liquibase 환경 설정하기 기본 실습 환경은 다음과 같다. 1. Spring Boot 3.0.6 2. Maven 3.8.4 3. Java 17 4. MariaDB 10.6 1. Liquibase Dependency 추가 Liquibase를 사용하기 위해서 liquibase-core 의존성을.. 2023. 5. 14. Spring DB Migration Tool Flyway, Liquibase 특징, 유사점, 차이점 📖 DB Migration Tool 마이그레이션(migration)이란, 한 운영 환경에서 다른 운영환경으로 옮기는 작업이다. 그렇다면 데이터베이스 마이그레이션은? 특정 데이터베이스 환경에서 다른 데이터베이스 환경으로 옮기는 작업이다. 서로 다른 데이터베이스가 데이터를 주고받으며, 그 과정 안에서 발생하는 모든 작업을 통틀어서 마이그레이션이라 한다. 일반적으로 개발 환경에서 데이터베이스 스키마를 변경했으나, 운영 환경의 데이터베이스 스키마가 변경되지 않았을 경우 마이그레이션을 수행한다. 개발 환경에서 요구 사항에 따라 서비스 로직과 스키마를 수정하고, 운영 환경 데이터베이스에 데이터를 수기로 옮길 때 일부 누락 등의 실수로 애를 먹는 경우가 있다. 데이터베이스 마이그레이션은 이러한 문제를 해결해 준다. .. 2023. 5. 13. 데이터베이스 통합 테스트 코드 작성 Tip ✏️ 배경 데이터베이스 즉, JPA Repository와 연동된 서비스 비즈니스 로직 테스트 코드를 작성할 때 몇 가지 궁금했던 사항들이 존재한다. DB와 연결된 테스트 코드는 어떻게 작성하는 게 좋은지 배운 점을 공유하고, 진행 중인 프로젝트의 테스트 코드 작성에도 도움을 주기 위해 해당 포스팅을 작성한다. 📕 1. 데이터베이스 상태 재설정 데이터베이스를 활용한 테스트 코드를 작성할 때는 데이터베이스 스키마가 올바르게 되어 있는지, 불필요한 데이터가 들어 있는지 확인해야 한다. 가장 간단한 방법은 테스트 메서드의 시작 시점에 테이블을 모두 지우는 방법을 활용하는 것이다. 테스트 실행 전 메서드(@Before)에 deleteAll() 메서드를 설정하자. 📕 2. 도우미 메서드 작성 데이터베이스과 통합 테.. 2023. 5. 6. ObjectMapper 사용할 때 Validator 활용하기 ✏️ 배경 프로젝트를 진행하면서 ObjectMapper를 활용해서 Json 형식의 문자열을 직접 파싱해야 하는 경우가 있었다. 그때 javax.validator 패키지의 Validation 애노테이션을 활용해서 자동으로 검증 기능을 활용하고 싶었는데, 자주 사용하던 @Validated와 @Valid 등은 범위가 벗어나 적용이 되지 않아서 다른 대안을 찾게 되었다. 해당 포스팅은 관련 상황에 있을 때 Validator를 활용하는 방법에 대해서 공유하고자 한다. 🙄 🔎 문제 @Test public void blackShibaTest() throws JsonProcessingException { String example = "{\"id\":1,\"name\":\"흑시바\",\"age\":30}"; Objec.. 2023. 5. 1. [Batch] 스프링 배치 개념, 특징과 용어 정리 ✏️ 배경 처음 고도화를 맡게 된 프로젝트에서는 배치 처리가 @Scheduled를 사용한 단순한 스케줄링이 전부였다. 이러한 단순한 스케줄링에는 여러 가지 문제점이 있었다. 1. 처리 도중 문제가 발생하면 모든 데이터가 롤백되어 처음부터 다시 처리해야 된다. 2. 언제 어디서 어떠한 이유로 에러가 발생했는지 알 수 없어서 로그를 추적하기가 어렵다. 3. 배치가 성공 및 실패 여부를 나중에 알게 되어 즉시 반응하기가 어렵다. 이러한 문제점을 해결하고자 스프링 배치를 도입했고 기존 배치 서비스를 개선할 수 있었다. 스프링 배치 활용하면서 스프링 배치의 유용한 점들을 직접 경험하게 되었고, 다음에 더 잘 활용하기 위해 스프링 배치 기술에 대한 정리 및 학습을 목적으로 Batch 카테고리를 만들게 되었다. 🔎 .. 2023. 4. 22. 이전 1 ··· 3 4 5 6 7 8 다음