소개글로벌 플랫폼에서는 각기 다른 시간대를 사용하는 다양한 국가의 사용자들이 서비스를 이용합니다. 이러한 환경에서는 시간 데이터를 어떻게 저장하고 제공하는지가 사용자 경험에 큰 영향을 미칩니다. 이번 글에서는 한국 시간(KST)으로만 관리되던 시간 데이터를 사용자 시간대에 맞게 변환하는 과정을 소개하고, 이를 구현한 기술적 접근 방식을 공유합니다. 문제초기 환경(KST 기반 데이터 관리)처음에는 한국 서버에서만 운영되었기 때문에 모든 시간 데이터가 KST(한국 표준시)로 관리되었습니다. 하지만 플랫폼이 성장하며 미국, 몽골, 베트남 등 다양한 국가의 사용자들이 늘어나자, 동일한 시간 데이터가 사용자마다 다르게 해석되는 문제가 발생했습니다. 사용자 혼란 사례예를 들어, 2024년 10월 30일 08:00..
분류 전체보기
이 글에서는 JWT(Json Web Token) 기반 인증 시스템에서 발생할 수 있는 리프레시 토큰 탈취 문제를 해결하기 위한 실질적인 방법을 제시합니다.탈취된 토큰이 악용되는 상황을 방지하고, 리프레시 토큰 로테이션과 플랫폼별 고유 토큰 관리를 통해 보안을 강화합니다. 프로젝트 환경 요약Spring Boot 3.3.4Java 21JJWT 라이브러리 버전 0.12.3Redis를 활용한 리프레시 토큰 관리Spring Security 의존성 설정JWT와 Redis를 사용하기 위해 다음과 같은 의존성을 추가합니다.dependencies { // JWT implementation("io.jsonwebtoken:jjwt-api:0.12.3") implementation("io.jsonwebto..
소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드프로그래머스 - 코딩 테스트 공부 (문제 링크)동적 계획법(DP) 문제 설명당신은 코딩 테스트를 준비하기 위해 알고리즘과 코딩 구현 능력을 높여야 합니다. 각각의 문제를 풀기 위해 필요한 알고력과 코딩력이 주어지고, 이를 높이기 위한 다양한 방법(알고리즘 공부, 코딩 공부, 문제 풀이)이 제공됩니다. 주어진 모든 문제들을 풀 수 있는 알고력과 코딩력을 얻는 데 걸리는 최단시간을 구하는 문제입니다.제한사항초기 알고력과 코딩력..
소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드프로그래머스 - 도둑질 (문제 링크)동적 계획법(DP) 문제 설명도둑이 한 마을을 털려고 계획하고 있습니다. 이 마을의 모든 집들은 원형으로 배치되어 있으며, 인접한 두 집을 동시에 털면 경보가 울리기 때문에 인접한 집들을 동시에 털 수 없습니다. 각 집에 있는 돈의 양이 담긴 배열 money가 주어질 때, 도둑이 훔칠 수 있는 돈의 최댓값을 구하는 문제입니다. 제한사항마을에 있는 집의 개수는 3개 이상 1,000,000개 ..
소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드프로그래머스 - 등굣길 (문제 링크)동적 계획법(DP)격자 탐색 문제 설명계속되는 폭우로 인해 일부 지역이 물에 잠겨버렸습니다. 이러한 상황에서 집에서 학교까지 가기 위해서는 물에 잠기지 않은 지역을 통과하는 경로를 찾아야 합니다. 주어진 격자에서 오른쪽 또는 아래쪽으로만 이동할 수 있는 상황에서, 집에서 학교까지 갈 수 있는 최단경로의 개수를 구하는 문제입니다.격자의 크기는 m x n으로 주어지며, 출발지점인 (1, 1)과..
소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드프로그래머스 - 로또의 최고 순위와 최저 순위 (문제 링크)구현 문제 설명로또 6/45는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 복권입니다. 각 번호가 모두 일치하는 경우 1등, 5개 일치 시 2등, 4개 일치 시 3등, 3개 일치 시 4등, 2개 일치 시 5등, 그 외는 낙첨(6등)입니다.민우는 로또 번호를 구매했지만, 동생이 실수로 번호를 알아볼 수 없게 만들어 일부 번호는 '0'으로 표시되었습니다. '0'은 어..