프로젝트/CStar

🎯 문제상황프로젝트를 진행해감에 따라서 데이터 베이스 변경사항을 기록해놓으면 좋을 것 같다고 생각해서, 그동안은 resource 경로에 직접 테이블 변경 사항 sql문을 적어주었다.   이렇게 기록을 해주고, 어플리케이션을 시작할 때마다 모든 변경사항들이 자동으로 반영되어 최신화 되도록 하기 위해서 application-local.yml에서 아래 처럼 설정해주었다. 위는 실제 애플리케이션 구동마다 해당 sql문을 순차적으로 실행하게 된다. 문제는 여기서 발생하는데, 아래처럼 init_schema.sql은 이미 테이블이 생성되어 있다면 생성하지 않도록 되어있다. 하지만 아래 제약 조건을 거는 파일(즉, 테이블 내부의 설정을 변경하는 파일)의 경우에는, 애플리케이션이 시작될 때마다 제약 조건이 걸리게 되고..
고민사항현재 퀴즈 애플리케이션의 패키지 구조는 아래와 같습니다.  Game 도메인이라는 패키지가 존재하고, 해당 패키지 안에 Game 도메인과 관련한 CRUD를 책임지는 Game API 서비스가 존재하고, 게임 진행 비동기 서비스를 담당하는 Game Engine 서비스가 존재합니다. 여기서 2가지 고민사항이 발생합니다.첫번째는, Game API 를 책임지는 서비스와 WebSocket을 통해 게임 비동기 서비스를 담당하는 Game Engine 서비스가  하나의 패키지에 있지 않도록 하고싶다 입니다.고민을 한 이유는, 현재 Game API 서비스는 게임 시작 요청이 들어오면 Game 진행 로직을 Game Engine 서비스에게 위임하고 있는 방식인데, 이때 비동기 로직을 통해 별도의 스레드에서 실행하게 됩..
테이블 더미데이터 삽입(약 100만개)프로젝트에 적용시켜 볼 조회쿼리에 대한 성능을 측정하기로 했다.성능 측정에 필요한 테이블에 약 100만개 정도의 데이터를 삽입하기로 했다. 프로젝트에서 사용한 테이블 구조는 아래와 같다. 복잡한 조회에 사용되는 테이블은 크게 아래 4개와 같다.game, member_game_result, game_quiz, quiz 그래서 4개의 테이블에 약 100만개의 데이터를 삽입해주었다.아래와 같은 코드를 통해 정합성을 맞춰주면서 랜덤 데이터를 최대한 넣어 주었습니다!더보기퀴즈 테이블(quiz) -> 100만개 생성-- 높은 재귀(반복) 횟수를 허용하도록 설정-- (아래에서 생성할 더미 데이터의 개수와 맞춰서 작성하면 된다.)SET SESSION cte_max_recursion..
[현재 문제 점] [Redis 아키텍처] [Sentinel 적용해보기]
보호되어 있는 글입니다.
🎯 문제점현재 사용자의 선착순 정답 데이터를 Queue에 적재하고, 게임 엔진 서비스에서 사용자 정답 데이터를 꺼내서 정답인지 판단하고 응답해주고 있다. 정답 데이터 양식은 아래와 같다.class AnswerResult( val answer: String, val quizId: Long, val roomId: Long, val playerId: Long, val nickname: String,)  컬렉션 프레임워크의 Queue 자료구조를 사용했다면 동시성 패키지에서 제공해주는 스레드 안전한 자료구조를 사용했을 것이다.하지만 Redis의 List 자료구조를 사용하기 때문에 동시성 문제가 발생하는지, 시간복잡도 등을 체크해보면 좋을 것 같다. https://redis.io/doc..
문제점현재 Redis의 List를 이용해서 Queue 방식으로 사용자의 정답 제출 데이터를 입력 받고 있다.그리고 게임 엔진 서비스는 Redis Queue에 들어온 데이터를 하나씩 꺼내보면서, 정답인지 아닌지 판단하고 결과를 응답해주고 있다. 이 과정에서 게임 엔진 서비스는 Queue에 데이터가 있는지 없는지 확인하기 위해 while 문을 돌면서 데이터가 존재하지는지 확인하고 있다.. . . 생략while (checkTimeIn(startTime) && notExistWinner) { logger.info { "[WARN] busy waiting..." } gameAnswerQueueService.poll(roomId, quiz.id) ?.takeIf { it.answer == q..
Don't stop 훈
'프로젝트/CStar' 카테고리의 글 목록