쉽고 빠르게 쿼리를 연습할 수 없을까? 🤔
Query를 연습하고 싶은데, DB 환경세팅이 너무 어렵고 많은 시간이 소요되네...
- DB를 설치하고 환경 설정하는게 너무 번거로워요.
- 쿼리를 학습하며 내가 작성한 쿼리를 실행해보고 싶어요.
- 대량의 랜덤 데이터들을 생성해서 DB 에 넣고싶어요.
클라우드 상에서 사용자에게 DB 환경을 제공하고 관리해요.
- 쉘 단위로 쿼리를 작성하고 실행해서 결과를 볼 수 있어요.
- 생성된 테이블은 우측 창에서 정보를 실시간으로 확인할 수 있어요.
세션을 이용하여 DB Connection 관리하는 법
실제 쿼리 실행 시간 측정 방법
테이블을 GUI를 통해 조작해 손쉽게 테이블 생성/수정 쿼리를 만들 수 있어요.
레코드 조건을 설정하면, 해당 설정에 맞는 대량의 레코드를 간편하게 추가할 수 있어요.
대용량 데이터를 효율적으로 삽입하는 법
한정된 스토리지 속 유저 데이터 관리 방법
Redis pub/sub 이용하기
쿼리를 잘 몰라도, 간편하게 예시 쿼리를 추가할 수 있어요.
부모에서 포커스 상태를 관리하자 자식 컴포넌트 전체가 리렌더링되어 깜빡이는 현상 발생
상태는 대체 어디에…
유저 DB에 쿼리를 실행해야 하는 경우는 단순히 유저가 직접 쿼리를 실행하는 상황뿐만 아니라, 다양한 경우에 발생합니다.
유저의 현재 테이블 정보를 조회하거나, 사용량을 확인하거나, 랜덤 데이터를 삽입하는 경우가 이에 해당합니다.
이러한 요청에 따라 효율적으로 커넥션을 관리하기 위해 우리는 코드적으로 어떤 개선을 도입했을까요?
인터셉터의 특징을 활용하여 코드 개선하기
서비스의 핵심 요소인 유저 DB 환경 제공은 단위 테스트만으로는 검증에 한계가 있었습니다.
이를 보완하기 위해 통합테스트를 도입했으며, 어떤 고민을 하였을까요?
test container을 통한 통합테스트 도전
가치있는 테스트 코드를 작성하기 위한 고민
동시 사용자수가 많아질수록 유저의 쿼리 실행이 급격히 늘어나는 것을 막을 수는 없었습니다.
이를 해결하고자 쿠버네티스를 이용하여 서버를 확장하고 로드밸런싱을 하였습니다.
어떤 방식으로 유연하게 확장 가능한 서비스를 구상하였을까요?
로드밸런싱 기준 판단하기
배포환경에서도 서버 확장할 수 있도록 구성하기
여러 사용자가 같은 DB 서버를 공유하고 있습니다.
만약 한 사용자가 서버 리소스를 독점한다면 다른 사용자는 큰 피해를 보게됩니다.
이를 어떻게 제어했을까요?
Redis 를 활용한 Rate Limiter 구현
분류 | 기술 스택 |
---|---|
공통 | |
프론트 엔드 | |
백엔드 | |
인프라 |
프로젝트를 구현하기 위해 했던 자세한 경험과 구현과정은 WIKI 에서 확인할 수 있습니다.