전체 글
리틀의 법칙
리틀의 법칙 리틀의 법칙은 어플리케이션을 설계할 때 확장성을 고려하기 위한 계산 방식으로도 쓰일 수 있습니다. 리틀의 법칙은 원래는 유입량과 확장에 대한 명시적인 해결책을 얻기 위해 널리 사용되는 법칙입니다. 공식 공간 내 머무는 객체 수(L) = 객체의 공간 유입량(λ) × 객체의 공간 내 머무는 시간(W) 고객이 시간당 10명의 비율로 도착하고 평균 0.5시간 동안 머문다고 가정합니다. 이는 언제든지 매장에 있는 평균 고객 수가 5명이 되어야 함을 의미합니다. 어플리케이션 설계에 접목 시키기 위의 간단한 공식을 통해 어플리케이션에 필요한 쓰레드를 계산해볼 수 있습니다. 동시에 처리할 수 있는 쓰레드(L) = 초당 클라이언트 요청량(λ) × 평균 요청 처리 시간(W) 그리고 우리는 시간 당이 아닌 초 ..
[Spring] 스프링에서 가상 스레드를 이용한 부하테스트
a thousand hearings aren’t worth one seeing, and a thousand seeings aren’t worth one doing Spring Property 설정 spring.threads.virtual.enabled=true server.tomcat.threads.max=1 server.tomcat.threads.min-spare=1 Spring에서 JDK 21을 이용할 때 가상 스레드를 활용하기 위해서는 spring.threads.virtual.enabled=true를 활성화해줍니다. 부하테스트를 위해 Thread는 1개로 유지합니다. 코드 작성 @GetMapping("/test") public String test() throws InterruptedExceptio..
[Java] Apache Commons Library에서의 올바른 압축 해제 방법
최근 사내 프로젝트에서 압축 파일 해제 코드가 올바르게 처리 되고 있지 않아 컨플루언스에 올린 내용을 블로그에도 올려보겠다. 개요 특정 압축 파일을 업로드하여 자바 코드 내에서 압축 해제하는 경우 코드 동작이 정상적으로 진행되지 않는 현상 압축 대상 파일 zip, tar, tar.gz 압축 파일의 실제 포맷은? file resource.tar.gz 리눅스 계열에서 file 명령어를 통해 파일이 어떤 포맷인지 확인할 수 있다. file에 대한 포맷을 확인하는 이유는 가령 사용자가 zip으로 압축 한 뒤에 임의로 확장자를 .tar.gz로 바꾸는 경우가 있기 때문이다. 물론 이 경우에도 압축 파일로서의 동작은 잘 된다. 하지만 문제는 이 파일의 실체는 zip이다! 압축된 zip 파일을 .tar.gz로 강제로 ..
ElasticSearch 8 Windows 설치
전부터 윈도우 PC에 장난감처럼 놀려고 설치하다 종종 막혔었는데 윈도우 설치는 ES 8 버전이후로는 검색해도 잘 안돼서 내가 직접 포스팅하겠다. 설치 Download Elasticsearch Download Elasticsearch or the complete Elastic Stack (formerly ELK stack) for free and start searching and analyzing in minutes with Elastic.... www.elastic.co 실행 방법 압축 해제 후에 bin 폴더를 들어가면 각종 bat 확장자를 가진 파일들이 보인다. bin폴더에서 cmd를 입력해서 명령 프롬프트를 띄워보자.(나름 꿀팁) elasticsearch 를 입력하면 elasticsearch.bat..