본문 바로가기
반응형

전체 글298

Grafana K6 성능 테스트를 위한 오픈 소스 도구로, 쉽게 스크립트를 작성하고 실행할 수 있다. MacOS k6 설치brew install k6 script.js 를 작성한다.import http from 'k6/http';import { sleep } from 'k6'; export const options = { vus: 100, duration: '30s' };export default function() { http.get('http://localhost:8080/concert'); // const url = 'http://localhost:8080/waiting-queue/join'; // const data = { // userId: "test_user", // seriesId: "test_series".. 2024. 8. 2.
대기열 Redis 이관 및 Cache Service 도입 ≣ 목차대기열 Redis 이관Redis 설정@Configurationpublic class RedissonConfig { @Value("${spring.data.redis.host}") private String redisHost; @Value("${spring.data.redis.port}") private int redisPort; private static final String REDISSON_HOST_PREFIX = "redis://"; @Bean public RedissonClient redissonClient() { Config config = new Config(); config.useSingleServer().setAddres.. 2024. 8. 1.
재귀적 CTE(Common Table Expression) SQL 에서 반복적인 계산을 수행하거나 계층적 데이터를 쉽게 처리할 수 있도록 도와주는 기능이다.임시 결과 집합을 정의하는데, 재귀적 CTE는 자기 자신을 참조하여 반복적으로 확장할 수 있다. 수많은 테스트 더미 데이터를 추가할 때 효과적이다. 앵커 멤버: 재귀가 시작되는 기본 쿼리재귀 멤버: 앵커 멤버의 결과를 바탕으로 반복적으로 실행되는 쿼리WITH RECURSIVE cte_name AS ( -- 앵커 멤버 SELECT ... UNION ALL -- 재귀 멤버 SELECT ... FROM cte_name WHERE ...)SELECT * FROM cte_name; 예시로 유저 데이터를 10,000 개 삽입하는 쿼리를 재귀적 CTE 로 구현cte_max_resurs.. 2024. 8. 1.
Mac QuickTime Player 저장되지 않은 화면 기록 찾기 open $TMPDIR T > TemporaryItems 널 찾고있었다고...ㅠㅠ역시 있을줄 알았다 있어줘서 정말 고마워  참고https://4ddig.tenorshare.com/kr/mac-recovery-solutions/recover-unsaved-deleted-quicktime-recording.html [2024] Mac에서 저장되지 않거나 삭제된 QuickTime 녹화물을 복구하는 세가지 방법Mac에서 저장되지 않은 QuickTime 녹화물을 어떻게 복구할까요? 비워진 휴지통에서도 Mac에서 삭제된 QuickTime 녹화 물을 복구하는게 가능한가요? 여기 자세한 가이드 라인을 보고 3가지 해결법을 찾4ddig.tenorshare.com 2024. 7. 31.
[Redis] Redisson vs Lettuce vs Spring data redis 요약• Redisson: 다양한 고급 기능을 제공하며 분산 환경에서 유용하지만, 설정이 복잡할 수 있음.• Lettuce: 고성능 비동기 작업과 리액티브 프로그래밍에 적합하며, 클러스터 모드 지원. 그러나 사용법이 비교적 복잡.• RedisTemplate: Spring 프로젝트와의 통합에 적합하며, 사용이 간편하지만, 고성능 비동기 작업 처리에는 다소 제한적. Redisson특징 • Redis를 Java 객체처럼 다룰 수 있게 해주는 라이브러리. • 다양한 Redis 데이터 구조(맵, 세트, 리스트 등)를 Java 객체로 직접 사용할 수 있게 함. • 비동기, 동기, 반동기 API 제공. • Redis 기반의 분산 락, 세마포어, 큐 등 다양한 고급 기능 제공. 장점 • 분산 환경에서 유용한 다양한 기능.. 2024. 7. 31.
트랜잭션 전파 ≣ 목차//// Source code recreated from a .class file by IntelliJ IDEA// (powered by FernFlower decompiler)//package org.springframework.transaction.annotation;public enum Propagation { REQUIRED(0), SUPPORTS(1), MANDATORY(2), REQUIRES_NEW(3), NOT_SUPPORTED(4), NEVER(5), NESTED(6); private final int value; private Propagation(int value) { this.value = value; } .. 2024. 7. 26.
Redis Redis메모리형 DB 서버key 획득 로직(공통 구성) - wrapperconfigDocker 설정docker pull redisdocker imagessudo docker run -p 6379:6379 redisdocker psdocker exec -it bd716a02092f /bin/bashRedis 접속redis-cliKey-Valueset first "fighting"set random22222 "test2"lock 점유 및 해제setnx reservation "lock"del reservationTTL 설정expire reservation 10  Medis 로 GUI 확인 가능 2024. 7. 23.
Transaction ≣ 목차트랜잭션을 잘게 나누면 보정배치가 쉬워지고 트랜잭션이 왜 실패했는지 추적할 수 있다.충돌 횟수를 고려하여 락 종류를 선택한다.자기 자신만 접근하는 로직일 경우 충돌이 적을 확률이 높아진다.트랜잭션 작은 단위로 나눌 시, Manager (application 계층) 추가 또는 service 에서 필요한 repository 를 DI 받아서 하나의 메서드에서 처리한다.만약 연관 관계가 맺어져있다면?reservation.getUser().usePoint(amount)exception 이후에 코드가 실행되지 않는지 체크하고 테스트 할 필요성이 있다.트랜잭션 사용 논리적 흐름구분해서 고려할 필요가 있다.실제 비즈니스 기반의 로직시스템 입장에서의 로직동시성 제어트랜잭션공유락, 배타락 = 트랜잭션 동시성 제어 .. 2024. 7. 23.
[Docker] Database docker-compose 구축(mysql, redis) ≣ 목차Docker 설치https://www.docker.com/ Docker: Accelerated Container Application DevelopmentDocker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.www.docker.com 도커 컴포즈는 개발 환경 세팅이라고 생각하고, 프로젝트 파일과 별개로 docker-compose.yml 파일을 생성해도 된다.docker-compose.yml 파일을 열고 작성한다.vi docker-compose.yml docker-compose.ym.. 2024. 7. 22.
728x90
반응형