| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 한글 특수문자 자바스크립트
- integrationtest
- spring unit test
- 스팀 게임 스코어 알고리즘
- 존폴결혼반지
- Akamai 연구결과
- 스프링단위테스트방법
- dialtimeout
- jqxWidget워터마크
- 존폴결혼예물
- 외부 톰캣 특수문자 깨질 때
- LLM기반 콘텐츠 추천
- 분산파일시스템
- jqx워터마크제거
- 동시 요청 처리
- 존폴반지
- 추천시스템steam
- 자바스크립트 깨질 때
- jsp permission denied
- LLM기반CBF
- cookie refreshToke
- staem algorithm
- 분산파일
- jsp 예외 permission
- steam game score
- dial timeout
- set-cookie 안만들어짐
- tomcat튜닝
- 존폴쥬얼리
- 비개인화추천모델
- Today
- Total
목록분류 전체보기 (74)
hola 개발
[ 지난 글 ] 지난 글에서는 GCP 서버 한대로 10,000건의 동시 요청을 처리하도록 만들었습니다. 하지만 latency가 너무 느렸기 때문에 이번 글은 latency를 개선하는 과정이 되겠습니다. [ Redis 도입 ] 현재 시스템은 요청당 하나의 워커 쓰레드(Worker Thread)를 할당하는 구조입니다. 이 방식은 DB 쿼리 실행 시 해당 쓰레드가 응답을 받을 때까지 멈춰있는 블로킹(Blocking) 발생하여 latency가 느려지는 가장 큰 원인입니다. 설정된 200개의 쓰레드가 모두 DB 응답을 기다리며 묶이게 되면, maxConnections를 늘려 연결에 성공한 201번째 이후의 요청들은 일할 쓰레드를 할당받지 못해 대기하게 되고, 결과적으로 시스템 전체의 latency이 급격히 증가하..
[ 개발 배경 ] 선착순 쿠폰 발급 시, 대규모 트래픽이 동시에 발생하여 다양한 문제가 발생할 수 있습니다. 이번 글은 대규모 트래픽 발생 시 발생한 문제들을 개선해 나가는 과정을 기록하였습니다. [ Workflow & Architecture ] 위와 같은 Workflow이며 외장 tomcat 과 Spring Boot , Mysql로 쿠폰 발급 시스템을 만들었습니다. 외장 tomcat을 쓴 이유는 jar파일을 만들어 GCP 인스턴스에 배포할 경우, ssh로 접속해서 jar파일을 올려야하는데 이는 시간이 너무 오래걸렸기 때문입니다. 따라서 외장 tomcat을 설치 후 초기 애플리케이션 클래스 파일들을 올린 후 수정이 있을 경우 수정된 클래스 파일을 그 경로에 맞게 배포하는 방식으로 배포 시간을 줄였습..
[ 들어가기 전 ] 현재 회사에서는 서버에 외장 Tomcat을 설치 후 디렉토리 배포를 하는 방식입니다. 취업 전에 Spring boot로만 작업을 했었기에 따로 Tomcat에 대해 깊이 공부한 적이 없었습니다. 하지만 이번에 스케쥴러의 마이그레이션 업무를 담당하게 되었고, 이에 따라 Tomcat도 공부하게 되었습니다. [ Tomcat의 핵심 : Connector → Coyote → Catalina로 이어지는 파이프라인 ] 전체 구조Client ↓ [OS TCP stack] ↓ Connector ↓ Coyote (ProtocolHandler) ↓ Endpoint ├─ Acceptor ├─ Poller └─ Worker (Executor) ↓ Adapter ↓ Cat..
개인 프로젝트로 대규모 쿠폰 발급 시스템을 만들어서 부하 테스트를 하다보면 최초 부하 테스트 보다 그 이후에 부하 테스트 시 응답 속도 결과가 빨라진 것을 자주 목격 했습니다. 단순히 최적화가 되서 그런가보다 라고 생각했지만, 어떻게 어떤 이유로 최적화를 시키는지 JVM관점에서 공부 해봤습니다. [ JVM 입장에서 보는 Spring 생성과 요청 처리 과정 ]# Spring 생성 spring 애플리케이션 실행 시, JVM은 classloader를 통해 .class 파일들을 가져와 바이트코드 분석, 클래스 구조 생성을 한 후 MetaSpace에 클래스 메타 데이터를 저장합니다. 그리고 검증,준비,참조 연결 단계를 거친 후 static 변수 초기화 및 static block을 실행합니다. 이후 JVM은 ma..