| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 격파르타합격후기
- 비전공자sqld
- java list 출력
- java map
- java알고리즘문제풀이
- 컴파일
- java최솟값구하기
- javaJRE
- java set 출력
- 격파르타후기
- 프로그래머스제일작은수
- 프로그래머스
- java set 저장
- java list 저장
- java map 저장
- 작은수제거하기
- 격파르타비전공자
- 노베이스부트캠프
- java참조자료형
- java map 출력
- 항해99후기
- java기본자료형
- 항해15기
- 격파르타장점
- java 자료구조 활용
- 인터프린터언어
- javaJVM
- 코딩부트캠프후기
- sqld자격증합격
- java알고리즘
- Today
- Total
목록전체 글 (259)
코딩과 결혼합니다
private final RedisTemplate redisTemplate; @GetMapping("/rating/{evaluated_user}") public UserRatingsResponseDto getUserRatings( @PathVariable Long evaluated_user, @RequestParam int page, @RequestParam int size ){ String cacheKey = "evaluatedUser:" + evaluated_user + ":page:" + page + ":size:" + size; // 캐시에서 평가 정보 조회 UserRatingsResponseDto cachedResponse = redisTemplate.opsForValue().get(cacheK..
배경 특정 유저의 프로필 조회 또는 평점 등록과 같은 반복되는 요청이 자주 발생하는 경우, 캐싱 기능을 활용하여 더 빠른 응답 속도를 제공하고자 Redis를 도입하기로 결정하였다. Embedded Redis는 로컬 개발 환경에서 Redis를 쉽게 실행할 수 있도록 해준다. 외부 Redis를 설치하고 구성할 필요 없이 애플리케이션 내에서 실행할 수 있다는 점에서 이를 사용하기로 하였다. 레디스 종속성 추가 //Redis implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation group: 'it.ozimov', name: 'embedded-redis', version: '0.7.2' testImplement..
JMeter 용어 Thread Group : 테스트에 사용될 쓰레드의 개수. (쓰레드 = 사용자) Sampler : 사용자가 취할 행동 (로그인, 게시물 작성, 조회 등) Listener : 응답을 받아 리포팅, 검증, 그래프 등 다양한 처리 Configuration : Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등) Assertion : 응답 확인 방법 (응답 코드, 본문 내용 비교 등) 현재의 내 서비스는 어느 정도의 성능을 가지고 있을까? 나는 소소하게 1분에 1000명의 유저가 동시에 API요청을 했을 때에 어느정도의 성능이 나오는지 확인해 보았다. //유저의 평가들을 가져오는 API @GetMapping("/user/rating/{evaluated_user}"..
기존에는 1. A 유저가 B유저 평가 2. B유저가 이전에 받은 평가 기록이 있는지 없으면 - record of rating 과 total rating에 받은 점수를 그대로 각각 저장 있으면 - record of rating에 평가기록 저장 + 이전의 최신 기록들을 최대 10개까지 합산, 평균을 낸 다음 total rating 업데이트 이러한 과정을 거쳤었다. 하지만 성능 테스트를 하면서는 record of rating에만 더미데이터를 넣어놨기 때문에 total rating 테이블을 비어있는 상태이다. 이 저장되어있는 데이터들을 하나씩 읽어 계산한 뒤에 total rating에 저장 및 업데이트를 하도록 할것이다. public void registrationOfRatings(UserRatingReques..
선정 시 고려할 요소 1. 프로토콜 지원 - API가 사용하는 프로토콜을 지원하는지? 2. 자동화 - 테스트 툴이 자동화를 지원하는지? 자동화를 통해 시간을 절약하고, 테스트의 일관성을 유지 3. 다중 사용자 시뮬레이션 - 실제 사용자의 행동을 시뮬레이션 할 수 있는지? 이 기능을 통해 API가 동시에 많은 요청을 처리하는 능력 테스트 4. 결과 보고서 - 테스트 결과를 깔끔하고 이해하기 쉬운 형식으로 제공하는지? 결과 분석과 문제 해결에 매우 중요 5. 스크립팅 언어 - 익숙한 언어를 사용하는 툴을 선택하는 게 좋다. 6. 비용 - 무료 툴일 경우 사용 제약이 있는지, 유료 툴일 경우 가격이 합리적인이 확인 7. 참고할 레퍼런스 - 문제 발생 시 빠르게 해결 할 수 있도록 참고할 문서가 많은지 확인 📌..
Mockaroo를 사용하면 최대 1000개의 데이터만을 생성할 수 있다. 생각해 보니 나는 100만 ~200만 건의 데이터를 생성해야 하는데 너무 번거로울 듯하여 Java Faker를 통해서 나머지 더미데이터들을 생성해보고자 한다. 📌 Java Faker Dependency (Gradle) dependencies { implementation 'com.github.javafaker:javafaker:1.0.2' } 📌 Faker 클래스의 다양한 메서드 제공 예시 Faker faker = new Faker(); String name = faker.name().fullName(); // Miss Samanta Schmidt String firstName = faker.name().firstName(); //..
📌더미 데이터 생성하기에 앞서... 주로 사용되는 api에 대한 성능 테스트를 진행할 것이기 때문에 관련 테이블에만 더미 데이터를 생성해주고자 한다. 1. 함께 게임을 할 사람을 구하는 게시글 등록 API 2. 게임을 하고 난 후에 상대방을 평가하는 API 3. 최근의 10개의 평가를 합산하여 평균을 낸 뒤에 총 평점 테이블에 저장하는 API 4. 상대 사용자의 프로필을 조회 API 이 API가 주로 사용될 것이라 판단이 되며 더미 데이터를 생성해 줄 테이블은 post, record_of_ratings, user 등이다. 특히 record_of_ratings(평가받은 내역)에 많은 데이터를 추가할 것이다. 📌Mockaroo 사용법 익히기 컬럼명, 데이터 타입, 빈 데이터의 빈도율, 랜덤으로 나올 데이터에..
📌성능 테스트를 시작하기에 앞서... 회사의 서비스 규모나 특성에 따라 데이터의 양이 크게 다르겠지만, 실제 서비스하고 있는 앱이나 웹에서는 데이터가 어느 정도 있는 상태에서 동작을 한다. 나는 이와 비슷한 환경에서 성능 테스트를 시행하고자 100만 ~ 200만 건의 더미 데이터를 생성한 뒤에 테스트를 진행하고자 한다. 📌데이터를 늘리는 방법? 1. 더미 데이터 생성 : 라이브러리나 서비스를 사용하여 테스트 데이터 생성 원하는 형태와 구조로 빠르게 대량의 데이터 생성 개인 정보 보호 문제없이 테스트 진행 실제 데이터의 분포와 패턴을 완벽히 반영하기는 어려워 실제 운영 환경에서의 성능을 정확히 예측하기 어려움 2. 데이터 증강 : 기존의 데이터를 활용하여 일부 데이터를 약간 변형하거나 조합하는 식으로 새로..