🌱 들어가기 전이번 포스팅에서는 단일 서버에서 시작하여 사용자 수에 따라 단계적으로 시스템을 개선하는 내용에 대해 알아보자. 🌱 단일 서버 모든 컴포넌트(웹, 앱, DB, 캐시...)가 단 한대의 서버에서 실행되는 시스템 💭 초기 시스템 💭사용자 요청 처리 흐름1. 사용자는 도메인 이름을 이용해 웹 사이트에 접속2. 도메인 이름을 DNS에 질의한 결과로 IP주소 반환3. 해당 IP주소로 HTTP 요청 전달4. 요청받은 웹 서버는 응답 반환 💭 현재 설계의 문제점사용자가 늘면 서버 하나로 충분하지 않다.💭 현재 설계 문제점의 해결책여러 서버를 둔다. (계층을 분리한다) - 웹/모바일 트래픽 처리 서버(웹 계층): 웹/모바일 트래픽 처리 용도- 데이터베이스 서버(데이터 계층): 데이터베이스용 🌱..
이 글은 효율적인 JWT 재발급 프로세스에 대해 고민하고 개선하는 과정을 다룬다. 🌱 들어가기 전 많은 서비스에서 인증/인가를 위해 JWT를 사용하고, 보안상 만료시간을 설정한다. 따라서 JWT 만료시 이를 재발급하는 프로세스가 필수적이다. 🌱 상황작업중인 Seat Sense 서비스에 인증/인가를 위해 JWT를 도입했다. 기존에는 'JWT 재발급 API'를 구현하여, 토큰 만료시 클라이언트에서 다시 JWT 재발급 API를 요청하도록 구현하였다. 💭 고민사항특정 조건에서 동작하는 JWT 재발급 프로세스가 반복적인 작업으로 느껴졌다. "반복되는 작업을 자동화하여 효율적인 프로세스로 개선할 수 없을까?" 고민했다. 🌱개선사항필수적으로 동작하는 로직은 해당 로직 실행을 위한 조건이 충족됐을 때 자동으로..
🌱 들어가기 전이번 포스팅에서는 개발중인 서비스의 예약 시스템을 만들며 발견한 동시성 문제를 해결하는 과정을 다룹니다. - 동시성 제어를 구현한 처음에는 바로 예상한 결과가 나오지 않았었습니다. 그 원인은 트랜잭션 상태 및 커밋 시점과 관련이 있었습니다. 이 내용은 중요한 트러블 슈팅이라 생각하여, 따로 포스팅하였습니다.https://deeper-dev.tistory.com/18 [프로젝트 - 트러블 슈팅] 동시성 제어의 트랜잭션 이슈 및 테스트 환경 이슈 해결🌱 들어가기 전이번 포스팅에서는 동시성 제어 구현 및 테스트 코드 작성 과정에서 발생한, 아래의 세가지 문제를 분석하고 해결하는 과정을 다룹니다.1. profile분리 상황에 발생한 error2. ec2 metaddeeper-dev.tist..
🌱 이 글은 대량 트래픽에 대비한 서비스 주 기능의 조회 성능 개선 과정을 다룹니다.🌱 프로젝트 간단 소개이 글에서 등장하는 프로젝트 Seat Sense는 좌석 현황 정보 제공 및 가게 관리 서비스를 제공합니다. 프로젝트의 구성 단위는 큰 단위순으로 'store(가게) -> space(공간) -> table(책상)과 chair(의자)' 입니다.한 가게에 n개의 space가 존재하고, 한 space에 m개의 table과 x개의 chair가 존재합니다. 🌱 성능 개선이 필요한 기능과 특징 위 이미지는 Seat Sense의 실제 서비스 화면입니다.빨간 박스로 표시한 부분을 보시면, 두 화면 모두 동일한 정보 (space + table + chair 정보) 를 표시합니다. 해당 정보를 띄우기 위해 '좌석 ..