Spring Boot 3.x 주요 변경 사항과 마이그레이션 방법
·
개발 하나둘셋/Java & Spring
2022년 11월 기존의 Spring framework 5와 Spring Boot 2.X를 대체하는 Spring framework 6와 Spring Boot 3가 릴리즈되었다. 새로들어가는 회사 프로젝트와 사이드프로젝트에서 Spring Boot 3버전을 사용하기에 오늘은 Spring Boot 3버전의 주요 업데이트 내용과 레거시 방법에 대해서 알아볼려고 한다. 1. Spring Boot 3.x 주요 업데이트 내용 Java 17 버전 이상만 지원: Spring Boot 3.0은 최소 Java 17을 필요로 하며, Kotlin 1.7 이상도 지원 Java EE를 Jakarta EE로 대체: javax.*에서 jakarta.*로 변경. 기존에 java는 오라클이 상표권을 갖고 있기 때문에 Jakarta로 이름..
Redis 서버 재시작 시 데이터 초기화 문제와 해결 방법: RDB와 AOF
·
개발 하나둘셋/Java & Spring
오늘은 Redis 서버가 재시작될 때 발생하는 데이터가 삭제되는 문제를 다룰려고 한다. 실제로 redis로 조회수 구현 로직을 작성했을 때 조회수이기 때문에 유지가 되어야하는데 서버를 재시작할 때마다 리셋이 되서 조금 당황했던 경험이 있다. 왜 데이터가 삭제되는지, 해결방법에는 어떤 것이 있는지 정리해보겠다.1. 문제점: 서버 재시작 시 데이터 삭제Redis는 메모리 기반의 데이터 스토어로서, 기본 설정 상태에서는 서버가 재시작되면 메모리에 저장된 모든 데이터가 삭제된다. 이는 내가 사용했던 Sorted Set뿐만 아니라 모든 자료형의 데이터에 적용되는 문제이다.2. 해결 방법: Redis 설정 변경을 통한 데이터 영속성 확보데이터를 디스크가 아닌 메인 메모리에 저장하고 관리하는 "In-memory D..
Redis를 활용한 효율적인 조회수 관리 방법
·
개발 하나둘셋/Java & Spring
오늘은 Redis를 활용하여 조회수를 관리하는 기능을 구현해보려고한다. 부끄럽게도 기존에는 사용자가 거의 없기 때문에 DB로만 관리해왔다. 이 글을 통해 기존 방식에서 Redis로 변경한 이유와 그 과정에 대해 기록해보고자 한다. 1. 기존의 DB 방식에서 문제점 기존에는 데이터베이스를 사용하여 조회수를 관리했다. 사용자가 웹 페이지를 조회할 때마다 해당 페이지의 조회수를 1씩 증가시키는 방식이었다. 하지만 이 방식에는 문제점이 있다. 동시성 문제: 여러 사용자가 동시에 같은 페이지를 조회할 경우, 조회수의 정확성을 보장하기 어렵다. 동시에 조회수를 업데이트하려다 보면 한 사용자의 조회가 누락되는 경우가 발생할 수 있다. 데이터베이스 부하: 조회수 업데이트는 매우 빈번한 작업이다. 많은 사용자가 활동하는..
Java 'MultipartFile'에서 파일 이름 가져오기 문제와 해결방법, 유니코드
·
개발 하나둘셋/Java & Spring
파일 업로드 시 가장 많이 사용하는 것 중 하나가 'MultipartFile'이다. 하지만 'MultipartFile'를 이용할 때, 파일 이름을 가져오는 과정에서 발생하는 문제가 발생했다. 나의 경험을 바탕으로 이 문제와 그에 대한 해결방법을 공유하고자 한다. 1. 발견 및 문제점 발견 목록에서 조회 api를 작성하는데 간단한 검색기능이 같이 들어갔다. 보통은 querydsl의 contains함수를 이용해 저장되어 있는 데이터에 프론트로부터 받은 검색어가 포함되어 있는 데이터를 조회하는 간단한 검색기능이었다. 그러나 이번엔 도통 부분검색이 되지않았다. 보통은 파일을 업로드 할 때 MultipartFile의 'getOriginalFilename()'메서드를 사용하여 File이름을 간단하게 가져올 수 있다..
AWS SDK for Java V1, V2 차이 / s3객체 업로드, 복사, 삭제 구현하기
·
개발 하나둘셋/Java & Spring
개발꿀팁 AWS SDK V1 or V2 개발자 가이드, s3영상 업로드 / 삭제 최근 영상관련 서비스를 준비하면서 aws의 s3를 많이 사용한다. 관련해서 몇가지 새로 알게된 내용이나 관련된 글을 작성해볼려고 한다. s3관련해서 기능 구현을 하는데 어떤 글에서는 com.amazonaws를 사용하고 다른 글에서는 software.amazon.awssdk를 사용하여 의존성을 주입하는 것을 확인할 수 있다. 공식문서를 찾아보니 com.amazonaws는 v1, software.amazon.awssdk는 v2로 구분되어 있고 샘플코드도 잘 정리되어 있었다 v1과 v2에 차이점에 대해 찾아보니 고수준 라이브러리는 버전 v2에서 아직 사용할 수 없다고 나온다. 처음에는 이 말만 듣고 v1이 안정적이겠다 생각해서 ..
TeamCity로 CI/CD 적용하기
·
개발 하나둘셋/Java & Spring
개발꿀팁 TeamCity로 CI/CD 적용하기 TeamCity로 CI/CD를 구현하게 되었다! TeamCity를 조금 더 이해하고 익히고자, 잊어버렸더라도 다시보면 한눈에 기억해낼 수 있도록 정리해보기로 했다 CI/CD와 TeamCity에 대해 알아보고 적용하는 방법까지 정리해보자! 1. CI / CD 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법 또는 전략 코드통합, 테스트, 릴리즈, 배포(Deployment)의 애플리케이션 라이프사이클 전체 과정을 자동화하고 모니터링 가능하도록 하는 것, 이러한 연속된 과정을 "CI/CD 파이프라인"이라고 부른다. CI - 지속적 통합(Continuous Integration) 빌드 / 테스트 자동화과정 커밋할 때마다 빌드..
유리코딩
'개발 하나둘셋' 카테고리의 글 목록 (2 Page)