일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jvm
- 낙관락
- 스네이크 케이스
- 배타락
- Entity
- Service 테스트
- 공유락
- OOP
- do...while
- 테스트 코드
- @Version
- 자료구조
- Java
- Controller 테스트
- 트랜잭션 락
- 파스칼 케이스
- 스터디
- springDataJpa
- 비즈니스 로직
- Array
- 자바
- 마이크로서비스 아키텍처
- @Query
- Repository 테스트
- 스프링 부트
- 배열
- DTO
- 원시 자료형
- 비링크
- 디자인 패턴
- Today
- Total
목록프로젝트 (5)
menuhwang

성능 저하 발생 현재 나와 친구 총 4명이 내 서비스를 사용 중이다. 최근 특정 페이지의 응답속도가 느려졌다고 느껴졌고, 다른 사용자에게도 물어본 결과 똑같이 느려졌다고 느끼고 있었다. 그 페이지를 처음 조회할 때는 외부 API를 호출하고 결과를 DB에 저장하기 때문에 오래 걸렸다. 그다음 요청은 이미 DB에 저장된 데이터를 조회해 오는 것이기 때문에 빠르게 응답받을 수 있었다. 하지만, 이미 DB에 저장된 데이터를 불러옴에도 불구하고 응답 속도가 너무 느렸다! 부하 테스트 성능 개선 전 기준을 잡기 위해 nGrinder와 jMeter, scouter로 측정을 진행했다. 실제 배포 환경에는 telemetry(게임 로그 데이터)데이터 베이스에 380만 건, match 데이터베이스에 922건의 데이터가 존재..
문제 Match 데이터 저장과 Telemetry 데이터 저장하는데 또 다른 문제가 생겨 MySQL에서 MongoDB와 File System 으로 변경하게 되었다. Match와 Telemetry의 공통된 문제는 한 번에 너무 많은 데이터를 저장한다는 것이었다. Match 데이터 하나 저장을 위해 약 125 + 1개에서 200 + 1개의 데이터가 저장되고, Match 데이터가 많을 때는 한 번 요청에 Match 250개를 저장해야하는 경우도 생겼다. 그럼 최대 250 * 200 = 50,000 개의 레코드를 저장해야하는 것이다. 로컬 환경에서 직접 테스트해본 결과 120개의 Match를 MySQL에 저장하는데 약 37초가 걸렸다. 그렇기 때문에 이전에는 데이터 저장 이벤트를 발행하고 핸들러가 비동기적으로 처..

개인 토이 프로젝트로 진행 중인 PUBG Analyzer를 진행하면서 발생한 문제를 해결한 내용을 정리했다. PUBG Analyzer는 배틀그라운드 매치 결과와 매치 로그를 분석하는 프로젝트이다. Telemetry 분석 기능 PUBG에서 매치 결과나 매치 로그(telemtry)를 조회할 수 있도록 API를 제공해 준다. PUBG API 공식문서 현재 개발 중인 telemetry 분석 기능은 나의 킬 로그, 킬에 대한 데미지 로그를 조회하여 보여주는 기능이다. 기대하는 동작은 이렇다. 1. 최근에 조회되어 캐싱되어 있는 경우, 캐싱된 데이터를 반환한다. 2. 캐시가 만료되었지만, 이미 DB에 저장되어 있는 경우, DB 조회 결과를 반환한다. 3. 만약 DB에도 데이터가 없다면 API 호출 후 결과를 DB에..
개요 멋쟁이 사자처럼 백엔드 스쿨 2기를 수료한 지 한 달이 지난 지금 늦었지만 마지막 프로젝트를 진행하며 겪었던 내용들을 정리해보려 한다. 우리 북모아 프로젝트에서 3가지의 책 검색 api 호출 클래스와 2가지의 책 정보 크롤러가 존재한다. 크롤러와 api호출 클래스를 작성할 때 기존에는 같은 코드를 복사 붙여 넣기하고 로직이 다른 부분만 수정했다. 이번 글에서는 템플릿 메서드 패턴을 적용하여 코드 중복을 제거하고, 확장성을 향상시켰던 과정을 정리했다. 소스코드 GitHub - menuhwang/book-more Contribute to menuhwang/book-more development by creating an account on GitHub. github.com 템플릿 메소드 패턴 템플릿 메..
여러 개의 DTO, 여러 개의 @RequestBody를 사용할 수 없을까? 프로젝트 진행 중 한 번의 클라이언트 요청으로 유저 정보와 프로필 정보를 받아와 유저 서비스, 프로필 서비스 각각 DTO를 넘겨 처리하고 싶었다. 그래서 단순하게 @RequestBody DTO를 컨트롤러 파라미터에 추가해보았고 역시 생각대로 되지 않았다. 이 질문은 스택오버플로우에도 이미 올라와 있었다. 결론부터 말하자면 두 개 이상의 @RequestBody를 사용하여 값을 받아올 수 없다. Multiple @RequestBody Multiple @RequestBody values in one controller method I'm receiving error 400 when I send PATCH request to my end..