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) 빌드 / 테스트 자동화과정 커밋할 때마다 빌드..
Docker 알아보기! Dockerfile 만들기, 이미지와 컨테이너 빌드하기
·
개발 하나둘셋/Java & Spring
개념정리 & 실행하기 Docker 도커 직접 docker를 활용한 서버 배포를 경험하게 되었다. 유튜브 영상들과 팀장님의 친절한 설명으로 flow를 이해하고 나니 생각보다 어렵지 않았다!(고 해놓고 도커파일 만들고 컨테이너 빌드하는데 하루 웬종일 걸렸다😅) 경험은 해봤지만 아직 도커파일이나 도커 명령어들이 익숙하지 않아 다시보면 기억이 나게끔 정리를 해보았다! [차례] 1. Docker란? - Docker의 개념 - Docker의 작동방식 2. Docker 사용하기 - Docker flow - Docker file 1. Docker란? Docker의 개념 Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼 Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키..
SpringBoot 슬랙 Slack알림보내기 ChatPostMessageRequest
·
개발 하나둘셋/Java & Spring
개발꿀팁 slack 알림보내기 프로젝트 중 문의사항을 받으면 slack알림이 오는 기능을 구현. slack연동을 위한 토큰 발급방법과 slck 메세지 작성 등을 정리해 보았다. 1. 준비 build.gradle build.gradle에 dependencies를 아래와 같이 추가한다. implementation("com.slack.api:bolt:1.18.0") implementation("com.slack.api:bolt-servlet:1.18.0") implementation("com.slack.api:bolt-jetty:1.18.0") application.yml yml에는 토큰을 발급받고 챗봇을 만들 채널명을 적으면 된다. slack: token: xoxb-발급받은 토큰 channel: monito..
유리코딩
'개발 하나둘셋/Java & Spring' 카테고리의 글 목록 (2 Page)