AWS SAA-C03 한국어 샘플 13번
·
카테고리 없음
[문제13]한 회사에 Amazon RDS DB 인스턴스에서 대부분의 메타데이터를 읽는 모바일 게임이 있습니다. 게임의 인기가 높아짐에 따라 개발자들은 게임의 메타데이터 로드 시간과 관련된 속도 저하를 발견했습니다. 성능 지표에 따르면 단순히 데이터베이스를 확장하는 것은 도움이 되지 않습니다. 솔루션 설계자는 스냅샷, 복제 및 밀리초 미만의 응답 시간 기능을 포함하는 모든 옵션을 탐색해야 합니다. 솔루션 설계자가 이러한 문제를 해결하도록 권장해야 합니까?A. Aurora 복제본을 사용하여 데이터베이스를 Amazon Aurora로 마이그레이션합니다.B. 글로벌 테이블을 사용하여 데이터베이스를 Amazon DynamoDB로 마이그레이션합니다.C. 데이터베이스 앞에 Redis용 Amazon ElastiCache..
접속자 대기열 시스템 #7- 대기열 스케줄러 개발
·
프레임워크/자바 스프링
접속자 대기열 시스템 #7 - 대기열 스케줄러 개발이번 단계에서는 대기열에서 사용자를 자동으로 허용하는 스케줄러를 구현합니다. 이 스케줄러는 주기적으로 대기열을 확인하고, 일정 수의 사용자를 허용 목록으로 이동시키는 역할을 합니다. 이를 통해 대기열 시스템을 자동화하고 효율성을 높일 수 있습니다.1. UserQueueService 클래스UserQueueService 클래스는 대기열과 관련된 비즈니스 로직을 담당하며, 스케줄러를 통해 대기열 관리 작업을 수행합니다.스케줄러 메서드: scheduleAllowUser@Slf4j@Service@RequiredArgsConstructorpublic class UserQueueService { private final ReactiveRedisTemplate r..
접속자 대기열 시스템 #6- 접속 대기 웹페이지 개발
·
프레임워크/자바 스프링
접속자 대기열 시스템 #6 - 접속 대기 웹페이지 구현 및 순번 조회이번 단계에서는 접속 대기 웹페이지를 개발하고, 사용자가 대기열에 등록된 순번을 확인할 수 있도록 하는 기능을 구현합니다. 이를 위해 사용자 순번을 조회하는 API와 대기 페이지를 제공하는 컨트롤러를 작성하며, 테스트를 통해 올바르게 동작하는지 검증합니다.1. UserQueueController - 순번 조회 APIUserQueueController는 사용자 대기 순번을 조회할 수 있는 API를 제공합니다.@GetMapping("/rank")public Mono getRankUser( @RequestParam(name = "queue", defaultValue = "default") String queue, @R..
접속자 대기열 시스템 #5- Redis를 이용한 대기열 관리 및 웹페이지 진입 API 구현
·
프레임워크/자바 스프링
이번 포스팅에서는 사용자 접속 대기열 시스템을 구축하기 위한 API 구현을 다룹니다. 목표는 사용자들이 웹페이지에 진입할 수 있는지 여부를 확인하고, 대기열 관리 로직을 통해 접속을 허용하거나 대기시킵니다. 이를 위해 Redis의 SortedSet 데이터 타입을 활용하여 사용자 대기열을 관리하고, 접속이 허용된 사용자들은 허용 목록에 추가합니다.1. 대기열 관리 로직 설계대기열 등록: 사용자가 접속 대기열에 등록될 때, Redis의 SortedSet에 userId를 Unix 타임스탬프와 함께 추가합니다.접속 허용: 일정한 수의 사용자가 대기열에서 제거되며, 이 사용자는 접속이 허용된 목록에 추가됩니다.접속 가능 여부 확인: 사용자가 접속이 허용된 상태인지 확인하고, 대기열에서 진입이 허용된 경우에는 대기..
접속자 대기열 시스템 #4- 대기열 등록 API 개발
·
프레임워크/자바 스프링
핵심 코드 분석1. UserQueueController - 대기열 등록 API@RestController@RequestMapping("/api/v1/queue")@RequiredArgsConstructorpublic class UserQueueController { private final UserQueueService userQueueService; @PostMapping public Mono registerUser( @RequestParam(name="queue", defaultValue = "default") String queueNm, @RequestParam(name="user_id") Long userId ){ retur..
Spring MVC와 Spring Webflux 성능비교
·
프레임워크/자바 스프링
Spring MVC와 Spring WebFlux 성능 비교를 위한 프로젝트 구성이번 포스트에서는 Spring MVC와 Spring WebFlux를 사용해 간단한 웹 애플리케이션을 구현하고, 두 프레임워크의 성능을 비교하는 방법을 다룹니다. 이 글에서는 각 프로젝트의 설정 및 핵심 코드에 대해 자세히 설명하겠습니다. 특히 동기식과 비동기식 처리 방식의 차이를 이해하는 데 중점을 두겠습니다.1. Docker를 이용한 환경 구성성능 비교를 위해 MySQL과 Redis가 필요하므로, Docker를 사용하여 각각의 컨테이너를 설정합니다.MySQL과 Redis 컨테이너 실행docker run --name mysql-r2dbc -e MYSQL_ROOT_PASSWORD=r2dbc -e MYSQL_DATABASE=mvc..
Reactive Redis
·
프레임워크/자바 스프링
이미지에서 보여지는 구조를 바탕으로 분석한 결과, 이 시스템은 Spring WebFlux를 이용해 비동기적으로 API 서버 및 RDBMS와 통신하는 구조를 나타내고 있습니다. 주요 통신 경로를 살펴보면:Reactor-Netty (Async): 클라이언트와 Spring WebFlux 간의 통신은 Reactor-Netty를 통해 비동기적으로 이루어집니다. 이는 WebFlux의 기본 비동기 처리 방식입니다.WebClient (Async): Spring WebFlux는 API 서버와 WebClient를 이용해 비동기 통신을 하고 있습니다. 이 역시 논블로킹 방식으로 처리됩니다.R2DBC (Async): 관계형 데이터베이스(RDB)와의 통신은 R2DBC를 통해 비동기적으로 처리됩니다. 이를 통해 많은 양의 데이터..
Redis Replication
·
DB/Redis
dc ps Name Command State Ports--------------------------------------------------------------------------redis docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcpreplica docker-entrypoint.sh redis ... Up 0.0.0.0:6378->6379/tcpreplica2 docker-entrypoint.sh redis ... Up 0.0.0.0:6377->6379/tcpdocker-compose exec redis redis-..